artifactCollector
Determine application artifacts by inspecting flow, pages and widgets.
Contents
Module Members
- - unknown -
- create()
- collectArtifacts()
- collectSchemas()
- collectFlows()
- collectThemes()
- collectPages()
- collectLayouts()
- collectWidgets()
- collectControls()
Types
Module Members
- unknown - undefined
create( options )
Create an artifact collector instance.
Example:
const collector = laxarTooling.artifactCollector.create( { paths: { widgets: 'custom/widgets/path' }, resolve: ref => path.relative( base, path.resolve( ref ) ), readJson: filename => new Promise( ( resolve, reject ) => { fs.readFile( filename, ( err, contents ) => { try { err ? reject( err ) : resolve( JSON.parse( contents ) ); } catch( err ) { reject( err ); } } ); } ) } );
Parameters
Property | Type | Description |
---|---|---|
options | Object |
additional options |
options.paths | Object |
configuration where to look for flows, pages, etc. |
options.resolve | Function |
a function resolving a given file path to something that can be read by the readJson function and either returning it as a String or asynchronously |
options.readJson | Function |
a function accepting a file path as an argument and returning a promise that resolves to the parsed JSON contents of the file as a Promise |
options.fileContents | Object |
an object mapping file paths (as returned by options.resolve ) to promises that resolve to the parsed JSON contents of the file (used if readJson is omitted) |
Returns
Type | Description |
---|---|
ArtifactCollector |
the created artifact collector |
collectArtifacts( entries )
Obtain artifact information asynchronously, starting from a set of flow definitions.
Example:
collector.collectArtifacts( [ { flows: [ "flow" ], themes: [ "my", "default" ] } ] ) .then( artifacts => { assert( Array.isArray( artifacts.flows ) ); assert( Array.isArray( artifacts.themes ) ); assert( Array.isArray( artifacts.pages ) ); assert( Array.isArray( artifacts.layouts ) ); assert( Array.isArray( artifacts.widgets ) ); assert( Array.isArray( artifacts.controls ) ); } ); // => { // flows: [ ... ], // themes: [ ... ], // pages: [ ... ], // layouts: [ ... ], // widgets: [ ... ], // contros: [ ... ] // }
Parameters
Property | Type | Description |
---|---|---|
entries | Array.<Object> |
a list of entries containing themes and flows to follow to find all the pages reachable from the flow and their required artifacts |
Returns
Type | Description |
---|---|
Promise.<Object> |
the artifact listing with the keys flows , themes , pages , layouts , widgets and controls , of which each is an array of artifact objects |
collectSchemas( entries )
Asynchronously collect all schemas corresponding to the given paths.
Example:
collector.collectSchemas( [ { schemas: [ 'schema' ] } ] ) .then( schemas => { assert( Array.isArray( schemas ) ); } ); // => [ { // refs: [ 'schema' ], // name: 'schema', // path: 'path/to/schema.json', // pages: [ ... ] // } ]
Parameters
Property | Type | Description |
---|---|---|
entries | Array |
a list of entry objects containing a schemas key |
Returns
Type | Description |
---|---|
Promise.<Array> |
a promise for an array of schema-meta objects |
collectFlows( entries )
Asynchronously collect all flows corresponding to the given refs.
Example:
collector.collectFlows( [ { flows: [ 'flow' ] } ] ) .then( flows => { assert( Array.isArray( flows ) ); } ); // => [ { // refs: [ 'flow' ], // name: 'flow', // path: 'path/to/flow.json', // pages: [ ... ] // } ]
Parameters
Property | Type | Description |
---|---|---|
entries | Array |
a list of entry objects containing a flows key |
Returns
Type | Description |
---|---|
Promise.<Array> |
a promise for an array of flow-meta objects |
collectThemes( entries )
Collect meta information on the given themes.
Example:
collector.collectThemes( [ { themes: [ 'my.theme', 'default.theme' ] } ] ) .then( themes => { assert( Array.isArray( themes ) ); } ); // => [ { // refs: [ 'my.theme' ], // name: 'my.theme', // path: 'path/to/my.theme' // }, { // refs: [ 'default.theme' ], // name: 'default.theme', // path: 'path/to/laxar-uikit/themes/default.theme' // } ]
Parameters
Property | Type | Description |
---|---|---|
entries | Array.<Object> |
a list of entries with themes to include in the artifacts |
Returns
Type | Description |
---|---|
Promise.<Array> |
a promise for an array of meta-information about all themes |
collectPages( flows )
Asynchronously collect all pages that are reachable from the given list of flows.
Example:
collector.collectPages( flows ) .then( pages => { assert( Array.isArray( pages ) ); } ); // => [ { // refs: [ 'page' ], // name: 'page', // path: 'path/to/page.json', // pages: [ ... ], // layouts: [ ... ], // widgets: [ ... ] // }, ... ]
Parameters
Property | Type | Description |
---|---|---|
flows | Array.<String> |
a list of flow artifacts as returned by ArtifactCollector#collectFlows |
Returns
Type | Description |
---|---|
Promise.<Array> |
a promise for a combined array of page meta information for these flows |
collectLayouts( pages )
Finds layouts based on them being referenced in page areas.
Example:
collector.collectLayouts( pages ) .then( layouts => { assert( Array.isArray( layouts ) ); } ); // => [ { // refs: [ 'layout' ], // name: 'layout', // path: 'path/to/layout' // }, ... ]
Parameters
Property | Type | Description |
---|---|---|
pages | Array |
a list of page artifacts as returned by ArtifactCollector#collectPages |
Returns
Type | Description |
---|---|
Promise.<Array> |
a promise for an array of meta-information about all layouts |
collectWidgets( pages )
Collect meta information on all widget that are referenced from the given pages.
Example:
collector.collectWidgets( pages ) .then( widgets => { assert( Array.isArray( widgets ) ); } ); // => [ { // refs: [ 'widget' ], // name: 'widget', // path: 'path/to/widget', // controls: [ ... ] // }, ... ]
Parameters
Property | Type | Description |
---|---|---|
pages | Array |
a list of page artifacts as returned by ArtifactCollector#collectPages |
Returns
Type | Description |
---|---|
Promise.<Array> |
a promise for an array of meta-information about all reachable widgets |
collectControls( widgets )
Collect meta information on all controls that are referenced by the given widgets.
Example:
collector.collectControls( widgets, themes ) .then( controls => { assert( Array.isArray( controls ) ); } ); // => [ { // refs: [ 'control' ], // name: 'control', // path: 'path/to/control', // controls: [ ... ] // }, ... ]
Parameters
Property | Type | Description |
---|---|---|
widgets | Array |
a list of widget artifacts as returned by ArtifactCollector#collectWidgets |
Returns
Type | Description |
---|---|
Promise.<Array> |
a promise for an array of meta-information about all reachable controls |