assets-expander

A well-tested tool for expanding any files structure defined in YAML file into a flat list of files

Assets-expander is a node.js library that turns a glob-like declarations from YAML file into a list of files. Just see below for examples.

npm install assets-expander
var AssetsExpander = require('assets-expander');
var expander = new AssetsExpander('assets.yml', { root: 'path/to/public/dir' });
expander.processGroup('javascripts', 'public') // gets a flat list of assets in public group

Just go with something like:

javascripts:
  public:
    vendor: 'undescore,modernizr'
    public: '**/*'
stylesheets:
  public:
    - 'reset,shared,base,home'

Then if you have the following directory structure:

javascripts
  - vendor
    - underscore.js
    - modernizr.js
  - public
    - main.js
    - fallback.js
stylesheets
  - reset.css
  - shared.css
  - base.css
  - home.css

then running the following code will give you the files you need:

> expander.processGroup('stylesheets', 'public')
> ['stylesheets/reset.css', 'stylesheets/shared.css', 'stylesheets/base.css', 'stylesheets/home.css']

> expander.processGroup('javascripts', 'public')
> ['javascripts/vendor/underscore.js', 'javascripts/vendor/modernizr.js', 'javascripts/public/main.js', 'javascripts/public/fallback.js']

Assets-expander is released under the MIT license.