2.4.1 • Published 4 years ago

jsx-transform v2.4.1

Weekly downloads
675
License
0BSD
Repository
github
Last release
4 years ago

jsx-transform Build Status NPM version Dependency Status

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.

JSX is a JavaScript syntax for composing virtual DOM elements. See React's documentation for an explanation.

For linting files containing JSX see JSXHint.

Installation

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 for an explanation.

For linting files containing JSX see JSXHint.

jsx-transform~fromString(str, options) ⇒ String

Desugar JSX and return transformed string.

Kind: inner method of jsx-transform

ParamTypeDescription
strString
optionsObject
options.factoryStringFactory function name for element creation.
options.spreadFnStringName of function for use with spread attributes (default: Object.assign).
options.unknownTagPatternStringuses 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.passUnknownTagsToFactoryBooleanHandle unknown tags like known tags, and pass them as an object to options.factory. If true, createElement(Component) instead of Component() (default: false).
options.unknownTagsAsStringBooleanPass unknown tags as string to options.factory (default: false).
options.arrayChildrenBooleanPass children as array instead of arguments (default: true).

Example

var jsx = require('jsx-transform');

jsx.fromString('<h1>Hello World</h1>', {
  factory: 'mercury.h'
});
// => 'mercury.h("h1", null, ["Hello World"])'

jsx-transform~fromFile(path, options) ⇒ String

Kind: inner method of jsx-transform

ParamType
pathString
optionsObject

jsx-transform~browserifyTransform(filename, options) ⇒ function

Make a browserify transform.

Kind: inner method of jsx-transform
Returns: function - browserify transform

ParamTypeDescription
filenameString
optionsObject
options.extensionsStringArray of file extensions to run browserify transform on (default: ['.js', '.jsx', '.es', '.es6']).

Example

var browserify = require('browserify');
var jsxify = require('jsx-transform').browserifyTransform;

browserify()
  .transform(jsxify, options)
  .bundle()

Use .configure(options) to return a configured transform:

var browserify = require('browserify');
var jsxify = require('jsx-transform').browserifyTransform;

browserify({
  transforms: [jsxify.configure(options)]
}).bundle()

Use in package.json:

"browserify": {
  "transform": [
    ["jsx-transform/browserify", { "factory": "h" }]
  ]
}

BSD Licensed