@babel/plugin-transform-template-literals
Advanced tools
Comparing version 7.0.0-beta.42 to 7.0.0-beta.43
147
lib/index.js
"use strict"; | ||
exports.__esModule = true; | ||
Object.defineProperty(exports, "__esModule", { | ||
value: true | ||
}); | ||
exports.default = void 0; | ||
var _helperPluginUtils = require("@babel/helper-plugin-utils"); | ||
function _helperPluginUtils() { | ||
const data = require("@babel/helper-plugin-utils"); | ||
var _helperAnnotateAsPure = _interopRequireDefault(require("@babel/helper-annotate-as-pure")); | ||
_helperPluginUtils = function () { | ||
return data; | ||
}; | ||
var _core = require("@babel/core"); | ||
return data; | ||
} | ||
function _helperAnnotateAsPure() { | ||
const data = _interopRequireDefault(require("@babel/helper-annotate-as-pure")); | ||
_helperAnnotateAsPure = function () { | ||
return data; | ||
}; | ||
return data; | ||
} | ||
function _core() { | ||
const data = require("@babel/core"); | ||
_core = function () { | ||
return data; | ||
}; | ||
return data; | ||
} | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
var _default = (0, _helperPluginUtils.declare)(function (api, options) { | ||
var _default = (0, _helperPluginUtils().declare)((api, options) => { | ||
api.assertVersion(7); | ||
var loose = options.loose; | ||
var helperName = "taggedTemplateLiteral"; | ||
const { | ||
loose | ||
} = options; | ||
let helperName = "taggedTemplateLiteral"; | ||
if (loose) helperName += "Loose"; | ||
function buildConcatCallExressions(items) { | ||
var avail = true; | ||
let avail = true; | ||
return items.reduce(function (left, right) { | ||
var canBeInserted = _core.types.isLiteral(right); | ||
let canBeInserted = _core().types.isLiteral(right); | ||
@@ -30,3 +58,3 @@ if (!canBeInserted && avail) { | ||
if (canBeInserted && _core.types.isCallExpression(left)) { | ||
if (canBeInserted && _core().types.isCallExpression(left)) { | ||
left.arguments.push(right); | ||
@@ -36,3 +64,3 @@ return left; | ||
return _core.types.callExpression(_core.types.memberExpression(left, _core.types.identifier("concat")), [right]); | ||
return _core().types.callExpression(_core().types.memberExpression(left, _core().types.identifier("concat")), [right]); | ||
}); | ||
@@ -42,22 +70,26 @@ } | ||
return { | ||
pre: function pre() { | ||
pre() { | ||
this.templates = new Map(); | ||
}, | ||
visitor: { | ||
TaggedTemplateExpression: function TaggedTemplateExpression(path) { | ||
var node = path.node; | ||
var quasi = node.quasi; | ||
var strings = []; | ||
var raws = []; | ||
var isStringsRawEqual = true; | ||
var _arr = quasi.quasis; | ||
TaggedTemplateExpression(path) { | ||
const { | ||
node | ||
} = path; | ||
const { | ||
quasi | ||
} = node; | ||
const strings = []; | ||
const raws = []; | ||
let isStringsRawEqual = true; | ||
for (var _i = 0; _i < _arr.length; _i++) { | ||
var elem = _arr[_i]; | ||
var _elem$value = elem.value, | ||
raw = _elem$value.raw, | ||
cooked = _elem$value.cooked; | ||
var value = cooked == null ? path.scope.buildUndefinedNode() : _core.types.stringLiteral(cooked); | ||
for (const elem of quasi.quasis) { | ||
const { | ||
raw, | ||
cooked | ||
} = elem.value; | ||
const value = cooked == null ? path.scope.buildUndefinedNode() : _core().types.stringLiteral(cooked); | ||
strings.push(value); | ||
raws.push(_core.types.stringLiteral(raw)); | ||
raws.push(_core().types.stringLiteral(raw)); | ||
@@ -69,31 +101,27 @@ if (raw !== cooked) { | ||
var rawParts = raws.map(function (s) { | ||
return s.value; | ||
}).join(","); | ||
var name = helperName + "_" + raws.length + "_" + rawParts; | ||
var templateObject = this.templates.get(name); | ||
const rawParts = raws.map(s => s.value).join(","); | ||
const name = `${helperName}_${raws.length}_${rawParts}`; | ||
let templateObject = this.templates.get(name); | ||
if (templateObject) { | ||
templateObject = _core.types.cloneNode(templateObject); | ||
templateObject = _core().types.cloneNode(templateObject); | ||
} else { | ||
var programPath = path.find(function (p) { | ||
return p.isProgram(); | ||
}); | ||
const programPath = path.find(p => p.isProgram()); | ||
templateObject = programPath.scope.generateUidIdentifier("templateObject"); | ||
this.templates.set(name, templateObject); | ||
var helperId = this.addHelper(helperName); | ||
var callExpressionInput = []; | ||
callExpressionInput.push(_core.types.arrayExpression(strings)); | ||
const helperId = this.addHelper(helperName); | ||
const callExpressionInput = []; | ||
callExpressionInput.push(_core().types.arrayExpression(strings)); | ||
if (!isStringsRawEqual) { | ||
callExpressionInput.push(_core.types.arrayExpression(raws)); | ||
callExpressionInput.push(_core().types.arrayExpression(raws)); | ||
} | ||
var init = _core.types.callExpression(helperId, callExpressionInput); | ||
const init = _core().types.callExpression(helperId, callExpressionInput); | ||
(0, _helperAnnotateAsPure.default)(init); | ||
(0, _helperAnnotateAsPure().default)(init); | ||
init._compact = true; | ||
programPath.scope.push({ | ||
id: templateObject, | ||
init: init, | ||
init, | ||
_blockHoist: 1.9 | ||
@@ -103,22 +131,20 @@ }); | ||
path.replaceWith(_core.types.callExpression(node.tag, [_core.types.cloneNode(templateObject)].concat(quasi.expressions))); | ||
path.replaceWith(_core().types.callExpression(node.tag, [_core().types.cloneNode(templateObject), ...quasi.expressions])); | ||
}, | ||
TemplateLiteral: function TemplateLiteral(path) { | ||
var nodes = []; | ||
var expressions = path.get("expressions"); | ||
var index = 0; | ||
var _arr2 = path.node.quasis; | ||
for (var _i2 = 0; _i2 < _arr2.length; _i2++) { | ||
var elem = _arr2[_i2]; | ||
TemplateLiteral(path) { | ||
const nodes = []; | ||
const expressions = path.get("expressions"); | ||
let index = 0; | ||
for (const elem of path.node.quasis) { | ||
if (elem.value.cooked) { | ||
nodes.push(_core.types.stringLiteral(elem.value.cooked)); | ||
nodes.push(_core().types.stringLiteral(elem.value.cooked)); | ||
} | ||
if (index < expressions.length) { | ||
var expr = expressions[index++]; | ||
var node = expr.node; | ||
const expr = expressions[index++]; | ||
const node = expr.node; | ||
if (!_core.types.isStringLiteral(node, { | ||
if (!_core().types.isStringLiteral(node, { | ||
value: "" | ||
@@ -131,13 +157,13 @@ })) { | ||
var considerSecondNode = !loose || !_core.types.isStringLiteral(nodes[1]); | ||
const considerSecondNode = !loose || !_core().types.isStringLiteral(nodes[1]); | ||
if (!_core.types.isStringLiteral(nodes[0]) && considerSecondNode) { | ||
nodes.unshift(_core.types.stringLiteral("")); | ||
if (!_core().types.isStringLiteral(nodes[0]) && considerSecondNode) { | ||
nodes.unshift(_core().types.stringLiteral("")); | ||
} | ||
var root = nodes[0]; | ||
let root = nodes[0]; | ||
if (loose) { | ||
for (var i = 1; i < nodes.length; i++) { | ||
root = _core.types.binaryExpression("+", root, nodes[i]); | ||
for (let i = 1; i < nodes.length; i++) { | ||
root = _core().types.binaryExpression("+", root, nodes[i]); | ||
} | ||
@@ -150,2 +176,3 @@ } else if (nodes.length > 1) { | ||
} | ||
} | ||
@@ -152,0 +179,0 @@ }; |
{ | ||
"name": "@babel/plugin-transform-template-literals", | ||
"version": "7.0.0-beta.42", | ||
"version": "7.0.0-beta.43", | ||
"description": "Compile ES2015 template literals to ES5", | ||
@@ -9,4 +9,4 @@ "repository": "https://github.com/babel/babel/tree/master/packages/babel-plugin-transform-template-literals", | ||
"dependencies": { | ||
"@babel/helper-annotate-as-pure": "7.0.0-beta.42", | ||
"@babel/helper-plugin-utils": "7.0.0-beta.42" | ||
"@babel/helper-annotate-as-pure": "7.0.0-beta.43", | ||
"@babel/helper-plugin-utils": "7.0.0-beta.43" | ||
}, | ||
@@ -17,8 +17,8 @@ "keywords": [ | ||
"peerDependencies": { | ||
"@babel/core": "7.0.0-beta.42" | ||
"@babel/core": "7.0.0-beta.43" | ||
}, | ||
"devDependencies": { | ||
"@babel/core": "7.0.0-beta.42", | ||
"@babel/helper-plugin-test-runner": "7.0.0-beta.42" | ||
"@babel/core": "7.0.0-beta.43", | ||
"@babel/helper-plugin-test-runner": "7.0.0-beta.43" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
6699
137
+ Added@babel/code-frame@7.0.0-beta.43(transitive)
+ Added@babel/core@7.0.0-beta.43(transitive)
+ Added@babel/generator@7.0.0-beta.43(transitive)
+ Added@babel/helper-annotate-as-pure@7.0.0-beta.43(transitive)
+ Added@babel/helper-function-name@7.0.0-beta.43(transitive)
+ Added@babel/helper-get-function-arity@7.0.0-beta.43(transitive)
+ Added@babel/helper-plugin-utils@7.0.0-beta.43(transitive)
+ Added@babel/helper-split-export-declaration@7.0.0-beta.43(transitive)
+ Added@babel/helpers@7.0.0-beta.43(transitive)
+ Added@babel/highlight@7.0.0-beta.43(transitive)
+ Added@babel/template@7.0.0-beta.43(transitive)
+ Added@babel/traverse@7.0.0-beta.43(transitive)
+ Added@babel/types@7.0.0-beta.43(transitive)
+ Addedbabylon@7.0.0-beta.43(transitive)
- Removed@babel/code-frame@7.0.0-beta.42(transitive)
- Removed@babel/core@7.0.0-beta.42(transitive)
- Removed@babel/generator@7.0.0-beta.42(transitive)
- Removed@babel/helper-annotate-as-pure@7.0.0-beta.42(transitive)
- Removed@babel/helper-function-name@7.0.0-beta.42(transitive)
- Removed@babel/helper-get-function-arity@7.0.0-beta.42(transitive)
- Removed@babel/helper-plugin-utils@7.0.0-beta.42(transitive)
- Removed@babel/helper-split-export-declaration@7.0.0-beta.42(transitive)
- Removed@babel/helpers@7.0.0-beta.42(transitive)
- Removed@babel/highlight@7.0.0-beta.42(transitive)
- Removed@babel/template@7.0.0-beta.42(transitive)
- Removed@babel/traverse@7.0.0-beta.42(transitive)
- Removed@babel/types@7.0.0-beta.42(transitive)
- Removedbabylon@7.0.0-beta.42(transitive)