Compiles JavaScript written using template strings to use ES5-compatible syntax. For example, this:
var name = "Nicholas", msg = `Hello, ${name}!`; console.log(msg); // "Hello, Nicholas!"
compiles to this:
var name = "Nicholas", msg = "Hello, " + name + "!"; console.log(msg); // "Hello, Nicholas!"
For more information about the proposed syntax, see the TC39 wiki page on template strings.
$ npm install es6-templates
$ node > var compile = require('es6-templates').compile; > compile('`Hey, ${name}!`') { 'code': ..., 'map': ... }
Without interpolation:
`Hey!` // becomes '"Hey!"'
With interpolation:
`Hey, ${name}!` // becomes "Hey, " + name + "!"
With a tag expression:
escape `<a href="${href}">${text}</a>` // becomes escape(function() { var strings = ["\u003Ca href=\"", "\"\u003E", "\u003C/a\u003E"]; strings.raw = ["\u003Ca href=\"", "\"\u003E", "\u003C/a\u003E"]; return strings; }(), href, text);
Or work directly with the AST:
$ node > var transform = require('es6-templates').transform; > transform(inputAST)
Transforming ASTs is best done using recast to preserve formatting where possible and for generating source maps.
Browserify support is built in.
$ npm install es6-templates # install local dependency $ browserify -t es6-templates $file
First, install the development dependencies:
$ npm install
Then, try running the tests:
$ npm test
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)Any contributors to the master es6-templates repository must sign the Individual Contributor License Agreement (CLA). It‘s a short form that covers our bases and makes sure you’re eligible to contribute.
When you have a change you‘d like to see in the master repository, send a pull request. Before we merge your request, we’ll make sure you're in the list of people who have signed a CLA.