An easy-to-use library to resolve dependencies in a dependency tree
npm install @raydeck/dependency-tree-resolver@raydeck/dependency-tree-resolver - v1.0.7 › Globals
npm i dependency-tree-resolver --save-dev
`
and then
`javascript
var DepResolver = require('dependency-tree-resolver');
`$3
Get a local copy of dep-res.js, or consume it via RawGit's CDN,
and add to your HTML:
`html
`
and then you'll have `DepResolver` on the `window` scope.API
Once you include the script in your project you'll have a function `DepResolver` which accepts two arguments:
`javascript
DepResolver(
tree = {
string: [...string],
...
},
options = {
exclude: [...string]
}
)
`
Arguments
* `tree`: each key in the map represents a node in the tree, and each value in the array represents a single dependency of that node.
* `options`:
* `exclude`: allows you to specify which dependencies are special and allowed to not have a node for themselves (usefull when depending on external resources)Examples
`javascript
//valid tree
var tree = {a: [], b: ['c', 'd'], c: ['d'], d: ['a']};
var resolved = DepResolver(tree);
console.log(resolved);//['a','d','c','b' ]//invalid tree w/ excluded external resource
var tree = {a: ['b'], b: ['d']};
var options = {exclude: ['d']};
var resolved = DepResolver(tree, options);
console.log(resolved);//['b','a']
//invalid tree w/o excluded external resource
var tree = {a: ['b'], b: ['d']};
var resolved = DepResolver(tree);//throw error: "b" has an unknown dependency "d"
//invalid tree with cyclic dependency
var tree = {a: ['b'], b: ['c'], c: ['a'], d: ['e'], e: ['d']};
var resolved = DepResolver(tree);//throw error: circular dependency found: a > b > c > a
`
License
This library is provided under the MIT license.@raydeck/dependency-tree-resolver - v1.0.7 › Globals › DepResolverError
Class: DepResolverError
Hierarchy
* Error
↳ DepResolverError
Index
$3
$3
Constructors
$3
\+ new DepResolverError(
message: string): DepResolverErrorDefined in src/index.ts:1
Parameters:
Name | Type |
------ | ------ |
message | string |Returns: DepResolverError
Properties
$3
• message: string
Inherited from DepResolverError.message
Defined in node_modules/typescript/lib/lib.es5.d.ts:974
___
$3
• name: string
Inherited from DepResolverError.name
Defined in node_modules/typescript/lib/lib.es5.d.ts:973
___
$3
• stack? : undefined | string
Inherited from DepResolverError.stack
Defined in node_modules/typescript/lib/lib.es5.d.ts:975
___
$3
▪ Error: ErrorConstructor
Defined in node_modules/typescript/lib/lib.es5.d.ts:984
@raydeck/dependency-tree-resolver - v1.0.7 › Globals
@raydeck/dependency-tree-resolver - v1.0.7
Index
$3
$3
* removeExcluded
* resolve
* resolveSpecific
* validateDep
* validateDepMap
Functions
$3
▸ removeExcluded(
depMap: object, node: string, excludeItems: string[]): voidDefined in src/index.ts:6
Parameters:
Name | Type |
------ | ------ |
depMap | object |
node | string |
excludeItems | string[] |Returns: void
___
$3
▸ resolve(
depMap: object, options?: undefined | object): string[]Defined in src/index.ts:67
Parameters:
Name | Type |
------ | ------ |
depMap | object |
options? | undefined | object |Returns: string[]
___
$3
▸ resolveSpecific(
depMap: object, result: string[], dependant: string, path: string[]): voidDefined in src/index.ts:43
Parameters:
Name | Type |
------ | ------ |
depMap | object |
result | string[] |
dependant | string |
path | string[] |Returns: void
___
$3
▸ validateDep(
depMap: object, node: string, dependency: string): voidDefined in src/index.ts:16
Parameters:
Name | Type |
------ | ------ |
depMap | object |
node | string |
dependency | string |Returns: void
___
$3
▸ validateDepMap(
depMap: object, options?: undefined | object): voidDefined in src/index.ts:28
Parameters:
Name | Type |
------ | ------ |
depMap | object |
options?` | undefined | object |Returns: void