@babel/plugin-transform-react-jsx
Advanced tools
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"create-plugin-shared.js","sources":["../src/create-plugin.ts"],"sourcesContent":["import jsx from \"@babel/plugin-syntax-jsx\";\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport { template, types as t } from \"@babel/core\";\nimport type { PluginPass, NodePath } from \"@babel/core\";\nimport { addNamed, addNamespace, isModule } from \"@babel/helper-module-imports\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport type {\n CallExpression,\n Class,\n Expression,\n Identifier,\n JSXAttribute,\n JSXElement,\n JSXFragment,\n JSXOpeningElement,\n JSXSpreadAttribute,\n MemberExpression,\n ObjectExpression,\n Program,\n} from \"@babel/types\";\n\nconst DEFAULT = {\n importSource: \"react\",\n runtime: \"automatic\",\n pragma: \"React.createElement\",\n pragmaFrag: \"React.Fragment\",\n};\n\nconst JSX_SOURCE_ANNOTATION_REGEX =\n /^\\s*(?:\\*\\s*)?@jsxImportSource\\s+(\\S+)\\s*$/m;\nconst JSX_RUNTIME_ANNOTATION_REGEX = /^\\s*(?:\\*\\s*)?@jsxRuntime\\s+(\\S+)\\s*$/m;\n\nconst JSX_ANNOTATION_REGEX = /^\\s*(?:\\*\\s*)?@jsx\\s+(\\S+)\\s*$/m;\nconst JSX_FRAG_ANNOTATION_REGEX = /^\\s*(?:\\*\\s*)?@jsxFrag\\s+(\\S+)\\s*$/m;\n\nconst get = (pass: PluginPass, name: string) =>\n pass.get(`@babel/plugin-react-jsx/${name}`);\nconst set = (pass: PluginPass, name: string, v: any) =>\n pass.set(`@babel/plugin-react-jsx/${name}`, v);\n\nfunction hasProto(node: t.ObjectExpression) {\n return node.properties.some(\n value =>\n t.isObjectProperty(value, { computed: false, shorthand: false }) &&\n (t.isIdentifier(value.key, { name: \"__proto__\" }) ||\n t.isStringLiteral(value.key, { value: \"__proto__\" })),\n );\n}\n\nexport interface Options {\n filter?: (node: t.Node, pass: PluginPass) => boolean;\n importSource?: string;\n pragma?: string;\n pragmaFrag?: string;\n pure?: string;\n runtime?: \"automatic\" | \"classic\";\n throwIfNamespace?: boolean;\n}\n\nexport interface OptionsDevelopment extends Options {\n sourceSelf?: boolean;\n}\n\nexport default function createPlugin<const Development extends boolean>({\n name,\n development,\n}: {\n name: string;\n development: Development;\n}) {\n type Opts = Development extends true ? OptionsDevelopment : Options;\n return declare((_, options: Opts) => {\n const {\n pure: PURE_ANNOTATION,\n\n throwIfNamespace = true,\n\n filter,\n\n runtime: RUNTIME_DEFAULT = \"automatic\",\n\n importSource: IMPORT_SOURCE_DEFAULT = DEFAULT.importSource,\n pragma: PRAGMA_DEFAULT = DEFAULT.pragma,\n pragmaFrag: PRAGMA_FRAG_DEFAULT = DEFAULT.pragmaFrag,\n } = options;\n\n const sourceSelf = development\n ? (options as OptionsDevelopment).sourceSelf\n : undefined;\n\n if (\"useSpread\" in options) {\n throw new Error(\n '@babel/plugin-transform-react-jsx: Since Babel 8, an inline object with spread elements is always used, and the \"useSpread\" option is no longer available. Please remove it from your config.',\n );\n }\n\n if (\"useBuiltIns\" in options) {\n const useBuiltInsFormatted = JSON.stringify(options.useBuiltIns);\n throw new Error(\n `@babel/plugin-transform-react-jsx: Since \"useBuiltIns\" is removed in Babel 8, you can remove it from the config.\n- Babel 8 now transforms JSX spread to object spread. If you need to transpile object spread with\n\\`useBuiltIns: ${useBuiltInsFormatted}\\`, you can use the following config\n{\n \"plugins\": [\n \"@babel/plugin-transform-react-jsx\"\n [\"@babel/plugin-transform-object-rest-spread\", { \"loose\": true, \"useBuiltIns\": ${useBuiltInsFormatted} }]\n ]\n}`,\n );\n }\n\n if (filter != null && RUNTIME_DEFAULT === \"automatic\") {\n throw new Error(\n '@babel/plugin-transform-react-jsx: \"filter\" option can not be used with automatic runtime. If you are upgrading from Babel 7, please specify `runtime: \"classic\"`.',\n );\n }\n\n let commentsNode: t.Node | null = null;\n\n return {\n name,\n inherits: jsx,\n visitor: {\n JSXNamespacedName(path) {\n if (throwIfNamespace) {\n throw path.buildCodeFrameError(\n `Namespace tags are not supported by default. React's JSX doesn't support namespace tags. \\\nYou can set \\`throwIfNamespace: false\\` to bypass this warning.`,\n );\n }\n },\n\n JSXSpreadChild(path) {\n throw path.buildCodeFrameError(\n \"Spread children are not supported in React.\",\n );\n },\n\n Program: {\n enter(path, state) {\n const { file } = state;\n let runtime: string = RUNTIME_DEFAULT;\n\n let source: string = IMPORT_SOURCE_DEFAULT;\n let pragma: string = PRAGMA_DEFAULT;\n let pragmaFrag: string = PRAGMA_FRAG_DEFAULT;\n\n let sourceSet = !!options.importSource;\n let pragmaSet = !!options.pragma;\n let pragmaFragSet = !!options.pragmaFrag;\n\n if (file.ast.comments) {\n for (const comment of file.ast.comments) {\n const sourceMatches = JSX_SOURCE_ANNOTATION_REGEX.exec(\n comment.value,\n );\n if (sourceMatches) {\n source = sourceMatches[1];\n sourceSet = true;\n }\n\n const runtimeMatches = JSX_RUNTIME_ANNOTATION_REGEX.exec(\n comment.value,\n );\n if (runtimeMatches) {\n runtime = runtimeMatches[1];\n }\n\n const jsxMatches = JSX_ANNOTATION_REGEX.exec(comment.value);\n if (jsxMatches) {\n pragma = jsxMatches[1];\n pragmaSet = true;\n }\n const jsxFragMatches = JSX_FRAG_ANNOTATION_REGEX.exec(\n comment.value,\n );\n if (jsxFragMatches) {\n pragmaFrag = jsxFragMatches[1];\n pragmaFragSet = true;\n }\n }\n }\n\n set(state, \"runtime\", runtime);\n if (runtime === \"classic\") {\n if (sourceSet) {\n throw path.buildCodeFrameError(\n `importSource cannot be set when runtime is classic.`,\n );\n }\n\n const createElement = toMemberExpression(pragma);\n const fragment = toMemberExpression(pragmaFrag);\n\n set(state, \"id/createElement\", () => t.cloneNode(createElement));\n set(state, \"id/fragment\", () => t.cloneNode(fragment));\n\n set(state, \"defaultPure\", pragma === DEFAULT.pragma);\n } else if (runtime === \"automatic\") {\n if (pragmaSet || pragmaFragSet) {\n throw path.buildCodeFrameError(\n `pragma and pragmaFrag cannot be set when runtime is automatic.`,\n );\n }\n\n const define = (name: string, id: string) =>\n set(state, name, createImportLazily(state, path, id, source));\n\n define(\"id/jsx\", development ? \"jsxDEV\" : \"jsx\");\n define(\"id/jsxs\", development ? \"jsxDEV\" : \"jsxs\");\n define(\"id/createElement\", \"createElement\");\n define(\"id/fragment\", \"Fragment\");\n\n set(state, \"defaultPure\", source === DEFAULT.importSource);\n } else {\n throw path.buildCodeFrameError(\n `Runtime must be either \"classic\" or \"automatic\".`,\n );\n }\n\n if (development && sourceSelf) {\n // Returns whether the class has specified a superclass.\n function isDerivedClass(classNode: Class) {\n return classNode.superClass !== null;\n }\n\n // Returns whether `this` is allowed at given scope.\n function isThisAllowed(parents: t.TraversalAncestors) {\n let i = parents.length - 1;\n\n // This specifically skips arrow functions as they do not rewrite `this`.\n do {\n const { node } = parents[i];\n if (\n t.isFunctionParent(node) &&\n !t.isArrowFunctionExpression(node)\n ) {\n if (!t.isMethod(node)) {\n // If the closest parent is a regular function, `this` will be rebound, therefore it is fine to use `this`.\n return true;\n }\n // Current node is within a method, so we need to check if the method is a constructor.\n if (node.kind !== \"constructor\") {\n // We are not in a constructor, therefore it is always fine to use `this`.\n return true;\n }\n // Now we are in a constructor. If it is a derived class, we do not reference `this`.\n return !isDerivedClass(parents[i - 2].node as Class);\n }\n if (t.isTSModuleBlock(node)) {\n // If the closest parent is a TS Module block, `this` will not be allowed.\n return false;\n }\n } while (i-- > 0);\n // We are not in a method or function. It is fine to use `this`.\n return true;\n }\n\n let fileNameIdentifier: Identifier | undefined;\n function makeSource(node: t.Node) {\n const location = node.loc;\n if (!location) {\n // the element was generated and doesn't have location information\n return t.buildUndefinedNode();\n }\n\n if (!fileNameIdentifier) {\n fileNameIdentifier =\n path.scope.generateUidIdentifier(\"_jsxFileName\");\n }\n\n return makeTrace(\n t.cloneNode(fileNameIdentifier),\n location.start.line,\n location.start.column,\n );\n }\n\n function makeTrace(\n fileNameIdentifier: Identifier,\n lineNumber?: number,\n column0Based?: number,\n ) {\n const fileLineLiteral =\n lineNumber != null\n ? t.numericLiteral(lineNumber)\n : t.nullLiteral();\n\n const fileColumnLiteral =\n column0Based != null\n ? t.numericLiteral(column0Based + 1)\n : t.nullLiteral();\n\n return template.expression.ast`{\n fileName: ${fileNameIdentifier},\n lineNumber: ${fileLineLiteral},\n columnNumber: ${fileColumnLiteral},\n }`;\n }\n\n t.traverse(path.node, {\n enter(node, parents) {\n if (!t.isJSXOpeningElement(node)) {\n return;\n }\n const attributes = node.attributes;\n if (isThisAllowed(parents)) {\n attributes.push(\n t.jsxAttribute(\n t.jsxIdentifier(\"__self\"),\n t.jsxExpressionContainer(t.thisExpression()),\n ),\n );\n }\n attributes.push(\n t.jsxAttribute(\n t.jsxIdentifier(\"__source\"),\n t.jsxExpressionContainer(makeSource(node)),\n ),\n );\n },\n });\n\n if (fileNameIdentifier) {\n const { filename = \"\" } = state;\n\n path.scope.push({\n id: fileNameIdentifier,\n init: t.stringLiteral(filename),\n });\n }\n }\n },\n },\n\n JSXFragment: {\n exit(path, file) {\n let callExpr;\n if (get(file, \"runtime\") === \"classic\") {\n callExpr = buildCreateElementFragmentCall(path, file)!;\n } else {\n callExpr = buildJSXFragmentCall(path, file);\n }\n\n path.replaceWith(t.inherits(callExpr, path.node));\n },\n },\n\n JSXElement: {\n exit(path, file) {\n let callExpr;\n if (\n get(file, \"runtime\") === \"classic\" ||\n shouldUseCreateElement(path)\n ) {\n callExpr = buildCreateElementCall(path, file);\n } else {\n callExpr = buildJSXElementCall(path, file);\n }\n\n path.replaceWith(t.inherits(callExpr, path.node));\n },\n },\n\n JSXAttribute(path) {\n if (t.isJSXElement(path.node.value)) {\n path.node.value = t.jsxExpressionContainer(path.node.value);\n }\n },\n },\n };\n\n function call(\n pass: PluginPass,\n name: string,\n args: CallExpression[\"arguments\"],\n ) {\n const node = t.callExpression(get(pass, `id/${name}`)(), args);\n if (PURE_ANNOTATION ?? get(pass, \"defaultPure\")) annotateAsPure(node);\n return node;\n }\n\n // We want to use React.createElement, even in the case of\n // jsx, for <div {...props} key={key} /> to distinguish it\n // from <div key={key} {...props} />. This is an intermediary\n // step while we deprecate key spread from props. Afterwards,\n // we will stop using createElement in the transform.\n function shouldUseCreateElement(path: NodePath<JSXElement>) {\n const openingPath = path.get(\"openingElement\");\n const attributes = openingPath.node.attributes;\n\n let seenPropsSpread = false;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes[i];\n if (\n seenPropsSpread &&\n t.isJSXAttribute(attr) &&\n attr.name.name === \"key\"\n ) {\n return true;\n } else if (t.isJSXSpreadAttribute(attr)) {\n seenPropsSpread = true;\n }\n }\n return false;\n }\n\n function convertJSXIdentifier(\n node: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n parent: t.JSXOpeningElement | t.JSXMemberExpression,\n ): t.ThisExpression | t.StringLiteral | t.MemberExpression | t.Identifier {\n if (t.isJSXIdentifier(node)) {\n if (node.name === \"this\" && t.isReferenced(node, parent)) {\n return t.thisExpression();\n } else if (t.isValidIdentifier(node.name, false)) {\n // @ts-expect-error cast AST type to Identifier\n node.type = \"Identifier\";\n return node as unknown as t.Identifier;\n } else {\n return t.stringLiteral(node.name);\n }\n } else if (t.isJSXMemberExpression(node)) {\n return t.memberExpression(\n convertJSXIdentifier(node.object, node),\n convertJSXIdentifier(node.property, node),\n );\n } else if (t.isJSXNamespacedName(node)) {\n /**\n * If the flag \"throwIfNamespace\" is false\n * print XMLNamespace like string literal\n */\n return t.stringLiteral(`${node.namespace.name}:${node.name.name}`);\n }\n\n // todo: this branch should be unreachable\n return node;\n }\n\n function convertAttributeValue(\n node: t.JSXAttribute[\"value\"] | t.BooleanLiteral,\n ) {\n if (t.isJSXExpressionContainer(node)) {\n return node.expression;\n } else {\n return node;\n }\n }\n\n function processComments(\n attribs: NodePath<JSXAttribute | JSXSpreadAttribute>[],\n ) {\n commentsNode = null;\n if (attribs.length && attribs[0].isJSXSpreadAttribute()) {\n const node = attribs[0].node.argument;\n if (node.leadingComments || node.trailingComments) {\n commentsNode = t.cloneNode(node);\n }\n }\n }\n\n function accumulateAttribute(\n array: ObjectExpression[\"properties\"],\n attribute: NodePath<JSXAttribute | JSXSpreadAttribute>,\n ) {\n if (t.isJSXSpreadAttribute(attribute.node)) {\n const arg = attribute.node.argument;\n // Collect properties into props array if spreading object expression\n if (t.isObjectExpression(arg) && !hasProto(arg)) {\n array.push(...arg.properties);\n } else {\n array.push(t.spreadElement(arg));\n }\n return array;\n }\n\n const value = convertAttributeValue(\n attribute.node.name.name !== \"key\"\n ? attribute.node.value || t.booleanLiteral(true)\n : attribute.node.value,\n );\n\n if (attribute.node.name.name === \"key\" && value === null) {\n throw attribute.buildCodeFrameError(\n 'Please provide an explicit key value. Using \"key\" as a shorthand for \"key={true}\" is not allowed.',\n );\n }\n\n if (\n t.isStringLiteral(value) &&\n !t.isJSXExpressionContainer(attribute.node.value)\n ) {\n value.value = value.value.replace(/\\n\\s+/g, \" \");\n\n // \"raw\" JSXText should not be used from a StringLiteral because it needs to be escaped.\n delete value.extra?.raw;\n }\n\n if (t.isJSXNamespacedName(attribute.node.name)) {\n // @ts-expect-error mutating AST\n attribute.node.name = t.stringLiteral(\n attribute.node.name.namespace.name +\n \":\" +\n attribute.node.name.name.name,\n );\n } else if (t.isValidIdentifier(attribute.node.name.name, false)) {\n // @ts-expect-error mutating AST\n attribute.node.name.type = \"Identifier\";\n } else {\n // @ts-expect-error mutating AST\n attribute.node.name = t.stringLiteral(attribute.node.name.name);\n }\n\n array.push(\n t.inherits(\n t.objectProperty(\n // @ts-expect-error The attribute.node.name is an Identifier now\n attribute.node.name,\n value,\n ),\n attribute.node,\n ),\n );\n return array;\n }\n\n function buildChildrenProperty(children: Expression[]) {\n let childrenNode;\n if (children.length === 1) {\n childrenNode = children[0];\n } else if (children.length > 1) {\n childrenNode = t.arrayExpression(children);\n } else {\n return undefined;\n }\n\n return t.objectProperty(t.identifier(\"children\"), childrenNode);\n }\n\n // Builds JSX into:\n // Production: React.jsx(type, arguments, key)\n // Development: React.jsxDEV(type, arguments, key, isStaticChildren, source, self)\n function buildJSXElementCall(path: NodePath<JSXElement>, file: PluginPass) {\n const openingPath = path.get(\"openingElement\");\n const args: t.Expression[] = [getTag(openingPath)];\n\n const attribsArray = [];\n const extracted = Object.create(null);\n\n // for React.jsx, key, __source (dev), and __self (dev) is passed in as\n // a separate argument rather than in the args object. We go through the\n // props and filter out these three keywords so we can pass them in\n // as separate arguments later\n for (const attr of openingPath.get(\"attributes\")) {\n if (attr.isJSXAttribute() && t.isJSXIdentifier(attr.node.name)) {\n const { name } = attr.node.name;\n switch (name) {\n case \"__source\":\n case \"__self\":\n if (extracted[name]) throw sourceSelfError(path, name);\n /* falls through */\n case \"key\": {\n const keyValue = convertAttributeValue(attr.node.value);\n if (keyValue === null) {\n throw attr.buildCodeFrameError(\n 'Please provide an explicit key value. Using \"key\" as a shorthand for \"key={true}\" is not allowed.',\n );\n }\n\n extracted[name] = keyValue;\n break;\n }\n default:\n attribsArray.push(attr);\n }\n } else {\n attribsArray.push(attr);\n }\n }\n\n const children = t.react.buildChildren(path.node);\n\n let attribs: t.ObjectExpression;\n\n if (attribsArray.length || children.length) {\n attribs = buildJSXOpeningElementAttributes(\n attribsArray,\n //@ts-expect-error The children here contains JSXSpreadChild,\n // which will be thrown later\n children,\n );\n if (commentsNode) {\n t.inheritsComments(attribs, commentsNode);\n }\n } else {\n // attributes should never be null\n attribs = t.objectExpression([]);\n }\n\n args.push(attribs);\n\n if (development) {\n // isStaticChildren, __source, and __self are only used in development\n // automatically include __source and __self in this plugin\n // so we can eliminate the need for separate Babel plugins in Babel 8\n args.push(\n extracted.key ?? t.buildUndefinedNode(),\n t.booleanLiteral(children.length > 1),\n );\n if (sourceSelf) {\n if (extracted.__source) {\n args.push(extracted.__source);\n if (extracted.__self) args.push(extracted.__self);\n } else if (extracted.__self) {\n args.push(t.buildUndefinedNode(), extracted.__self);\n }\n }\n } else if (extracted.key !== undefined) {\n args.push(extracted.key);\n }\n\n return call(file, children.length > 1 ? \"jsxs\" : \"jsx\", args);\n }\n\n // Builds props for React.jsx. This function adds children into the props\n // and ensures that props is always an object\n function buildJSXOpeningElementAttributes(\n attribs: NodePath<JSXAttribute | JSXSpreadAttribute>[],\n children: Expression[],\n ) {\n processComments(attribs);\n const props = attribs.reduce(accumulateAttribute, []);\n\n // In React.jsx, children is no longer a separate argument, but passed in\n // through the argument object\n if (children?.length > 0) {\n props.push(buildChildrenProperty(children)!);\n }\n\n return t.objectExpression(props);\n }\n\n // Builds JSX Fragment <></> into\n // Production: React.jsx(type, arguments)\n // Development: React.jsxDEV(type, { children })\n function buildJSXFragmentCall(\n path: NodePath<JSXFragment>,\n file: PluginPass,\n ) {\n const args = [get(file, \"id/fragment\")()];\n\n const children = t.react.buildChildren(path.node);\n\n args.push(\n t.objectExpression(\n children.length > 0\n ? [\n buildChildrenProperty(\n //@ts-expect-error The children here contains JSXSpreadChild,\n // which will be thrown later\n children,\n )!,\n ]\n : [],\n ),\n );\n\n if (development) {\n args.push(\n t.buildUndefinedNode(),\n t.booleanLiteral(children.length > 1),\n );\n }\n\n return call(file, children.length > 1 ? \"jsxs\" : \"jsx\", args);\n }\n\n // Builds JSX Fragment <></> into\n // React.createElement(React.Fragment, null, ...children)\n function buildCreateElementFragmentCall(\n path: NodePath<JSXFragment>,\n file: PluginPass,\n ) {\n if (filter && !filter(path.node, file)) return;\n\n return call(file, \"createElement\", [\n get(file, \"id/fragment\")(),\n t.nullLiteral(),\n ...t.react.buildChildren(path.node),\n ]);\n }\n\n // Builds JSX into:\n // Production: React.createElement(type, arguments, children)\n // Development: React.createElement(type, arguments, children, source, self)\n function buildCreateElementCall(\n path: NodePath<JSXElement>,\n file: PluginPass,\n ) {\n const openingPath = path.get(\"openingElement\");\n\n return call(file, \"createElement\", [\n getTag(openingPath),\n buildCreateElementOpeningElementAttributes(\n file,\n path,\n openingPath.get(\"attributes\"),\n ),\n // @ts-expect-error JSXSpreadChild has been transformed in convertAttributeValue\n ...t.react.buildChildren(path.node),\n ]);\n }\n\n function getTag(openingPath: NodePath<JSXOpeningElement>) {\n const tagExpr = convertJSXIdentifier(\n openingPath.node.name,\n openingPath.node,\n );\n\n let tagName: string | undefined;\n if (t.isIdentifier(tagExpr)) {\n tagName = tagExpr.name;\n } else if (t.isStringLiteral(tagExpr)) {\n tagName = tagExpr.value;\n }\n\n if (t.react.isCompatTag(tagName)) {\n return t.stringLiteral(tagName!);\n } else {\n return tagExpr;\n }\n }\n\n /**\n * The logic for this is quite terse. It's because we need to\n * support spread elements. We loop over all attributes,\n * breaking on spreads, we then push a new object containing\n * all prior attributes to an array for later processing.\n */\n function buildCreateElementOpeningElementAttributes(\n file: PluginPass,\n path: NodePath<JSXElement>,\n attribs: NodePath<JSXAttribute | JSXSpreadAttribute>[],\n ) {\n const runtime = get(file, \"runtime\");\n\n const props: ObjectExpression[\"properties\"] = [];\n const found = Object.create(null);\n\n processComments(attribs);\n for (const attr of attribs) {\n const { node } = attr;\n const name =\n t.isJSXAttribute(node) &&\n t.isJSXIdentifier(node.name) &&\n node.name.name;\n\n if (\n runtime === \"automatic\" &&\n (name === \"__source\" || name === \"__self\")\n ) {\n if (found[name]) throw sourceSelfError(path, name);\n found[name] = true;\n }\n\n accumulateAttribute(props, attr);\n }\n\n const ret =\n props.length === 1 &&\n t.isSpreadElement(props[0]) &&\n // If an object expression is spread element's argument\n // it is very likely to contain __proto__ and we should stop\n // optimizing spread element\n !t.isObjectExpression(props[0].argument)\n ? props[0].argument\n : props.length > 0\n ? t.objectExpression(props)\n : t.nullLiteral();\n if (commentsNode) {\n t.inheritsComments(ret, commentsNode);\n }\n return ret;\n }\n });\n\n function getSource(source: string, importName: string) {\n switch (importName) {\n case \"Fragment\":\n return `${source}/${development ? \"jsx-dev-runtime\" : \"jsx-runtime\"}`;\n case \"jsxDEV\":\n return `${source}/jsx-dev-runtime`;\n case \"jsx\":\n case \"jsxs\":\n return `${source}/jsx-runtime`;\n case \"createElement\":\n return source;\n }\n }\n\n function createImportLazily(\n pass: PluginPass,\n path: NodePath<Program>,\n importName: string,\n source: string,\n ): () => Identifier | MemberExpression {\n return () => {\n const actualSource = getSource(source, importName)!;\n if (isModule(path)) {\n let reference = get(pass, `imports/${importName}`);\n if (reference) return t.cloneNode(reference);\n\n reference = addNamed(path, importName, actualSource, {\n importedInterop: \"uncompiled\",\n importPosition: \"after\",\n });\n set(pass, `imports/${importName}`, reference);\n\n return reference;\n } else {\n let reference = get(pass, `requires/${actualSource}`);\n if (reference) {\n reference = t.cloneNode(reference);\n } else {\n reference = addNamespace(path, actualSource, {\n importedInterop: \"uncompiled\",\n });\n set(pass, `requires/${actualSource}`, reference);\n }\n\n return t.memberExpression(reference, t.identifier(importName));\n }\n };\n }\n}\n\nfunction toMemberExpression(id: string): Identifier | MemberExpression {\n return (\n id\n .split(\".\")\n .map(name => t.identifier(name))\n // @ts-expect-error - The Array#reduce does not have a signature\n // where the type of initial value differs from callback return type\n .reduce((object, property) => t.memberExpression(object, property))\n );\n}\n\nfunction sourceSelfError(path: NodePath, name: string) {\n const pluginName = `transform-react-jsx-${name.slice(2)}`;\n\n return path.buildCodeFrameError(\n `Duplicate ${name} prop found. You are most likely using the deprecated ${pluginName} Babel plugin. Both __source and __self are automatically set when using the automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config.`,\n );\n}\n"],"names":["DEFAULT","importSource","runtime","pragma","pragmaFrag","JSX_SOURCE_ANNOTATION_REGEX","JSX_RUNTIME_ANNOTATION_REGEX","JSX_ANNOTATION_REGEX","JSX_FRAG_ANNOTATION_REGEX","get","pass","name","set","v","hasProto","node","properties","some","value","t","isObjectProperty","computed","shorthand","isIdentifier","key","isStringLiteral","createPlugin","development","declare","_","options","pure","PURE_ANNOTATION","throwIfNamespace","filter","RUNTIME_DEFAULT","IMPORT_SOURCE_DEFAULT","PRAGMA_DEFAULT","PRAGMA_FRAG_DEFAULT","sourceSelf","undefined","Error","useBuiltInsFormatted","JSON","stringify","useBuiltIns","commentsNode","inherits","jsx","visitor","JSXNamespacedName","path","buildCodeFrameError","JSXSpreadChild","Program","enter","state","file","source","sourceSet","pragmaSet","pragmaFragSet","ast","comments","comment","sourceMatches","exec","runtimeMatches","jsxMatches","jsxFragMatches","createElement","toMemberExpression","fragment","cloneNode","define","id","createImportLazily","isDerivedClass","classNode","superClass","isThisAllowed","parents","i","length","isFunctionParent","isArrowFunctionExpression","isMethod","kind","isTSModuleBlock","fileNameIdentifier","makeSource","location","loc","buildUndefinedNode","scope","generateUidIdentifier","makeTrace","start","line","column","lineNumber","column0Based","fileLineLiteral","numericLiteral","nullLiteral","fileColumnLiteral","template","expression","traverse","isJSXOpeningElement","attributes","push","jsxAttribute","jsxIdentifier","jsxExpressionContainer","thisExpression","filename","init","stringLiteral","JSXFragment","exit","callExpr","buildCreateElementFragmentCall","buildJSXFragmentCall","replaceWith","JSXElement","shouldUseCreateElement","buildCreateElementCall","buildJSXElementCall","JSXAttribute","isJSXElement","call","args","callExpression","annotateAsPure","openingPath","seenPropsSpread","attr","isJSXAttribute","isJSXSpreadAttribute","convertJSXIdentifier","parent","isJSXIdentifier","isReferenced","isValidIdentifier","type","isJSXMemberExpression","memberExpression","object","property","isJSXNamespacedName","namespace","convertAttributeValue","isJSXExpressionContainer","processComments","attribs","argument","leadingComments","trailingComments","accumulateAttribute","array","attribute","arg","isObjectExpression","spreadElement","booleanLiteral","replace","extra","raw","objectProperty","buildChildrenProperty","children","childrenNode","arrayExpression","identifier","getTag","attribsArray","extracted","Object","create","sourceSelfError","keyValue","react","buildChildren","buildJSXOpeningElementAttributes","inheritsComments","objectExpression","__source","__self","props","reduce","buildCreateElementOpeningElementAttributes","tagExpr","tagName","isCompatTag","found","ret","isSpreadElement","getSource","importName","actualSource","isModule","reference","addNamed","importedInterop","importPosition","addNamespace","split","map","pluginName","slice"],"mappings":"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"} | ||
| {"version":3,"file":"create-plugin-shared.js","sources":["../src/create-plugin.ts"],"sourcesContent":["import jsx from \"@babel/plugin-syntax-jsx\";\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport { template, types as t } from \"@babel/core\";\nimport type { PluginPass, NodePath } from \"@babel/core\";\nimport { addNamed, addNamespace, isModule } from \"@babel/helper-module-imports\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport type {\n CallExpression,\n Class,\n Expression,\n Identifier,\n JSXAttribute,\n JSXElement,\n JSXFragment,\n JSXOpeningElement,\n JSXSpreadAttribute,\n MemberExpression,\n ObjectExpression,\n Program,\n} from \"@babel/types\";\n\nconst DEFAULT = {\n importSource: \"react\",\n runtime: \"automatic\",\n pragma: \"React.createElement\",\n pragmaFrag: \"React.Fragment\",\n};\n\nconst JSX_SOURCE_ANNOTATION_REGEX =\n /^\\s*(?:\\*\\s*)?@jsxImportSource\\s+(\\S+)\\s*$/m;\nconst JSX_RUNTIME_ANNOTATION_REGEX = /^\\s*(?:\\*\\s*)?@jsxRuntime\\s+(\\S+)\\s*$/m;\n\nconst JSX_ANNOTATION_REGEX = /^\\s*(?:\\*\\s*)?@jsx\\s+(\\S+)\\s*$/m;\nconst JSX_FRAG_ANNOTATION_REGEX = /^\\s*(?:\\*\\s*)?@jsxFrag\\s+(\\S+)\\s*$/m;\n\nconst get = (pass: PluginPass, name: string) =>\n pass.get(`@babel/plugin-react-jsx/${name}`);\nconst set = (pass: PluginPass, name: string, v: any) =>\n pass.set(`@babel/plugin-react-jsx/${name}`, v);\n\nfunction hasProto(node: t.ObjectExpression) {\n return node.properties.some(\n value =>\n t.isObjectProperty(value, { computed: false, shorthand: false }) &&\n (t.isIdentifier(value.key, { name: \"__proto__\" }) ||\n t.isStringLiteral(value.key, { value: \"__proto__\" })),\n );\n}\n\nexport interface Options {\n filter?: (node: t.Node, pass: PluginPass) => boolean;\n importSource?: string;\n pragma?: string;\n pragmaFrag?: string;\n pure?: string;\n runtime?: \"automatic\" | \"classic\";\n throwIfNamespace?: boolean;\n}\n\nexport interface OptionsDevelopment extends Options {\n sourceSelf?: boolean;\n}\n\nexport default function createPlugin<const Development extends boolean>({\n name,\n development,\n}: {\n name: string;\n development: Development;\n}) {\n type Opts = Development extends true ? OptionsDevelopment : Options;\n return declare((_, options: Opts) => {\n const {\n pure: PURE_ANNOTATION,\n\n throwIfNamespace = true,\n\n filter,\n\n runtime: RUNTIME_DEFAULT = \"automatic\",\n\n importSource: IMPORT_SOURCE_DEFAULT = DEFAULT.importSource,\n pragma: PRAGMA_DEFAULT = DEFAULT.pragma,\n pragmaFrag: PRAGMA_FRAG_DEFAULT = DEFAULT.pragmaFrag,\n } = options;\n\n const sourceSelf = development\n ? (options as OptionsDevelopment).sourceSelf\n : undefined;\n\n if (\"useSpread\" in options) {\n throw new Error(\n '@babel/plugin-transform-react-jsx: Since Babel 8, an inline object with spread elements is always used, and the \"useSpread\" option is no longer available. Please remove it from your config.',\n );\n }\n\n if (\"useBuiltIns\" in options) {\n const useBuiltInsFormatted = JSON.stringify(options.useBuiltIns);\n throw new Error(\n `@babel/plugin-transform-react-jsx: Since \"useBuiltIns\" is removed in Babel 8, you can remove it from the config.\n- Babel 8 now transforms JSX spread to object spread. If you need to transpile object spread with\n\\`useBuiltIns: ${useBuiltInsFormatted}\\`, you can use the following config\n{\n \"plugins\": [\n \"@babel/plugin-transform-react-jsx\"\n [\"@babel/plugin-transform-object-rest-spread\", { \"loose\": true, \"useBuiltIns\": ${useBuiltInsFormatted} }]\n ]\n}`,\n );\n }\n\n if (filter != null && RUNTIME_DEFAULT === \"automatic\") {\n throw new Error(\n '@babel/plugin-transform-react-jsx: \"filter\" option can not be used with automatic runtime. If you are upgrading from Babel 7, please specify `runtime: \"classic\"`.',\n );\n }\n\n let commentsNode: t.Node | null = null;\n\n return {\n name,\n inherits: jsx,\n visitor: {\n JSXNamespacedName(path) {\n if (throwIfNamespace) {\n throw path.buildCodeFrameError(\n `Namespace tags are not supported by default. React's JSX doesn't support namespace tags. \\\nYou can set \\`throwIfNamespace: false\\` to bypass this warning.`,\n );\n }\n },\n\n JSXSpreadChild(path) {\n throw path.buildCodeFrameError(\n \"Spread children are not supported in React.\",\n );\n },\n\n Program: {\n enter(path, state) {\n const { file } = state;\n let runtime: string = RUNTIME_DEFAULT;\n\n let source: string = IMPORT_SOURCE_DEFAULT;\n let pragma: string = PRAGMA_DEFAULT;\n let pragmaFrag: string = PRAGMA_FRAG_DEFAULT;\n\n let sourceSet = !!options.importSource;\n let pragmaSet = !!options.pragma;\n let pragmaFragSet = !!options.pragmaFrag;\n\n if (file.ast.comments) {\n for (const comment of file.ast.comments) {\n const sourceMatches = JSX_SOURCE_ANNOTATION_REGEX.exec(\n comment.value,\n );\n if (sourceMatches) {\n source = sourceMatches[1];\n sourceSet = true;\n }\n\n const runtimeMatches = JSX_RUNTIME_ANNOTATION_REGEX.exec(\n comment.value,\n );\n if (runtimeMatches) {\n runtime = runtimeMatches[1];\n }\n\n const jsxMatches = JSX_ANNOTATION_REGEX.exec(comment.value);\n if (jsxMatches) {\n pragma = jsxMatches[1];\n pragmaSet = true;\n }\n const jsxFragMatches = JSX_FRAG_ANNOTATION_REGEX.exec(\n comment.value,\n );\n if (jsxFragMatches) {\n pragmaFrag = jsxFragMatches[1];\n pragmaFragSet = true;\n }\n }\n }\n\n set(state, \"runtime\", runtime);\n if (runtime === \"classic\") {\n if (sourceSet) {\n throw path.buildCodeFrameError(\n `importSource cannot be set when runtime is classic.`,\n );\n }\n\n const createElement = toMemberExpression(pragma);\n const fragment = toMemberExpression(pragmaFrag);\n\n set(state, \"id/createElement\", () => t.cloneNode(createElement));\n set(state, \"id/fragment\", () => t.cloneNode(fragment));\n\n set(state, \"defaultPure\", pragma === DEFAULT.pragma);\n } else if (runtime === \"automatic\") {\n if (pragmaSet || pragmaFragSet) {\n throw path.buildCodeFrameError(\n `pragma and pragmaFrag cannot be set when runtime is automatic.`,\n );\n }\n\n const define = (name: string, id: string) =>\n set(state, name, createImportLazily(state, path, id, source));\n\n define(\"id/jsx\", development ? \"jsxDEV\" : \"jsx\");\n define(\"id/jsxs\", development ? \"jsxDEV\" : \"jsxs\");\n define(\"id/createElement\", \"createElement\");\n define(\"id/fragment\", \"Fragment\");\n\n set(state, \"defaultPure\", source === DEFAULT.importSource);\n } else {\n throw path.buildCodeFrameError(\n `Runtime must be either \"classic\" or \"automatic\".`,\n );\n }\n\n if (development && sourceSelf) {\n // Returns whether the class has specified a superclass.\n function isDerivedClass(classNode: Class) {\n return classNode.superClass !== null;\n }\n\n // Returns whether `this` is allowed at given scope.\n function isThisAllowed(parents: t.TraversalAncestors) {\n let i = parents.length - 1;\n\n // This specifically skips arrow functions as they do not rewrite `this`.\n do {\n const { node } = parents[i];\n if (\n t.isFunctionParent(node) &&\n !t.isArrowFunctionExpression(node)\n ) {\n if (!t.isMethod(node)) {\n // If the closest parent is a regular function, `this` will be rebound, therefore it is fine to use `this`.\n return true;\n }\n // Current node is within a method, so we need to check if the method is a constructor.\n if (node.kind !== \"constructor\") {\n // We are not in a constructor, therefore it is always fine to use `this`.\n return true;\n }\n // Now we are in a constructor. If it is a derived class, we do not reference `this`.\n return !isDerivedClass(parents[i - 2].node as Class);\n }\n if (t.isTSModuleBlock(node)) {\n // If the closest parent is a TS Module block, `this` will not be allowed.\n return false;\n }\n } while (i-- > 0);\n // We are not in a method or function. It is fine to use `this`.\n return true;\n }\n\n let fileNameIdentifier: Identifier | undefined;\n function makeSource(node: t.Node) {\n const location = node.loc;\n if (!location) {\n // the element was generated and doesn't have location information\n return t.buildUndefinedNode();\n }\n\n if (!fileNameIdentifier) {\n fileNameIdentifier =\n path.scope.generateUidIdentifier(\"_jsxFileName\");\n }\n\n return makeTrace(\n t.cloneNode(fileNameIdentifier),\n location.start.line,\n location.start.column,\n );\n }\n\n function makeTrace(\n fileNameIdentifier: Identifier,\n lineNumber?: number,\n column0Based?: number,\n ) {\n const fileLineLiteral =\n lineNumber != null\n ? t.numericLiteral(lineNumber)\n : t.nullLiteral();\n\n const fileColumnLiteral =\n column0Based != null\n ? t.numericLiteral(column0Based + 1)\n : t.nullLiteral();\n\n return template.expression.ast`{\n fileName: ${fileNameIdentifier},\n lineNumber: ${fileLineLiteral},\n columnNumber: ${fileColumnLiteral},\n }`;\n }\n\n t.traverse(path.node, {\n enter(node, parents) {\n if (!t.isJSXOpeningElement(node)) {\n return;\n }\n const attributes = node.attributes;\n if (isThisAllowed(parents)) {\n attributes.push(\n t.jsxAttribute(\n t.jsxIdentifier(\"__self\"),\n t.jsxExpressionContainer(t.thisExpression()),\n ),\n );\n }\n attributes.push(\n t.jsxAttribute(\n t.jsxIdentifier(\"__source\"),\n t.jsxExpressionContainer(makeSource(node)),\n ),\n );\n },\n });\n\n if (fileNameIdentifier) {\n const { filename = \"\" } = state;\n\n path.scope.push({\n id: fileNameIdentifier,\n init: t.stringLiteral(filename),\n });\n }\n }\n },\n },\n\n JSXFragment: {\n exit(path, file) {\n let callExpr;\n if (get(file, \"runtime\") === \"classic\") {\n callExpr = buildCreateElementFragmentCall(path, file)!;\n } else {\n callExpr = buildJSXFragmentCall(path, file);\n }\n\n path.replaceWith(t.inherits(callExpr, path.node));\n },\n },\n\n JSXElement: {\n exit(path, file) {\n let callExpr;\n if (\n get(file, \"runtime\") === \"classic\" ||\n shouldUseCreateElement(path)\n ) {\n callExpr = buildCreateElementCall(path, file);\n } else {\n callExpr = buildJSXElementCall(path, file);\n }\n\n path.replaceWith(t.inherits(callExpr, path.node));\n },\n },\n\n JSXAttribute(path) {\n if (t.isJSXElement(path.node.value)) {\n path.node.value = t.jsxExpressionContainer(path.node.value);\n }\n },\n },\n };\n\n function call(\n pass: PluginPass,\n name: string,\n args: CallExpression[\"arguments\"],\n ) {\n const node = t.callExpression(get(pass, `id/${name}`)(), args);\n if (PURE_ANNOTATION ?? get(pass, \"defaultPure\")) annotateAsPure(node);\n return node;\n }\n\n // We want to use React.createElement, even in the case of\n // jsx, for <div {...props} key={key} /> to distinguish it\n // from <div key={key} {...props} />. This is an intermediary\n // step while we deprecate key spread from props. Afterwards,\n // we will stop using createElement in the transform.\n function shouldUseCreateElement(path: NodePath<JSXElement>) {\n const openingPath = path.get(\"openingElement\");\n const attributes = openingPath.node.attributes;\n\n let seenPropsSpread = false;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes[i];\n if (\n seenPropsSpread &&\n t.isJSXAttribute(attr) &&\n attr.name.name === \"key\"\n ) {\n return true;\n } else if (t.isJSXSpreadAttribute(attr)) {\n seenPropsSpread = true;\n }\n }\n return false;\n }\n\n function convertJSXIdentifier(\n node: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n parent: t.JSXOpeningElement | t.JSXMemberExpression,\n ): t.ThisExpression | t.StringLiteral | t.MemberExpression | t.Identifier {\n if (t.isJSXIdentifier(node)) {\n if (node.name === \"this\" && t.isReferenced(node, parent)) {\n return t.thisExpression();\n } else if (t.isValidIdentifier(node.name, false)) {\n // @ts-expect-error cast AST type to Identifier\n node.type = \"Identifier\";\n return node as unknown as t.Identifier;\n } else {\n return t.stringLiteral(node.name);\n }\n } else if (t.isJSXMemberExpression(node)) {\n return t.memberExpression(\n convertJSXIdentifier(node.object, node),\n convertJSXIdentifier(node.property, node),\n );\n } else if (t.isJSXNamespacedName(node)) {\n /**\n * If the flag \"throwIfNamespace\" is false\n * print XMLNamespace like string literal\n */\n return t.stringLiteral(`${node.namespace.name}:${node.name.name}`);\n }\n\n // todo: this branch should be unreachable\n return node;\n }\n\n function convertAttributeValue(\n node: t.JSXAttribute[\"value\"] | t.BooleanLiteral,\n ) {\n if (t.isJSXExpressionContainer(node)) {\n return node.expression;\n } else {\n return node;\n }\n }\n\n function processComments(\n attribs: NodePath<JSXAttribute | JSXSpreadAttribute>[],\n ) {\n commentsNode = null;\n if (attribs.length && attribs[0].isJSXSpreadAttribute()) {\n const node = attribs[0].node.argument;\n if (node.leadingComments || node.trailingComments) {\n commentsNode = t.cloneNode(node);\n }\n }\n }\n\n function accumulateAttribute(\n array: ObjectExpression[\"properties\"],\n attribute: NodePath<JSXAttribute | JSXSpreadAttribute>,\n ) {\n if (t.isJSXSpreadAttribute(attribute.node)) {\n const arg = attribute.node.argument;\n // Collect properties into props array if spreading object expression\n if (t.isObjectExpression(arg) && !hasProto(arg)) {\n array.push(...arg.properties);\n } else {\n array.push(t.spreadElement(arg));\n }\n return array;\n }\n\n const value = convertAttributeValue(\n attribute.node.name.name !== \"key\"\n ? attribute.node.value || t.booleanLiteral(true)\n : attribute.node.value,\n );\n\n if (attribute.node.name.name === \"key\" && value === null) {\n throw attribute.buildCodeFrameError(\n 'Please provide an explicit key value. Using \"key\" as a shorthand for \"key={true}\" is not allowed.',\n );\n }\n\n if (\n t.isStringLiteral(value) &&\n !t.isJSXExpressionContainer(attribute.node.value)\n ) {\n value.value = value.value.replace(/\\n\\s+/g, \" \");\n\n // \"raw\" JSXText should not be used from a StringLiteral because it needs to be escaped.\n delete value.extra?.raw;\n }\n\n if (t.isJSXNamespacedName(attribute.node.name)) {\n // @ts-expect-error mutating AST\n attribute.node.name = t.stringLiteral(\n attribute.node.name.namespace.name +\n \":\" +\n attribute.node.name.name.name,\n );\n } else if (t.isValidIdentifier(attribute.node.name.name, false)) {\n // @ts-expect-error mutating AST\n attribute.node.name.type = \"Identifier\";\n } else {\n // @ts-expect-error mutating AST\n attribute.node.name = t.stringLiteral(attribute.node.name.name);\n }\n\n array.push(\n t.inherits(\n t.objectProperty(\n // @ts-expect-error The attribute.node.name is an Identifier now\n attribute.node.name,\n value,\n ),\n attribute.node,\n ),\n );\n return array;\n }\n\n function buildChildrenProperty(children: Expression[]) {\n let childrenNode;\n if (children.length === 1) {\n childrenNode = children[0];\n } else if (children.length > 1) {\n childrenNode = t.arrayExpression(children);\n } else {\n return undefined;\n }\n\n return t.objectProperty(t.identifier(\"children\"), childrenNode);\n }\n\n // Builds JSX into:\n // Production: React.jsx(type, arguments, key)\n // Development: React.jsxDEV(type, arguments, key, isStaticChildren, source, self)\n function buildJSXElementCall(path: NodePath<JSXElement>, file: PluginPass) {\n const openingPath = path.get(\"openingElement\");\n const args: t.Expression[] = [getTag(openingPath)];\n\n const attribsArray = [];\n const extracted = Object.create(null);\n\n // for React.jsx, key, __source (dev), and __self (dev) is passed in as\n // a separate argument rather than in the args object. We go through the\n // props and filter out these three keywords so we can pass them in\n // as separate arguments later\n for (const attr of openingPath.get(\"attributes\")) {\n if (attr.isJSXAttribute() && t.isJSXIdentifier(attr.node.name)) {\n const { name } = attr.node.name;\n switch (name) {\n case \"__source\":\n case \"__self\":\n if (extracted[name]) throw sourceSelfError(path, name);\n /* falls through */\n case \"key\": {\n const keyValue = convertAttributeValue(attr.node.value);\n if (keyValue === null) {\n throw attr.buildCodeFrameError(\n 'Please provide an explicit key value. Using \"key\" as a shorthand for \"key={true}\" is not allowed.',\n );\n }\n\n extracted[name] = keyValue;\n break;\n }\n default:\n attribsArray.push(attr);\n }\n } else {\n attribsArray.push(attr);\n }\n }\n\n const children = t.react.buildChildren(path.node);\n\n let attribs: t.ObjectExpression;\n\n if (attribsArray.length || children.length) {\n attribs = buildJSXOpeningElementAttributes(\n attribsArray,\n //@ts-expect-error The children here contains JSXSpreadChild,\n // which will be thrown later\n children,\n );\n if (commentsNode) {\n t.inheritsComments(attribs, commentsNode);\n }\n } else {\n // attributes should never be null\n attribs = t.objectExpression([]);\n }\n\n args.push(attribs);\n\n if (development) {\n // isStaticChildren, __source, and __self are only used in development\n // automatically include __source and __self in this plugin\n // so we can eliminate the need for separate Babel plugins in Babel 8\n args.push(\n extracted.key ?? t.buildUndefinedNode(),\n t.booleanLiteral(children.length > 1),\n );\n if (sourceSelf) {\n if (extracted.__source) {\n args.push(extracted.__source);\n if (extracted.__self) args.push(extracted.__self);\n } else if (extracted.__self) {\n args.push(t.buildUndefinedNode(), extracted.__self);\n }\n }\n } else if (extracted.key !== undefined) {\n args.push(extracted.key);\n }\n\n return call(file, children.length > 1 ? \"jsxs\" : \"jsx\", args);\n }\n\n // Builds props for React.jsx. This function adds children into the props\n // and ensures that props is always an object\n function buildJSXOpeningElementAttributes(\n attribs: NodePath<JSXAttribute | JSXSpreadAttribute>[],\n children: Expression[],\n ) {\n processComments(attribs);\n const props = attribs.reduce(accumulateAttribute, []);\n\n // In React.jsx, children is no longer a separate argument, but passed in\n // through the argument object\n if (children?.length > 0) {\n props.push(buildChildrenProperty(children)!);\n }\n\n return t.objectExpression(props);\n }\n\n // Builds JSX Fragment <></> into\n // Production: React.jsx(type, arguments)\n // Development: React.jsxDEV(type, { children })\n function buildJSXFragmentCall(\n path: NodePath<JSXFragment>,\n file: PluginPass,\n ) {\n const args = [get(file, \"id/fragment\")()];\n\n const children = t.react.buildChildren(path.node);\n\n args.push(\n t.objectExpression(\n children.length > 0\n ? [\n buildChildrenProperty(\n //@ts-expect-error The children here contains JSXSpreadChild,\n // which will be thrown later\n children,\n )!,\n ]\n : [],\n ),\n );\n\n if (development) {\n args.push(\n t.buildUndefinedNode(),\n t.booleanLiteral(children.length > 1),\n );\n }\n\n return call(file, children.length > 1 ? \"jsxs\" : \"jsx\", args);\n }\n\n // Builds JSX Fragment <></> into\n // React.createElement(React.Fragment, null, ...children)\n function buildCreateElementFragmentCall(\n path: NodePath<JSXFragment>,\n file: PluginPass,\n ) {\n if (filter && !filter(path.node, file)) return;\n\n return call(file, \"createElement\", [\n get(file, \"id/fragment\")(),\n t.nullLiteral(),\n ...t.react.buildChildren(path.node),\n ]);\n }\n\n // Builds JSX into:\n // Production: React.createElement(type, arguments, children)\n // Development: React.createElement(type, arguments, children, source, self)\n function buildCreateElementCall(\n path: NodePath<JSXElement>,\n file: PluginPass,\n ) {\n const openingPath = path.get(\"openingElement\");\n\n return call(file, \"createElement\", [\n getTag(openingPath),\n buildCreateElementOpeningElementAttributes(\n file,\n path,\n openingPath.get(\"attributes\"),\n ),\n // @ts-expect-error JSXSpreadChild has been transformed in convertAttributeValue\n ...t.react.buildChildren(path.node),\n ]);\n }\n\n function getTag(openingPath: NodePath<JSXOpeningElement>) {\n const tagExpr = convertJSXIdentifier(\n openingPath.node.name,\n openingPath.node,\n );\n\n let tagName: string | undefined;\n if (t.isIdentifier(tagExpr)) {\n tagName = tagExpr.name;\n } else if (t.isStringLiteral(tagExpr)) {\n tagName = tagExpr.value;\n }\n\n if (t.react.isCompatTag(tagName)) {\n return t.stringLiteral(tagName!);\n } else {\n return tagExpr;\n }\n }\n\n /**\n * The logic for this is quite terse. It's because we need to\n * support spread elements. We loop over all attributes,\n * breaking on spreads, we then push a new object containing\n * all prior attributes to an array for later processing.\n */\n function buildCreateElementOpeningElementAttributes(\n file: PluginPass,\n path: NodePath<JSXElement>,\n attribs: NodePath<JSXAttribute | JSXSpreadAttribute>[],\n ) {\n const runtime = get(file, \"runtime\");\n\n const props: ObjectExpression[\"properties\"] = [];\n const found = Object.create(null);\n\n processComments(attribs);\n for (const attr of attribs) {\n const { node } = attr;\n const name =\n t.isJSXAttribute(node) &&\n t.isJSXIdentifier(node.name) &&\n node.name.name;\n\n if (\n runtime === \"automatic\" &&\n (name === \"__source\" || name === \"__self\")\n ) {\n if (found[name]) throw sourceSelfError(path, name);\n found[name] = true;\n }\n\n accumulateAttribute(props, attr);\n }\n\n const ret =\n props.length === 1 &&\n t.isSpreadElement(props[0]) &&\n // If an object expression is spread element's argument\n // it is very likely to contain __proto__ and we should stop\n // optimizing spread element\n !t.isObjectExpression(props[0].argument)\n ? props[0].argument\n : props.length > 0\n ? t.objectExpression(props)\n : t.nullLiteral();\n if (commentsNode) {\n t.inheritsComments(ret, commentsNode);\n }\n return ret;\n }\n });\n\n function getSource(source: string, importName: string) {\n switch (importName) {\n case \"Fragment\":\n return `${source}/${development ? \"jsx-dev-runtime\" : \"jsx-runtime\"}`;\n case \"jsxDEV\":\n return `${source}/jsx-dev-runtime`;\n case \"jsx\":\n case \"jsxs\":\n return `${source}/jsx-runtime`;\n case \"createElement\":\n return source;\n }\n }\n\n function createImportLazily(\n pass: PluginPass,\n path: NodePath<Program>,\n importName: string,\n source: string,\n ): () => Identifier | MemberExpression {\n return () => {\n const actualSource = getSource(source, importName)!;\n if (isModule(path)) {\n let reference = get(pass, `imports/${importName}`);\n if (reference) return t.cloneNode(reference);\n\n reference = addNamed(path, importName, actualSource, {\n importedInterop: \"uncompiled\",\n importPosition: \"after\",\n });\n set(pass, `imports/${importName}`, reference);\n\n return reference;\n } else {\n let reference = get(pass, `requires/${actualSource}`);\n if (reference) {\n reference = t.cloneNode(reference);\n } else {\n reference = addNamespace(path, actualSource, {\n importedInterop: \"uncompiled\",\n });\n set(pass, `requires/${actualSource}`, reference);\n }\n\n return t.memberExpression(reference, t.identifier(importName));\n }\n };\n }\n}\n\nfunction toMemberExpression(id: string): Identifier | MemberExpression {\n return (\n id\n .split(\".\")\n .map(name => t.identifier(name))\n // @ts-expect-error - The Array#reduce does not have a signature\n // where the type of initial value differs from callback return type\n .reduce((object, property) => t.memberExpression(object, property))\n );\n}\n\nfunction sourceSelfError(path: NodePath, name: string) {\n const pluginName = `transform-react-jsx-${name.slice(2)}`;\n\n return path.buildCodeFrameError(\n `Duplicate ${name} prop found. You are most likely using the deprecated ${pluginName} Babel plugin. Both __source and __self are automatically set when using the automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config.`,\n );\n}\n"],"names":["t"],"mappings":"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"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"development.js","sources":["../src/development.ts"],"sourcesContent":["import createPlugin from \"./create-plugin.ts\";\n\nexport default createPlugin({\n name: \"transform-react-jsx/development\",\n development: true,\n});\n"],"names":["createPlugin","name","development"],"mappings":";;AAEA,oBAAeA,YAAY,CAAC;AAC1BC,EAAAA,IAAI,EAAE,iCAAiC;AACvCC,EAAAA,WAAW,EAAE;AACf,CAAC,CAAC;;;;"} | ||
| {"version":3,"file":"development.js","sources":["../src/development.ts"],"sourcesContent":["import createPlugin from \"./create-plugin.ts\";\n\nexport default createPlugin({\n name: \"transform-react-jsx/development\",\n development: true,\n});\n"],"names":[],"mappings":";;AAEA,oBAAe,YAAY,CAAC;AAC1B,EAAA,IAAI,EAAE,iCAAiC;AACvC,EAAA,WAAW,EAAE;AACf,CAAC,CAAC;;;;"} |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\n\nimport createPlugin from \"./create-plugin.ts\";\n\nexport default createPlugin({\n name: \"transform-react-jsx\",\n development: false,\n});\n\nexport type { Options } from \"./create-plugin.ts\";\n"],"names":["createPlugin","name","development"],"mappings":";;AAIA,cAAeA,YAAY,CAAC;AAC1BC,EAAAA,IAAI,EAAE,qBAAqB;AAC3BC,EAAAA,WAAW,EAAE;AACf,CAAC,CAAC;;;;"} | ||
| {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\n\nimport createPlugin from \"./create-plugin.ts\";\n\nexport default createPlugin({\n name: \"transform-react-jsx\",\n development: false,\n});\n\nexport type { Options } from \"./create-plugin.ts\";\n"],"names":[],"mappings":";;AAIA,cAAe,YAAY,CAAC;AAC1B,EAAA,IAAI,EAAE,qBAAqB;AAC3B,EAAA,WAAW,EAAE;AACf,CAAC,CAAC;;;;"} |
+10
-10
| { | ||
| "name": "@babel/plugin-transform-react-jsx", | ||
| "version": "8.0.0-rc.6", | ||
| "version": "8.0.0", | ||
| "description": "Turn JSX into React function calls", | ||
@@ -20,15 +20,15 @@ "repository": { | ||
| "dependencies": { | ||
| "@babel/helper-annotate-as-pure": "^8.0.0-rc.6", | ||
| "@babel/helper-module-imports": "^8.0.0-rc.6", | ||
| "@babel/helper-plugin-utils": "^8.0.0-rc.6", | ||
| "@babel/plugin-syntax-jsx": "^8.0.0-rc.6", | ||
| "@babel/types": "^8.0.0-rc.6" | ||
| "@babel/helper-annotate-as-pure": "^8.0.0", | ||
| "@babel/helper-module-imports": "^8.0.0", | ||
| "@babel/helper-plugin-utils": "^8.0.0", | ||
| "@babel/plugin-syntax-jsx": "^8.0.0", | ||
| "@babel/types": "^8.0.0" | ||
| }, | ||
| "peerDependencies": { | ||
| "@babel/core": "^8.0.0-rc.6" | ||
| "@babel/core": "^8.0.0" | ||
| }, | ||
| "devDependencies": { | ||
| "@babel/core": "^8.0.0-rc.6", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0-rc.6", | ||
| "@babel/traverse": "^8.0.0-rc.6" | ||
| "@babel/core": "^8.0.0", | ||
| "@babel/helper-plugin-test-runner": "^8.0.0", | ||
| "@babel/traverse": "^8.0.0" | ||
| }, | ||
@@ -35,0 +35,0 @@ "engines": { |
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
1
-50%74073
-6.12%