turn
March 9, 2013 ยท View on GitHub
minimal modules for a hypothetical es6 with lua's return, inspired by substack/mmmify and motivated by @shtylman.
syntax
Use import PATH to load a module from the string PATH. import is a keyword
like typeof that just returns an ordinary value.
Use return VALUE in the top level scope to export functionality and jump
out of the current context.
example
// main.js
var foo = import './foo.js'
console.log(foo(5));
// foo.js
var bar = import './bar.js'
return function (n) { return bar(n) * 10 };
// bar.js
return function (n) { return n + 3 };
build it with browserify:
$ browserify -t turn main.js > bundle.js
then run it with node (or a browser):
$ node bundle.js
80
POW.
how this works
Normally return statements outside of functions are illegal in JavaScript. turn adds an anonymous function wrapper
around each file and transforms top level return into return module.exports=.
methods
var turn = require('turn')
This module is a browserify transform but you don't need to use browserify necessarily to use it.
turn()
Return a through-stream desugaring the import keyword and top level return
into require() and module.exports=... that can be parsed by node and browserify.
install
With npm do:
npm install turn
license
MIT
