Giter VIP home page Giter VIP logo

nodent-compiler's Introduction

NPM

nodent-compiler

NoDent is a small module for Nodejs that implements the JavaScript ES7 keywords async and await. These make writing, reading and understanding asynchronous and callback methods more implicit and embedded in the language. It works by transforming the ES7 JavaScript keywords await and async to fully-ES5 compatible code.

This is the core compiler implementation. The main documentation and details for the CLI, require hook and package options, performance and testing can be found here.

Usage

var NodentCompiler = require('nodent-compiler');
var compiler = new NodentCompiler() ;
var es5ReadySourceCode = compiler.compile(sourceCode, filename, { sourcemap:false, promises: true, noRuntime: true, es6target: true });

new NodentCompiler(opts) creates a new NodentCompiler. Note that instances of a NodentCompiler can (and should) be reused to improve compilation performance since internal structures are cached. opts is an optional set of options containing:

	log:<null|function>		// Called by the compiler to report a compilation warning.

compiler.compile(sourceCode, filename, options) compiles ES7 source code containing async and await to ES5 source code.

sourceCode:<string>	// The source to compiler
filename:<?string>	// Optional original filename for source maps
options:<object>:
	es7:<boolean>,			// Compile in es7 mode
	promises:<boolean>,		// Compile in Promises mode
	generators:<boolean>,	// Compile in generator mode
	engine:<boolean>,		// Compile in engine mode
	sourcemap:<boolean>,	// Create a sourcemap for the browser's debugger
	wrapAwait:<boolean>,	// Allow 'await' on non-Promise expressions
	lazyThenables:<boolean>,// Evaluate async bodies lazily in 'es7' mode.
	noRuntime:<boolean>,  	// Only compatible with promises & engine. Generate pure ES5 code for an environment that support Promises natively or as a global declaration.
	es6target:<boolean>		// Compile code assuming an ES6 target (as of v3.1.0, this only requires support for arrow functions)

Runtime requirements

nodent-runtime must be available to generated code if es7 or generators is set, or noRuntime is falsy. Promises must be available to generated code if promises, generators or engine is set.

To generate code that requires no runtime support other than Promises, set promises and noRuntime.

nodent-compiler's People

Contributors

matatwork avatar

Watchers

Mariusz Nowak avatar James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.