Package Exports
- node-matrix-assets
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (node-matrix-assets) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
node-matrix-assets
A DSL for creating Squiz Matrix asset trees in JavaScript!
Inspiration for this module is weighted heavily around the excellent work by Dominic Tarr with hyperscript.
Install
npm install node-matrix-assets
Example
var asset = require('node-matrix-assets')
var getAssetById = asset.getAssetById
var tree = asset('folder', { name: 'Sites', link: 'type_2' },
asset('site', { id: 'site', name: 'My Site' },
asset('page_standard', { name: 'Home', link: { index: getAssetById('site') } },
asset('bodycopy', { link: 'type_2', dependant: '1', exclusive: '1' },
asset('bodycopy_div', { link: 'type_2', dependant: '1' },
asset('content_type_wysiwyg', { link: 'type_2', dependant: '1', exclusive: '1' })
)
)
)
)
)
API
asset
node-matrix-assets
provides an API for generating structured asset trees via require('node-matrix-assets')
.
asset(type, properties={}, children...)
The type
argument is required and accepts a string representing a valid Squiz Matrix asset type.
The properties
argument accepts an object used to configure the returned asset definition.
With the exception of a few optional special cases for the properties
objects
keys/values will change depending on the type of asset you're creating.
properties.id
Assigns a unique identifier to an asset. Typically used in conjunction with asset.getAssetById.
properties.link
Default: 'type_1'
. Either a string representing a valid link type (eg. 'type_2'
),
an Array containing String or Object key/value pairs ['type_2', { notice: 'value' }]
,
or an Object of key/value pairs { type_2: true, notice: 'value' }
.
Defining children
is accomplished through one of the following:
- As an array containing assets
asset('type_code', [asset(...), asset(...), asset(...)])
, - or as arguments
asset('type_code', asset(...), asset(...), asset(...))
.
asset.getAssetById(id)
The id
argument accepts a string representing a previously defined asset property.id
:
var myThing = asset('type_code', { id: 'myThing' })
asset.getAssetById('myThing')
or a key
representing a valid asset key:
var myThing = asset('type_code')
asset.getAssetById(myThing.key)
License
MIT