features
Version:
per-file switchable code pre-transformations
37 lines (26 loc) • 1.33 kB
Markdown
Switchable, modular, stackable features for your code. Turn on any transformations you'd like to use.
Usage example:
[jann@Jann-PC tmp]$ cat test.xjs
// :X-FEATURE: destructure
var a, b, c;
var val = [{x: 5, y: 6}, 7];
[{x: a, y: b}, c] = val;
console.log('how it should be: a=5='+a+', b=6='+b+', c=7='+c);
[jann@Jann-PC tmp]$ node
> require('features')
{}
> require('./test')
how it should be: a=5=5, b=6=6, c=7=7
{}
So, basically, for people who want to use such features:
- install `feature-<name>` modules for the features you want
- use `.xjs` as file extension
- in your main script, do this on top: `require('features')`
- in your scripts, put lines like this one **ON TOP** (no lines, even no empty ones, may be on top of them): `// :X-FEATURE: destructure`
Note that your main script can't use such features - you might want to use a shim script.
Also note that although this module should just work, the `destructure` feature doesn't do some important things as of 15.01.2012
(most importantly, caching results).
For people who want to make features:
- make a new npm package named `feature-<name>`
- in its main file, add a function `transformCodeString(code)` to the exports
See https://github.com/thejh/node-feature-destructure/ for an example.