minimal modules for a hypothetical es6 with lua's return, inspired by substack/mmmify and motivated by @shtylman.
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.
// 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.
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=
.
var turn = require('turn')
This module is a browserify transform but you don't need to use browserify necessarily to use it.
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.
With npm do:
npm install turn
MIT