@raydeck/dependency-tree-resolver
v1.0.7
Published
An easy-to-use library to resolve dependencies in a dependency tree
Downloads
24
Readme
@raydeck/dependency-tree-resolver - v1.0.7 › Globals
@raydeck/dependency-tree-resolver - v1.0.7
dependency-resolver
If you have a dependency tree, and you'd like to know in which order to initialize each node, this library is for you.
How to use
Node
In CLI, execute
npm i dependency-tree-resolver --save-dev
and then
var DepResolver = require('dependency-tree-resolver');
Browser
Get a local copy of dep-res.js, or consume it via RawGit's CDN, and add to your HTML:
<script type="text/javascript" src="dep-res.js"></script>
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:
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
//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
↳ DepResolverError
Index
Constructors
Properties
Constructors
constructor
+ new DepResolverError(message
: string): DepResolverError
Defined in src/index.ts:1
Parameters:
Name | Type |
------ | ------ |
message
| string |
Returns: DepResolverError
Properties
message
• message: string
Inherited from DepResolverError.message
Defined in node_modules/typescript/lib/lib.es5.d.ts:974
name
• name: string
Inherited from DepResolverError.name
Defined in node_modules/typescript/lib/lib.es5.d.ts:973
Optional
stack
• stack? : undefined | string
Inherited from DepResolverError.stack
Defined in node_modules/typescript/lib/lib.es5.d.ts:975
Static
Error
▪ 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
Classes
Functions
Functions
removeExcluded
▸ removeExcluded(depMap
: object, node
: string, excludeItems
: string[]): void
Defined in src/index.ts:6
Parameters:
Name | Type |
------ | ------ |
depMap
| object |
node
| string |
excludeItems
| string[] |
Returns: void
resolve
▸ resolve(depMap
: object, options?
: undefined | object): string[]
Defined in src/index.ts:67
Parameters:
Name | Type |
------ | ------ |
depMap
| object |
options?
| undefined | object |
Returns: string[]
resolveSpecific
▸ resolveSpecific(depMap
: object, result
: string[], dependant
: string, path
: string[]): void
Defined in src/index.ts:43
Parameters:
Name | Type |
------ | ------ |
depMap
| object |
result
| string[] |
dependant
| string |
path
| string[] |
Returns: void
validateDep
▸ validateDep(depMap
: object, node
: string, dependency
: string): void
Defined in src/index.ts:16
Parameters:
Name | Type |
------ | ------ |
depMap
| object |
node
| string |
dependency
| string |
Returns: void
validateDepMap
▸ validateDepMap(depMap
: object, options?
: undefined | object): void
Defined in src/index.ts:28
Parameters:
Name | Type |
------ | ------ |
depMap
| object |
options?
| undefined | object |
Returns: void