Skip to content

Latest commit

 

History

History
47 lines (35 loc) · 1.65 KB

README.md

File metadata and controls

47 lines (35 loc) · 1.65 KB

intern-common

This repository contains common library code used by Intern projects. It's essentially a subset of @dojo/core and @dojo/shim, extracted to prevent circular dependencies between Dojo and Intern.

While the implementations of Task, Evented, and the various utility functions are very similar (and in some cases the same as) their @dojo counterparts, there are a few differences. Probably the most significant is with the request module, which uses a simpler API that Dojo's request and is backed by axios.

Usage

This package exports its public interface through its base import:

import { Task, Evented, request } from '@theintern/common';

Features

The following concrete exports are provided:

  • Evented: Base class for event emitters
  • Task: Cancellable promise
  • global: Pointer to the global object (e.g., window)
  • request: Simple network request module
  • createHandle: Create a handle that can be used to cleanup resources
  • createCompositeHandle: Create an aggregate Handle
  • deepMixin: Deeply one or more objects into a target object
  • duplicate: Deep copy an object
  • partial: Create a function from a base function by binding one or more arguments of the base function to given values

Development

The development flow is standard:

  1. npm install
  2. npm run build (or npm run watch)
  3. npm test to run tests

The build process creates four webpack bundles in _build/: one is the distributable index.js, two are for unit tests (browser and Node), and one is for integration tests.