JSX transpiler. Desugar JSX into JavaScript. A standard and configurable implementation of JSX decoupled from React.
npm install jsx-transformsh
npm install jsx-transform
`
API
jsx-transform
This module aims to be a standard and configurable implementation of JSX
decoupled from React for use with
Mercury or other modules.
JSX is a JavaScript syntax for composing virtual DOM elements.
See React's [documentation][0] for an explanation.
For linting files containing JSX see
JSXHint.
* jsx-transform
* [~fromString(str, [options])](#module_jsx-transform..fromString) ⇒ String
* [~fromFile(path, [options])](#module_jsx-transform..fromFile) ⇒ String
* [~browserifyTransform([filename], [options])](#module_jsx-transform..browserifyTransform) ⇒ function
$3
Desugar JSX and return transformed string.
Kind: inner method of jsx-transform
| Param | Type | Description |
| --- | --- | --- |
| str | String | |
| [options] | Object | |
| options.factory | String | Factory function name for element creation. |
| [options.spreadFn] | String | Name of function for use with spread attributes (default: Object.assign). |
| [options.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(). |
| [options.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). |
| [options.unknownTagsAsString] | Boolean | Pass unknown tags as string to options.factory (default: false). |
| [options.arrayChildren] | Boolean | Pass children as array instead of arguments (default: true). |
Example
`javascript
var jsx = require('jsx-transform');
jsx.fromString('Hello World
', {
factory: 'mercury.h'
});
// => 'mercury.h("h1", null, ["Hello World"])'
`
$3
Kind: inner method of jsx-transform
| Param | Type |
| --- | --- |
| path | String |
| [options] | Object |
$3
Make a browserify transform.
Kind: inner method of jsx-transform
Returns: function - browserify transform
| Param | Type | Description |
| --- | --- | --- |
| [filename] | String | |
| [options] | Object | |
| [options.extensions] | String | Array of file extensions to run browserify transform on (default: ['.js', '.jsx', '.es', '.es6']). |
Example
`javascript
var browserify = require('browserify');
var jsxify = require('jsx-transform').browserifyTransform;
browserify()
.transform(jsxify, options)
.bundle()
`
Use .configure(options) to return a configured transform:
`javascript
var browserify = require('browserify');
var jsxify = require('jsx-transform').browserifyTransform;
browserify({
transforms: [jsxify.configure(options)]
}).bundle()
`
Use in package.json:
`json
"browserify": {
"transform": [
["jsx-transform/browserify", { "factory": "h" }]
]
}
``