first commit

This commit is contained in:
s.golasch
2023-08-01 13:49:46 +02:00
commit 1fc239fd54
20238 changed files with 3112246 additions and 0 deletions

View File

@@ -0,0 +1,4 @@
node_modules
*.log
src
test

View File

@@ -0,0 +1,115 @@
# babel-plugin-transform-react-jsx
> Turn JSX into React function calls
## Example
### React
**In**
```javascript
var profile = <div>
<img src="avatar.png" className="profile" />
<h3>{[user.firstName, user.lastName].join(' ')}</h3>
</div>;
```
**Out**
```javascript
var profile = React.createElement("div", null,
React.createElement("img", { src: "avatar.png", className: "profile" }),
React.createElement("h3", null, [user.firstName, user.lastName].join(" "))
);
```
### Custom
**In**
```javascript
/** @jsx dom */
var { dom } = require("deku");
var profile = <div>
<img src="avatar.png" className="profile" />
<h3>{[user.firstName, user.lastName].join(' ')}</h3>
</div>;
```
**Out**
```javascript
/** @jsx dom */
var dom = require("deku").dom;
var profile = dom( "div", null,
dom("img", { src: "avatar.png", className: "profile" }),
dom("h3", null, [user.firstName, user.lastName].join(" "))
);
```
## Installation
```sh
npm install --save-dev babel-plugin-transform-react-jsx
```
## Usage
### Via `.babelrc` (Recommended)
**.babelrc**
Without options:
```json
{
"plugins": ["transform-react-jsx"]
}
```
With options:
```json
{
"plugins": [
["transform-react-jsx", {
"pragma": "dom" // default pragma is React.createElement
}]
]
}
```
### Via CLI
```sh
babel --plugins transform-react-jsx script.js
```
### Via Node API
```javascript
require("babel-core").transform("code", {
plugins: ["transform-react-jsx"]
});
```
## Options
### `pragma`
`string`, defaults to `React.createElement`.
Replace the function used when compiling JSX expressions.
Note that the `@jsx React.DOM` pragma has been deprecated as of React v0.12
### `useBuiltIns`
`boolean`, defaults to `false`.
When spreading props, use `Object.assign` directly instead of Babel's extend helper.

View File

@@ -0,0 +1,84 @@
"use strict";
exports.__esModule = true;
var _getIterator2 = require("babel-runtime/core-js/get-iterator");
var _getIterator3 = _interopRequireDefault(_getIterator2);
exports.default = function (_ref) {
var t = _ref.types;
var JSX_ANNOTATION_REGEX = /\*?\s*@jsx\s+([^\s]+)/;
var visitor = (0, _babelHelperBuilderReactJsx2.default)({
pre: function pre(state) {
var tagName = state.tagName;
var args = state.args;
if (t.react.isCompatTag(tagName)) {
args.push(t.stringLiteral(tagName));
} else {
args.push(state.tagExpr);
}
},
post: function post(state, pass) {
state.callee = pass.get("jsxIdentifier")();
}
});
visitor.Program = function (path, state) {
var file = state.file;
var id = state.opts.pragma || "React.createElement";
for (var _iterator = file.ast.comments, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : (0, _getIterator3.default)(_iterator);;) {
var _ref2;
if (_isArray) {
if (_i >= _iterator.length) break;
_ref2 = _iterator[_i++];
} else {
_i = _iterator.next();
if (_i.done) break;
_ref2 = _i.value;
}
var comment = _ref2;
var matches = JSX_ANNOTATION_REGEX.exec(comment.value);
if (matches) {
id = matches[1];
if (id === "React.DOM") {
throw file.buildCodeFrameError(comment, "The @jsx React.DOM pragma has been deprecated as of React 0.12");
} else {
break;
}
}
}
state.set("jsxIdentifier", function () {
return id.split(".").map(function (name) {
return t.identifier(name);
}).reduce(function (object, property) {
return t.memberExpression(object, property);
});
});
};
return {
inherits: _babelPluginSyntaxJsx2.default,
visitor: visitor
};
};
var _babelPluginSyntaxJsx = require("babel-plugin-syntax-jsx");
var _babelPluginSyntaxJsx2 = _interopRequireDefault(_babelPluginSyntaxJsx);
var _babelHelperBuilderReactJsx = require("babel-helper-builder-react-jsx");
var _babelHelperBuilderReactJsx2 = _interopRequireDefault(_babelHelperBuilderReactJsx);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
module.exports = exports["default"];

View File

@@ -0,0 +1,47 @@
{
"_from": "babel-plugin-transform-react-jsx@^6.24.1",
"_id": "babel-plugin-transform-react-jsx@6.24.1",
"_inBundle": false,
"_integrity": "sha1-hAoCjn30YN/DotKfDA2R9jduZqM=",
"_location": "/babel-plugin-transform-react-jsx",
"_phantomChildren": {},
"_requested": {
"type": "range",
"registry": true,
"raw": "babel-plugin-transform-react-jsx@^6.24.1",
"name": "babel-plugin-transform-react-jsx",
"escapedName": "babel-plugin-transform-react-jsx",
"rawSpec": "^6.24.1",
"saveSpec": null,
"fetchSpec": "^6.24.1"
},
"_requiredBy": [
"/prepack"
],
"_resolved": "https://registry.npmjs.org/babel-plugin-transform-react-jsx/-/babel-plugin-transform-react-jsx-6.24.1.tgz",
"_shasum": "840a028e7df460dfc3a2d29f0c0d91f6376e66a3",
"_spec": "babel-plugin-transform-react-jsx@^6.24.1",
"_where": "/Users/asciidisco/Desktop/asciidisco.com/build/node_modules/prepack",
"bundleDependencies": false,
"dependencies": {
"babel-helper-builder-react-jsx": "^6.24.1",
"babel-plugin-syntax-jsx": "^6.8.0",
"babel-runtime": "^6.22.0"
},
"deprecated": false,
"description": "Turn JSX into React function calls",
"devDependencies": {
"babel-helper-plugin-test-runner": "^6.24.1"
},
"keywords": [
"babel-plugin"
],
"license": "MIT",
"main": "lib/index.js",
"name": "babel-plugin-transform-react-jsx",
"repository": {
"type": "git",
"url": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-react-jsx"
},
"version": "6.24.1"
}