Socket
Socket
Sign inDemoInstall

@babel/plugin-transform-template-literals

Package Overview
Dependencies
Maintainers
6
Versions
78
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@babel/plugin-transform-template-literals - npm Package Compare versions

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"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc