libcore-package-resolver

Light-weight multi purpose package dependency resolver

API Documentation

Table of Contents

Packager

The default and Packager in entry module contains Packager Class that needs to be instantiated before it can be used like the code below:

import { Packager } from "libcore-package-resolver";

const componentIndex = new Packager();

// registration doesn't resolve dependency until flatten() is called.
componentIndex.register('MyComponent',
                        ['BaseComponent']);

// register the dependency before flatten() to avoid
// non-existent dependency error.
componentIndex.register('BaseComponent');

// it should return ['BaseComponent', 'MyComponent']
console.log("require order of `MyComponent`:",
             componentIndex.flatten('MyComponent'));

Packager.prototype.constructor()

Parameter none

Returns

Value Type Description
packager Packager the Packager instance.

Packager.prototype.exists(names)

Parameter

Name Type Description
names String or Array(String) package name or collection of names to inspect.

Returns

Value Type Description
true Boolean True if names String or all items in names Array exists and registered.

Packager.prototype.register(name[, dependencies])

Parameter

Name Type Description
name String the package name
[dependencies] Array(String) (optional) Array of package names that name is depending on.

Returns

Value Type Description
packager Packager The Packager instance.

Packager.prototype.flatten(names)

Note: Cyclic dependencies are resolved and do not produces fatal errors on the returned package names. This method only cares about load order of the packages.

Parameter

Name Type Description
names String or Array(String) package name or collection of names to inspect.

Returns

Value Type Description
[package name,…] Array(String) names parameter packages and dependencies sorted in load or require order.