🚀. Socket Launch Week Day 2:Introducing Manifest Alerts.Learn more
Sign In

@babel/plugin-transform-template-literals

Package Overview
Dependencies
Maintainers
4
Versions
99
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
8.0.0-rc.2
to
8.0.0-rc.3
+1
-1
lib/index.js

@@ -5,3 +5,3 @@ import { declare } from '@babel/helper-plugin-utils';

var index = declare((api, options) => {
api.assertVersion("^7.0.0-0 || ^8.0.0 || 8.0.0-rc.2");
api.assertVersion("^7.0.0-0 || ^8.0.0 || 8.0.0-rc.3");
const ignoreToPrimitiveHint = api.assumption("ignoreToPrimitiveHint") ?? options.loose;

@@ -8,0 +8,0 @@ const mutableTemplateObject = api.assumption("mutableTemplateObject") ?? options.loose;

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { template, types as t, type NodePath } from \"@babel/core\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const ignoreToPrimitiveHint =\n api.assumption(\"ignoreToPrimitiveHint\") ?? options.loose;\n const mutableTemplateObject =\n api.assumption(\"mutableTemplateObject\") ?? options.loose;\n\n let helperName = \"taggedTemplateLiteral\";\n if (mutableTemplateObject) helperName += \"Loose\";\n\n /**\n * This function groups the objects into multiple calls to `.concat()` in\n * order to preserve execution order of the primitive conversion, e.g.\n *\n * \"\".concat(obj.foo, \"foo\", obj2.foo, \"foo2\")\n *\n * would evaluate both member expressions _first_ then, `concat` will\n * convert each one to a primitive, whereas\n *\n * \"\".concat(obj.foo, \"foo\").concat(obj2.foo, \"foo2\")\n *\n * would evaluate the member, then convert it to a primitive, then evaluate\n * the second member and convert that one, which reflects the spec behavior\n * of template literals.\n */\n function buildConcatCallExpressions(items: t.Expression[]): t.CallExpression {\n let avail = true;\n // @ts-expect-error items must not be empty\n return items.reduce(function (left, right) {\n let canBeInserted = t.isLiteral(right);\n\n if (!canBeInserted && avail) {\n canBeInserted = true;\n avail = false;\n }\n if (canBeInserted && t.isCallExpression(left)) {\n left.arguments.push(right);\n return left;\n }\n return t.callExpression(\n t.memberExpression(left, t.identifier(\"concat\")),\n [right],\n );\n });\n }\n\n return {\n name: \"transform-template-literals\",\n\n visitor: {\n TaggedTemplateExpression(path) {\n const { node } = path;\n const { quasi } = node;\n\n const strings = [];\n const raws = [];\n\n // Flag variable to check if contents of strings and raw are equal\n let isStringsRawEqual = true;\n\n for (const elem of quasi.quasis) {\n const { raw, cooked } = elem.value;\n const value =\n cooked == null\n ? path.scope.buildUndefinedNode()\n : t.stringLiteral(cooked);\n\n strings.push(value);\n raws.push(t.stringLiteral(raw));\n\n if (raw !== cooked) {\n // false even if one of raw and cooked are not equal\n isStringsRawEqual = false;\n }\n }\n\n const helperArgs = [t.arrayExpression(strings)];\n // only add raw arrayExpression if there is any difference between raws and strings\n if (!isStringsRawEqual) {\n helperArgs.push(t.arrayExpression(raws));\n }\n\n const tmp = path.scope.generateUidIdentifier(\"templateObject\");\n path.scope.getProgramParent().push({ id: t.cloneNode(tmp) });\n\n path.replaceWith(\n t.callExpression(node.tag, [\n template.expression.ast`\n ${t.cloneNode(tmp)} || (\n ${tmp} = ${this.addHelper(helperName)}(${helperArgs})\n )\n `,\n // @ts-expect-error Fixme: quasi.expressions may contain TSAnyKeyword\n ...quasi.expressions,\n ]),\n );\n },\n\n TemplateLiteral(path) {\n if (path.parent.type === \"TSLiteralType\") {\n // Skip TemplateLiteral in TSLiteralType\n return;\n }\n const nodes: t.Expression[] = [];\n const expressions = path.get(\"expressions\") as NodePath<t.Expression>[];\n\n let index = 0;\n for (const elem of path.node.quasis) {\n if (elem.value.cooked) {\n nodes.push(t.stringLiteral(elem.value.cooked));\n }\n\n if (index < expressions.length) {\n const expr = expressions[index++];\n const node = expr.node;\n if (!t.isStringLiteral(node, { value: \"\" })) {\n nodes.push(node);\n }\n }\n }\n\n // since `+` is left-to-right associative\n // ensure the first node is a string if first/second isn't\n if (\n !t.isStringLiteral(nodes[0]) &&\n !(ignoreToPrimitiveHint && t.isStringLiteral(nodes[1]))\n ) {\n nodes.unshift(t.stringLiteral(\"\"));\n }\n let root = nodes[0];\n\n if (ignoreToPrimitiveHint) {\n for (let i = 1; i < nodes.length; i++) {\n root = t.binaryExpression(\"+\", root, nodes[i]);\n }\n } else if (nodes.length > 1) {\n root = buildConcatCallExpressions(nodes);\n }\n\n path.replaceWith(root);\n },\n },\n };\n});\n"],"names":["declare","api","options","assertVersion","ignoreToPrimitiveHint","assumption","loose","mutableTemplateObject","helperName","buildConcatCallExpressions","items","avail","reduce","left","right","canBeInserted","t","isLiteral","isCallExpression","arguments","push","callExpression","memberExpression","identifier","name","visitor","TaggedTemplateExpression","path","node","quasi","strings","raws","isStringsRawEqual","elem","quasis","raw","cooked","value","scope","buildUndefinedNode","stringLiteral","helperArgs","arrayExpression","tmp","generateUidIdentifier","getProgramParent","id","cloneNode","replaceWith","tag","template","expression","ast","addHelper","expressions","TemplateLiteral","parent","type","nodes","get","index","length","expr","isStringLiteral","unshift","root","i","binaryExpression"],"mappings":"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"}
{"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { template, types as t, type NodePath } from \"@babel/core\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const ignoreToPrimitiveHint =\n api.assumption(\"ignoreToPrimitiveHint\") ?? options.loose;\n const mutableTemplateObject =\n api.assumption(\"mutableTemplateObject\") ?? options.loose;\n\n let helperName = \"taggedTemplateLiteral\";\n if (mutableTemplateObject) helperName += \"Loose\";\n\n /**\n * This function groups the objects into multiple calls to `.concat()` in\n * order to preserve execution order of the primitive conversion, e.g.\n *\n * \"\".concat(obj.foo, \"foo\", obj2.foo, \"foo2\")\n *\n * would evaluate both member expressions _first_ then, `concat` will\n * convert each one to a primitive, whereas\n *\n * \"\".concat(obj.foo, \"foo\").concat(obj2.foo, \"foo2\")\n *\n * would evaluate the member, then convert it to a primitive, then evaluate\n * the second member and convert that one, which reflects the spec behavior\n * of template literals.\n */\n function buildConcatCallExpressions(items: t.Expression[]): t.CallExpression {\n let avail = true;\n // @ts-expect-error items must not be empty\n return items.reduce(function (left, right) {\n let canBeInserted = t.isLiteral(right);\n\n if (!canBeInserted && avail) {\n canBeInserted = true;\n avail = false;\n }\n if (canBeInserted && t.isCallExpression(left)) {\n left.arguments.push(right);\n return left;\n }\n return t.callExpression(\n t.memberExpression(left, t.identifier(\"concat\")),\n [right],\n );\n });\n }\n\n return {\n name: \"transform-template-literals\",\n\n visitor: {\n TaggedTemplateExpression(path) {\n const { node } = path;\n const { quasi } = node;\n\n const strings = [];\n const raws = [];\n\n // Flag variable to check if contents of strings and raw are equal\n let isStringsRawEqual = true;\n\n for (const elem of quasi.quasis) {\n const { raw, cooked } = elem.value;\n const value =\n cooked == null\n ? path.scope.buildUndefinedNode()\n : t.stringLiteral(cooked);\n\n strings.push(value);\n raws.push(t.stringLiteral(raw));\n\n if (raw !== cooked) {\n // false even if one of raw and cooked are not equal\n isStringsRawEqual = false;\n }\n }\n\n const helperArgs = [t.arrayExpression(strings)];\n // only add raw arrayExpression if there is any difference between raws and strings\n if (!isStringsRawEqual) {\n helperArgs.push(t.arrayExpression(raws));\n }\n\n const tmp = path.scope.generateUidIdentifier(\"templateObject\");\n path.scope.getProgramParent().push({ id: t.cloneNode(tmp) });\n\n path.replaceWith(\n t.callExpression(node.tag, [\n template.expression.ast`\n ${t.cloneNode(tmp)} || (\n ${tmp} = ${this.addHelper(helperName)}(${helperArgs})\n )\n `,\n // @ts-expect-error Fixme: quasi.expressions may contain TSAnyKeyword\n ...quasi.expressions,\n ]),\n );\n },\n\n TemplateLiteral(path) {\n if (path.parent.type === \"TSLiteralType\") {\n // Skip TemplateLiteral in TSLiteralType\n return;\n }\n const nodes: t.Expression[] = [];\n const expressions = path.get(\"expressions\") as NodePath<t.Expression>[];\n\n let index = 0;\n for (const elem of path.node.quasis) {\n if (elem.value.cooked) {\n nodes.push(t.stringLiteral(elem.value.cooked));\n }\n\n if (index < expressions.length) {\n const expr = expressions[index++];\n const node = expr.node;\n if (!t.isStringLiteral(node, { value: \"\" })) {\n nodes.push(node);\n }\n }\n }\n\n // since `+` is left-to-right associative\n // ensure the first node is a string if first/second isn't\n if (\n !t.isStringLiteral(nodes[0]) &&\n !(ignoreToPrimitiveHint && t.isStringLiteral(nodes[1]))\n ) {\n nodes.unshift(t.stringLiteral(\"\"));\n }\n let root = nodes[0];\n\n if (ignoreToPrimitiveHint) {\n for (let i = 1; i < nodes.length; i++) {\n root = t.binaryExpression(\"+\", root, nodes[i]);\n }\n } else if (nodes.length > 1) {\n root = buildConcatCallExpressions(nodes);\n }\n\n path.replaceWith(root);\n },\n },\n };\n});\n"],"names":["declare","api","options","assertVersion","ignoreToPrimitiveHint","assumption","loose","mutableTemplateObject","helperName","buildConcatCallExpressions","items","avail","reduce","left","right","canBeInserted","t","isLiteral","isCallExpression","arguments","push","callExpression","memberExpression","identifier","name","visitor","TaggedTemplateExpression","path","node","quasi","strings","raws","isStringsRawEqual","elem","quasis","raw","cooked","value","scope","buildUndefinedNode","stringLiteral","helperArgs","arrayExpression","tmp","generateUidIdentifier","getProgramParent","id","cloneNode","replaceWith","tag","template","expression","ast","addHelper","expressions","TemplateLiteral","parent","type","nodes","get","index","length","expr","isStringLiteral","unshift","root","i","binaryExpression"],"mappings":"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"}
{
"name": "@babel/plugin-transform-template-literals",
"version": "8.0.0-rc.2",
"version": "8.0.0-rc.3",
"description": "Compile ES2015 template literals to ES5",

@@ -16,3 +16,3 @@ "repository": {

"dependencies": {
"@babel/helper-plugin-utils": "^8.0.0-rc.2"
"@babel/helper-plugin-utils": "^8.0.0-rc.3"
},

@@ -23,7 +23,7 @@ "keywords": [

"peerDependencies": {
"@babel/core": "^8.0.0-rc.2"
"@babel/core": "^8.0.0-rc.3"
},
"devDependencies": {
"@babel/core": "^8.0.0-rc.2",
"@babel/helper-plugin-test-runner": "^8.0.0-rc.2"
"@babel/core": "^8.0.0-rc.3",
"@babel/helper-plugin-test-runner": "^8.0.0-rc.3"
},

@@ -30,0 +30,0 @@ "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-template-literals",