1.0.7 • Published 4 years ago

@raydeck/dependency-tree-resolver v1.0.7

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

@raydeck/dependency-tree-resolver - v1.0.7Globals

@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.7GlobalsDepResolverError

Class: DepResolverError

Hierarchy

  • Error

    DepResolverError

Index

Constructors

Properties

Constructors

constructor

+ new DepResolverError(message: string): DepResolverError

Defined in src/index.ts:1

Parameters:

NameType
messagestring

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.7Globals

@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:

NameType
depMapobject
nodestring
excludeItemsstring[]

Returns: void


resolve

resolve(depMap: object, options?: undefined | object): string[]

Defined in src/index.ts:67

Parameters:

NameType
depMapobject
options?undefined | object

Returns: string[]


resolveSpecific

resolveSpecific(depMap: object, result: string[], dependant: string, path: string[]): void

Defined in src/index.ts:43

Parameters:

NameType
depMapobject
resultstring[]
dependantstring
pathstring[]

Returns: void


validateDep

validateDep(depMap: object, node: string, dependency: string): void

Defined in src/index.ts:16

Parameters:

NameType
depMapobject
nodestring
dependencystring

Returns: void


validateDepMap

validateDepMap(depMap: object, options?: undefined | object): void

Defined in src/index.ts:28

Parameters:

NameType
depMapobject
options?undefined | object

Returns: void