babel-plugin-transform-react-create-element
Advanced tools
+1
-1
| { | ||
| "name": "babel-plugin-transform-react-create-element", | ||
| "version": "0.2.0", | ||
| "version": "0.2.1", | ||
| "description": "Shorten JSX React.createElement calls using a local variable.", | ||
@@ -5,0 +5,0 @@ "main": "src/index.js", |
+2
-0
@@ -39,2 +39,4 @@ # babel-plugin-transform-react-create-element | ||
| Install via `npm install -D babel-plugin-transform-react-create-element` or `yarn add -D babel-plugin-transform-react-create-element`. | ||
| In your `.babelrc`: | ||
@@ -41,0 +43,0 @@ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAyFlC,QAAA,MAAM,SAAS;;;;;;;CAmBb,CAAC;AAEH,eAAe,SAAS,CAAC"} | ||
| {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AA0FlC,QAAA,MAAM,SAAS;;;;;;;CAmBb,CAAC;AAEH,eAAe,SAAS,CAAC"} |
+10
-11
@@ -5,8 +5,3 @@ "use strict"; | ||
| const template_1 = tslib_1.__importDefault(require("@babel/template")); | ||
| const PRAGMA_ELEM_NAME = "createElement"; | ||
| const LOCAL_VARIABLE_TEMPLATE = template_1.default(` | ||
| const %%pragma%% = /*#__PURE__*/ React.createElement; | ||
| `, { | ||
| preserveComments: true, | ||
| }); | ||
| const LOCAL_VARIABLE_TEMPLATE = template_1.default("const %%localIdentifier%% = /*#__PURE__*/ React.createElement;", { preserveComments: true }); | ||
| const getReactImport = (path) => { | ||
@@ -18,3 +13,4 @@ const binding = path.scope.getBinding(path.node.name); | ||
| const bindingPath = binding.path; | ||
| if (bindingPath.isImportDefaultSpecifier()) { | ||
| if (bindingPath.isImportDefaultSpecifier() || | ||
| bindingPath.isImportNamespaceSpecifier()) { | ||
| const parentPath = bindingPath.parentPath; | ||
@@ -39,3 +35,3 @@ if (parentPath.isImportDeclaration() && | ||
| }; | ||
| const getCreateElementAndImport = (path) => { | ||
| const getCreateElementCallAndReactImport = (path) => { | ||
| const callee = path.get("callee"); | ||
@@ -50,2 +46,5 @@ if (!callee.isMemberExpression()) { | ||
| const object = callee.get("object"); | ||
| if (!object.isIdentifier()) { | ||
| return null; | ||
| } | ||
| const reactImport = getReactImport(object); | ||
@@ -58,5 +57,5 @@ if (!reactImport) { | ||
| const insertLocalVariable = (importSite) => { | ||
| const uniqueIdent = importSite.scope.generateUidIdentifier(PRAGMA_ELEM_NAME); | ||
| const uniqueIdent = importSite.scope.generateUidIdentifier("createElement"); | ||
| const variableDeclaration = LOCAL_VARIABLE_TEMPLATE({ | ||
| pragma: uniqueIdent, | ||
| localIdentifier: uniqueIdent, | ||
| }); | ||
@@ -71,3 +70,3 @@ const [node] = importSite.parentPath.insertAfter(variableDeclaration); | ||
| CallExpression(path, state) { | ||
| const data = getCreateElementAndImport(path); | ||
| const data = getCreateElementCallAndReactImport(path); | ||
| if (!data) { | ||
@@ -74,0 +73,0 @@ return; |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"} | ||
| {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"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"} |
9109
3.31%66
3.13%87
-1.14%