Light-weight multi purpose package dependency resolver
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()this object in Packager Class. Please use new keyword
  to instantiate the class which automatically runs this method before
  instance is returned.Parameter none
Returns
| Value | Type | Description | 
|---|---|---|
| packager | Packager | the Packager instance. | 
Packager.prototype.exists(names)names or one of the item in
  names parameter exists.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])name with optional dependencies Array.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)names or collection of
  package names which is sorted by load sequence of package names and
  dependencies.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. |