Awesome
Transpiles JavaScript modules from one format to another.
It supports from:
- es6,
- cjs,
- amd,
- steal
to
- amd,
- steal,
- cjs.
Currently, it can not transpile to ES6 module syntax.
Install
> npm install transpile --save-dev
Use
transpile.to
transpiles from one format to another format. transpile.able
lets you know if a transpile is possible.
Formats
Formats are specified by strings like:
- "es6" - ES6 Module syntax like
import Point from "math";
- "cjs" - CommonJS syntax like
var _ = require('underscore');
- "amd" - Asynchronous Module Definition
syntax like
define(['jquery'],function($){});
- "steal" - steal syntax like
steal('jquery', function($){})
transpile.to(load, format, options) -> transpiledResult
Transpiles from the load
's format to the specified format. If
the load
does not specify a format, "es6"
modules are assumed. Returns
an object containing the transpiled source and sourceMap (if sourceMap option provided).
Example:
var transpile = require('transpile');
var res = transpile.to({
name: "my/module",
source: "var foo = require('foo')",
metadata: {format: "cjs"}
}, "amd")
res.code //-> "define("my/module", function(require, exports, module) { ... "
A load is an object in the shape of an ES6 Load Record like:
{
name: "moduleName",
source: "source code",
metadata: {format: "formatName"}
}
NOTE
Previously transpile.to
returned a string containing the transpiled source. To accomodate Source Maps support the API has changed and now returns an object that looks like:
{
code: "define(...", // The transpiled source,
map: {}, // A source map, if sourceMaps option is provided.
ast: {} // A Mozilla Parser API compatible AST, created by Esprima
}
options
- normalizeMap
Object<moduleName,moduleName>
- A mapping module names that will be used to replace dependency names in the transpiled result. - normalize
function(name, currentName, address) -> String
- A function that can be used to change moduleNames that are written in the transpiled result. - namedDefines
Boolean=false
- Set to true to insert named defines. - transpiler
String=traceur
- Set which ES6 transpiler to use. Valid options aretraceur
or6to5
withtraceur
being the default. - transpile
function(source, compileOptions, options) -> Object
- If you want to handle tranpiling yourself and not use the built-in options, this is a function that will be given the source and is expected to return an object containing acode
string. - sourceMaps
Boolean=false
- Set to true to return amap
andast
object along with the result. - sourceMapsContent
Boolean=false
- IfsourceMaps
is set to true, this option will include the original source contents with the source maps.
transpile.able(fromFormat, toFormat) -> transpiledPath
Returns the path used to transpile
from fromFormat
to toFormat
. If transpiling is not possible, null
will be
returned.
Example:
var res = transpile.able("steal","cjs");
res //-> ["steal","amd"];
This means that a module will be converted from "steal" to "amd" and then to "cjs".
Test
> npm test