jsx-transform
JSX transpiler. Desugar JSX into JavaScript.
This module aims to be a standard and configurable implementation of JSX
decoupled from React for use with
Mercury or other modules.
For linting files containing JSX see
JSXHint.
Installation
npm install jsx-transform
Example
var jsx = require('jsx-transform');
jsx.fromString('<h1>Hello World</h1>', {
factory: 'mercury.h'
});
JSX
JSX is a JavaScript syntax for composing virtual DOM elements.
See React's documentation for an explanation.
API
Members
##jsx-transform~fromString(str, [options])
Desugar JSX and return transformed string.
Params
- str
String
- [options]
Object
- factory
String
- Factory function name for element creation. - [spreadFn]
String
- Name of function for use with spread
attributes (default: Object.assign). - [unknownTagPattern]
String
- uses given pattern for unknown
tags where {tag}
is replaced by the tag name. Useful for rending mercury
components as Component.render()
instead of Component()
. - [passUnknownTagsToFactory]
Boolean
- Handle unknown tags
like known tags, and pass them as an object to options.factory
. If
true, createElement(Component)
instead of Component()
(default: false). - [unknownTagsAsString]
Boolean
- Pass unknown tags as string
to options.factory
(default: false). - [arrayChildren]
Boolean
- Pass children as array instead of
arguments (default: true).
Scope: inner function of jsx-transform
Returns: String
##jsx-transform~fromFile(path, [options])
See module:jsx-transform.fromString for usage.
Params
- path
String
- [options]
Object
Scope: inner function of jsx-transform
Returns: String
##jsx-transform~browserifyTransform([options])
Return a browserify transform.
See module:jsx-transform.fromString for options.
Params
Scope: inner function of jsx-transform
Returns: function
- browserify transform
Example
var browserify = require('browserify');
var jsxify = require('jsx-transform').browserify;
browserify()
.transform(jsxify(options))
.bundle()
BSD Licensed