JSPM

node-matrix-assets

3.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4
  • Score
    100M100P100Q23562F
  • License MIT

A DSL for creating Squiz Matrix asset trees in JavaScript!

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.

Build Status js-standard-style

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.

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