@babel/plugin-proposal-decorators 7.22.7 → 8.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"names":["_core","require","buildClassDecorator","template","statement","buildClassPrototype","buildGetDescriptor","buildGetObjectInitializer","WARNING_CALLS","WeakSet","applyEnsureOrdering","path","decorators","isClass","get","reduce","acc","prop","concat","node","identDecorators","filter","decorator","t","isIdentifier","expression","length","sequenceExpression","map","id","scope","generateDeclaredUidIdentifier","assignmentExpression","applyClassDecorators","classPath","hasClassDecorators","name","dec","reverse","CLASS_REF","cloneNode","DECORATOR","INNER","classNode","applyMethodDecorators","state","hasMethodDecorators","body","applyTargetDecorators","some","_node$decorators","applyObjectDecorators","properties","type","decoratedProps","exprs","computed","buildCodeFrameError","property","isLiteral","key","stringLiteral","target","static","isClassProperty","descriptor","initializer","value","functionExpression","blockStatement","returnStatement","nullLiteral","callExpression","addHelper","thisExpression","add","push","arrayExpression","objectExpression","objectProperty","identifier","booleanLiteral","isObjectProperty","TEMP","TARGET","PROPERTY","decoratedClassToExpression","ref","generateUidIdentifier","variableDeclaration","variableDeclarator","toExpression","visitor","ExportDefaultDeclaration","decl","isClassDeclaration","replacement","varDeclPath","replaceWithMultiple","exportNamedDeclaration","exportSpecifier","declarations","registerDeclaration","ClassDeclaration","newPath","replaceWith","binding","getOwnBinding","ClassExpression","decoratedClass","ObjectExpression","decoratedObject","AssignmentExpression","has","right","CallExpression","arguments","callee","_default","exports","default"],"sources":["../src/transformer-legacy.ts"],"sourcesContent":["// Fork of https://github.com/loganfsmyth/babel-plugin-proposal-decorators-legacy\n\nimport { template, types as t, type PluginPass } from \"@babel/core\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\n\nconst buildClassDecorator = template.statement(`\n DECORATOR(CLASS_REF = INNER) || CLASS_REF;\n`) as (replacements: {\n DECORATOR: t.Expression;\n CLASS_REF: t.Identifier;\n INNER: t.Expression;\n}) => t.ExpressionStatement;\n\nconst buildClassPrototype = template(`\n CLASS_REF.prototype;\n`) as (replacements: { CLASS_REF: t.Identifier }) => t.ExpressionStatement;\n\nconst buildGetDescriptor = template(`\n Object.getOwnPropertyDescriptor(TARGET, PROPERTY);\n`) as (replacements: {\n TARGET: t.Expression;\n PROPERTY: t.Literal;\n}) => t.ExpressionStatement;\n\nconst buildGetObjectInitializer = template(`\n (TEMP = Object.getOwnPropertyDescriptor(TARGET, PROPERTY), (TEMP = TEMP ? TEMP.value : undefined), {\n enumerable: true,\n configurable: true,\n writable: true,\n initializer: function(){\n return TEMP;\n }\n })\n`) as (replacements: {\n TEMP: t.Identifier;\n TARGET: t.Expression;\n PROPERTY: t.Literal;\n}) => t.ExpressionStatement;\n\nconst WARNING_CALLS = new WeakSet();\n\n// legacy decorator does not support ClassAccessorProperty\ntype ClassDecoratableElement =\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.ClassProperty\n | t.ClassPrivateProperty;\n\n/**\n * If the decorator expressions are non-identifiers, hoist them to before the class so we can be sure\n * that they are evaluated in order.\n */\nfunction applyEnsureOrdering(\n path: NodePath<t.ClassExpression | t.ObjectExpression>,\n) {\n // TODO: This should probably also hoist computed properties.\n const decorators: t.Decorator[] = (\n path.isClass()\n ? [\n path,\n ...(path.get(\"body.body\") as NodePath<ClassDecoratableElement>[]),\n ]\n : path.get(\"properties\")\n ).reduce(\n (\n acc: t.Decorator[],\n prop: NodePath<\n t.ObjectMember | t.ClassExpression | ClassDecoratableElement\n >,\n ) => acc.concat(prop.node.decorators || []),\n [],\n );\n\n const identDecorators = decorators.filter(\n decorator => !t.isIdentifier(decorator.expression),\n );\n if (identDecorators.length === 0) return;\n\n return t.sequenceExpression(\n identDecorators\n .map((decorator): t.Expression => {\n const expression = decorator.expression;\n const id = (decorator.expression =\n path.scope.generateDeclaredUidIdentifier(\"dec\"));\n return t.assignmentExpression(\"=\", id, expression);\n })\n .concat([path.node]),\n );\n}\n\n/**\n * Given a class expression with class-level decorators, create a new expression\n * with the proper decorated behavior.\n */\nfunction applyClassDecorators(classPath: NodePath<t.ClassExpression>) {\n if (!hasClassDecorators(classPath.node)) return;\n\n const decorators = classPath.node.decorators || [];\n classPath.node.decorators = null;\n\n const name = classPath.scope.generateDeclaredUidIdentifier(\"class\");\n\n return decorators\n .map(dec => dec.expression)\n .reverse()\n .reduce(function (acc, decorator) {\n return buildClassDecorator({\n CLASS_REF: t.cloneNode(name),\n DECORATOR: t.cloneNode(decorator),\n INNER: acc,\n }).expression;\n }, classPath.node);\n}\n\nfunction hasClassDecorators(classNode: t.Class) {\n return !!(classNode.decorators && classNode.decorators.length);\n}\n\n/**\n * Given a class expression with method-level decorators, create a new expression\n * with the proper decorated behavior.\n */\nfunction applyMethodDecorators(\n path: NodePath<t.ClassExpression>,\n state: PluginPass,\n) {\n if (!hasMethodDecorators(path.node.body.body)) return;\n\n return applyTargetDecorators(\n path,\n state,\n // @ts-expect-error ClassAccessorProperty is not supported in legacy decorator\n path.node.body.body,\n );\n}\n\nfunction hasMethodDecorators(\n body: t.ClassBody[\"body\"] | t.ObjectExpression[\"properties\"],\n) {\n return body.some(\n node =>\n // @ts-expect-error decorators not in SpreadElement/StaticBlock\n node.decorators?.length,\n );\n}\n\n/**\n * Given an object expression with property decorators, create a new expression\n * with the proper decorated behavior.\n */\nfunction applyObjectDecorators(\n path: NodePath<t.ObjectExpression>,\n state: PluginPass,\n) {\n if (!hasMethodDecorators(path.node.properties)) return;\n\n return applyTargetDecorators(\n path,\n state,\n path.node.properties.filter(\n (prop): prop is t.ObjectMember => prop.type !== \"SpreadElement\",\n ),\n );\n}\n\n/**\n * A helper to pull out property decorators into a sequence expression.\n */\nfunction applyTargetDecorators(\n path: NodePath<t.ClassExpression | t.ObjectExpression>,\n state: PluginPass,\n decoratedProps: (t.ObjectMember | ClassDecoratableElement)[],\n) {\n const name = path.scope.generateDeclaredUidIdentifier(\n path.isClass() ? \"class\" : \"obj\",\n );\n\n const exprs = decoratedProps.reduce(function (acc, node) {\n let decorators: t.Decorator[] = [];\n if (node.decorators != null) {\n decorators = node.decorators;\n node.decorators = null;\n }\n\n if (decorators.length === 0) return acc;\n\n if (\n // @ts-expect-error computed is not in ClassPrivateProperty\n node.computed\n ) {\n throw path.buildCodeFrameError(\n \"Computed method/property decorators are not yet supported.\",\n );\n }\n\n const property: t.Literal = t.isLiteral(node.key)\n ? node.key\n : t.stringLiteral(\n // @ts-expect-error: should we handle ClassPrivateProperty?\n node.key.name,\n );\n\n const target =\n path.isClass() && !(node as ClassDecoratableElement).static\n ? buildClassPrototype({\n CLASS_REF: name,\n }).expression\n : name;\n\n if (t.isClassProperty(node, { static: false })) {\n const descriptor = path.scope.generateDeclaredUidIdentifier(\"descriptor\");\n\n const initializer = node.value\n ? t.functionExpression(\n null,\n [],\n t.blockStatement([t.returnStatement(node.value)]),\n )\n : t.nullLiteral();\n\n node.value = t.callExpression(\n state.addHelper(\"initializerWarningHelper\"),\n [descriptor, t.thisExpression()],\n );\n\n WARNING_CALLS.add(node.value);\n\n acc.push(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(descriptor),\n t.callExpression(state.addHelper(\"applyDecoratedDescriptor\"), [\n t.cloneNode(target),\n t.cloneNode(property),\n t.arrayExpression(\n decorators.map(dec => t.cloneNode(dec.expression)),\n ),\n t.objectExpression([\n t.objectProperty(\n t.identifier(\"configurable\"),\n t.booleanLiteral(true),\n ),\n t.objectProperty(\n t.identifier(\"enumerable\"),\n t.booleanLiteral(true),\n ),\n t.objectProperty(\n t.identifier(\"writable\"),\n t.booleanLiteral(true),\n ),\n t.objectProperty(t.identifier(\"initializer\"), initializer),\n ]),\n ]),\n ),\n );\n } else {\n acc.push(\n t.callExpression(state.addHelper(\"applyDecoratedDescriptor\"), [\n t.cloneNode(target),\n t.cloneNode(property),\n t.arrayExpression(decorators.map(dec => t.cloneNode(dec.expression))),\n t.isObjectProperty(node) || t.isClassProperty(node, { static: true })\n ? buildGetObjectInitializer({\n TEMP: path.scope.generateDeclaredUidIdentifier(\"init\"),\n TARGET: t.cloneNode(target),\n PROPERTY: t.cloneNode(property),\n }).expression\n : buildGetDescriptor({\n TARGET: t.cloneNode(target),\n PROPERTY: t.cloneNode(property),\n }).expression,\n t.cloneNode(target),\n ]),\n );\n }\n\n return acc;\n }, []);\n\n return t.sequenceExpression([\n t.assignmentExpression(\"=\", t.cloneNode(name), path.node),\n t.sequenceExpression(exprs),\n t.cloneNode(name),\n ]);\n}\n\nfunction decoratedClassToExpression({ node, scope }: NodePath<t.Class>) {\n if (!hasClassDecorators(node) && !hasMethodDecorators(node.body.body)) {\n return;\n }\n\n const ref = node.id\n ? t.cloneNode(node.id)\n : scope.generateUidIdentifier(\"class\");\n\n return t.variableDeclaration(\"let\", [\n t.variableDeclarator(ref, t.toExpression(node)),\n ]);\n}\n\nconst visitor: Visitor<PluginPass> = {\n ExportDefaultDeclaration(path) {\n const decl = path.get(\"declaration\");\n if (!decl.isClassDeclaration()) return;\n\n const replacement = decoratedClassToExpression(decl);\n if (replacement) {\n const [varDeclPath] = path.replaceWithMultiple([\n replacement,\n t.exportNamedDeclaration(null, [\n t.exportSpecifier(\n // @ts-expect-error todo(flow->ts) might be add more specific return type for decoratedClassToExpression\n t.cloneNode(replacement.declarations[0].id),\n t.identifier(\"default\"),\n ),\n ]),\n ]);\n\n if (!decl.node.id) {\n path.scope.registerDeclaration(varDeclPath);\n }\n }\n },\n ClassDeclaration(path) {\n const replacement = decoratedClassToExpression(path);\n if (replacement) {\n const [newPath] = path.replaceWith(replacement);\n\n const decl = newPath.get(\"declarations.0\");\n const id = decl.node.id as t.Identifier;\n\n // TODO: Maybe add this logic to @babel/traverse\n const binding = path.scope.getOwnBinding(id.name);\n binding.identifier = id;\n binding.path = decl;\n }\n },\n ClassExpression(path, state) {\n // Create a replacement for the class node if there is one. We do one pass to replace classes with\n // class decorators, and a second pass to process method decorators.\n const decoratedClass =\n applyEnsureOrdering(path) ||\n applyClassDecorators(path) ||\n applyMethodDecorators(path, state);\n\n if (decoratedClass) path.replaceWith(decoratedClass);\n },\n ObjectExpression(path, state) {\n const decoratedObject =\n applyEnsureOrdering(path) || applyObjectDecorators(path, state);\n\n if (decoratedObject) path.replaceWith(decoratedObject);\n },\n\n AssignmentExpression(path, state) {\n if (!WARNING_CALLS.has(path.node.right)) return;\n\n path.replaceWith(\n t.callExpression(state.addHelper(\"initializerDefineProperty\"), [\n // @ts-expect-error todo(flow->ts) typesafe NodePath.get\n t.cloneNode(path.get(\"left.object\").node),\n t.stringLiteral(\n // @ts-expect-error todo(flow->ts) typesafe NodePath.get\n path.get(\"left.property\").node.name ||\n // @ts-expect-error todo(flow->ts) typesafe NodePath.get\n path.get(\"left.property\").node.value,\n ),\n // @ts-expect-error todo(flow->ts)\n t.cloneNode(path.get(\"right.arguments\")[0].node),\n // @ts-expect-error todo(flow->ts)\n t.cloneNode(path.get(\"right.arguments\")[1].node),\n ]),\n );\n },\n\n CallExpression(path, state) {\n if (path.node.arguments.length !== 3) return;\n if (!WARNING_CALLS.has(path.node.arguments[2])) return;\n\n // If the class properties plugin isn't enabled, this line will add an unused helper\n // to the code. It's not ideal, but it's ok since the configuration is not valid anyway.\n // @ts-expect-error todo(flow->ts) check that `callee` is Identifier\n if (path.node.callee.name !== state.addHelper(\"defineProperty\").name) {\n return;\n }\n\n path.replaceWith(\n t.callExpression(state.addHelper(\"initializerDefineProperty\"), [\n t.cloneNode(path.get(\"arguments\")[0].node),\n t.cloneNode(path.get(\"arguments\")[1].node),\n // @ts-expect-error todo(flow->ts)\n t.cloneNode(path.get(\"arguments.2.arguments\")[0].node),\n // @ts-expect-error todo(flow->ts)\n t.cloneNode(path.get(\"arguments.2.arguments\")[1].node),\n ]),\n );\n },\n};\n\nexport default visitor;\n"],"mappings":"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"}
1
+ {"version":3,"names":["template","types","t","buildClassDecorator","statement","buildClassPrototype","buildGetDescriptor","buildGetObjectInitializer","WARNING_CALLS","WeakSet","applyEnsureOrdering","path","decorators","isClass","get","reduce","acc","prop","concat","node","identDecorators","filter","decorator","isIdentifier","expression","length","sequenceExpression","map","id","scope","generateDeclaredUidIdentifier","assignmentExpression","applyClassDecorators","classPath","hasClassDecorators","name","dec","reverse","CLASS_REF","cloneNode","DECORATOR","INNER","classNode","applyMethodDecorators","state","hasMethodDecorators","body","applyTargetDecorators","some","applyObjectDecorators","properties","type","decoratedProps","exprs","computed","buildCodeFrameError","property","isLiteral","key","stringLiteral","target","static","isClassProperty","descriptor","initializer","value","functionExpression","blockStatement","returnStatement","nullLiteral","callExpression","addHelper","thisExpression","add","push","arrayExpression","objectExpression","objectProperty","identifier","booleanLiteral","isObjectProperty","TEMP","TARGET","PROPERTY","decoratedClassToExpression","ref","generateUidIdentifier","variableDeclaration","variableDeclarator","toExpression","visitor","ExportDefaultDeclaration","decl","isClassDeclaration","replacement","varDeclPath","replaceWithMultiple","exportNamedDeclaration","exportSpecifier","declarations","registerDeclaration","ClassDeclaration","newPath","replaceWith","binding","getOwnBinding","ClassExpression","decoratedClass","ObjectExpression","decoratedObject","AssignmentExpression","has","right","CallExpression","arguments","callee"],"sources":["../src/transformer-legacy.ts"],"sourcesContent":["// Fork of https://github.com/loganfsmyth/babel-plugin-proposal-decorators-legacy\n\nimport { template, types as t, type PluginPass } from \"@babel/core\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\n\nconst buildClassDecorator = template.statement(`\n DECORATOR(CLASS_REF = INNER) || CLASS_REF;\n`) as (replacements: {\n DECORATOR: t.Expression;\n CLASS_REF: t.Identifier;\n INNER: t.Expression;\n}) => t.ExpressionStatement;\n\nconst buildClassPrototype = template(`\n CLASS_REF.prototype;\n`) as (replacements: { CLASS_REF: t.Identifier }) => t.ExpressionStatement;\n\nconst buildGetDescriptor = template(`\n Object.getOwnPropertyDescriptor(TARGET, PROPERTY);\n`) as (replacements: {\n TARGET: t.Expression;\n PROPERTY: t.Literal;\n}) => t.ExpressionStatement;\n\nconst buildGetObjectInitializer = template(`\n (TEMP = Object.getOwnPropertyDescriptor(TARGET, PROPERTY), (TEMP = TEMP ? TEMP.value : undefined), {\n enumerable: true,\n configurable: true,\n writable: true,\n initializer: function(){\n return TEMP;\n }\n })\n`) as (replacements: {\n TEMP: t.Identifier;\n TARGET: t.Expression;\n PROPERTY: t.Literal;\n}) => t.ExpressionStatement;\n\nconst WARNING_CALLS = new WeakSet();\n\n// legacy decorator does not support ClassAccessorProperty\ntype ClassDecoratableElement =\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.ClassProperty\n | t.ClassPrivateProperty;\n\n/**\n * If the decorator expressions are non-identifiers, hoist them to before the class so we can be sure\n * that they are evaluated in order.\n */\nfunction applyEnsureOrdering(\n path: NodePath<t.ClassExpression | t.ObjectExpression>,\n) {\n // TODO: This should probably also hoist computed properties.\n const decorators: t.Decorator[] = (\n path.isClass()\n ? [\n path,\n ...(path.get(\"body.body\") as NodePath<ClassDecoratableElement>[]),\n ]\n : path.get(\"properties\")\n ).reduce(\n (\n acc: t.Decorator[],\n prop: NodePath<\n t.ObjectMember | t.ClassExpression | ClassDecoratableElement\n >,\n ) => acc.concat(prop.node.decorators || []),\n [],\n );\n\n const identDecorators = decorators.filter(\n decorator => !t.isIdentifier(decorator.expression),\n );\n if (identDecorators.length === 0) return;\n\n return t.sequenceExpression(\n identDecorators\n .map((decorator): t.Expression => {\n const expression = decorator.expression;\n const id = (decorator.expression =\n path.scope.generateDeclaredUidIdentifier(\"dec\"));\n return t.assignmentExpression(\"=\", id, expression);\n })\n .concat([path.node]),\n );\n}\n\n/**\n * Given a class expression with class-level decorators, create a new expression\n * with the proper decorated behavior.\n */\nfunction applyClassDecorators(classPath: NodePath<t.ClassExpression>) {\n if (!hasClassDecorators(classPath.node)) return;\n\n const decorators = classPath.node.decorators || [];\n classPath.node.decorators = null;\n\n const name = classPath.scope.generateDeclaredUidIdentifier(\"class\");\n\n return decorators\n .map(dec => dec.expression)\n .reverse()\n .reduce(function (acc, decorator) {\n return buildClassDecorator({\n CLASS_REF: t.cloneNode(name),\n DECORATOR: t.cloneNode(decorator),\n INNER: acc,\n }).expression;\n }, classPath.node);\n}\n\nfunction hasClassDecorators(classNode: t.Class) {\n return !!classNode.decorators?.length;\n}\n\n/**\n * Given a class expression with method-level decorators, create a new expression\n * with the proper decorated behavior.\n */\nfunction applyMethodDecorators(\n path: NodePath<t.ClassExpression>,\n state: PluginPass,\n) {\n if (!hasMethodDecorators(path.node.body.body)) return;\n\n return applyTargetDecorators(\n path,\n state,\n // @ts-expect-error ClassAccessorProperty is not supported in legacy decorator\n path.node.body.body,\n );\n}\n\nfunction hasMethodDecorators(\n body: t.ClassBody[\"body\"] | t.ObjectExpression[\"properties\"],\n) {\n return body.some(\n node =>\n // @ts-expect-error decorators not in SpreadElement/StaticBlock\n node.decorators?.length,\n );\n}\n\n/**\n * Given an object expression with property decorators, create a new expression\n * with the proper decorated behavior.\n */\nfunction applyObjectDecorators(\n path: NodePath<t.ObjectExpression>,\n state: PluginPass,\n) {\n if (!hasMethodDecorators(path.node.properties)) return;\n\n return applyTargetDecorators(\n path,\n state,\n path.node.properties.filter(\n (prop): prop is t.ObjectMember => prop.type !== \"SpreadElement\",\n ),\n );\n}\n\n/**\n * A helper to pull out property decorators into a sequence expression.\n */\nfunction applyTargetDecorators(\n path: NodePath<t.ClassExpression | t.ObjectExpression>,\n state: PluginPass,\n decoratedProps: (t.ObjectMember | ClassDecoratableElement)[],\n) {\n const name = path.scope.generateDeclaredUidIdentifier(\n path.isClass() ? \"class\" : \"obj\",\n );\n\n const exprs = decoratedProps.reduce(function (acc, node) {\n let decorators: t.Decorator[] = [];\n if (node.decorators != null) {\n decorators = node.decorators;\n node.decorators = null;\n }\n\n if (decorators.length === 0) return acc;\n\n if (\n // @ts-expect-error computed is not in ClassPrivateProperty\n node.computed\n ) {\n throw path.buildCodeFrameError(\n \"Computed method/property decorators are not yet supported.\",\n );\n }\n\n const property: t.Literal = t.isLiteral(node.key)\n ? node.key\n : t.stringLiteral(\n // @ts-expect-error: should we handle ClassPrivateProperty?\n node.key.name,\n );\n\n const target =\n path.isClass() && !(node as ClassDecoratableElement).static\n ? buildClassPrototype({\n CLASS_REF: name,\n }).expression\n : name;\n\n if (t.isClassProperty(node, { static: false })) {\n const descriptor = path.scope.generateDeclaredUidIdentifier(\"descriptor\");\n\n const initializer = node.value\n ? t.functionExpression(\n null,\n [],\n t.blockStatement([t.returnStatement(node.value)]),\n )\n : t.nullLiteral();\n\n node.value = t.callExpression(\n state.addHelper(\"initializerWarningHelper\"),\n [descriptor, t.thisExpression()],\n );\n\n WARNING_CALLS.add(node.value);\n\n acc.push(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(descriptor),\n t.callExpression(state.addHelper(\"applyDecoratedDescriptor\"), [\n t.cloneNode(target),\n t.cloneNode(property),\n t.arrayExpression(\n decorators.map(dec => t.cloneNode(dec.expression)),\n ),\n t.objectExpression([\n t.objectProperty(\n t.identifier(\"configurable\"),\n t.booleanLiteral(true),\n ),\n t.objectProperty(\n t.identifier(\"enumerable\"),\n t.booleanLiteral(true),\n ),\n t.objectProperty(\n t.identifier(\"writable\"),\n t.booleanLiteral(true),\n ),\n t.objectProperty(t.identifier(\"initializer\"), initializer),\n ]),\n ]),\n ),\n );\n } else {\n acc.push(\n t.callExpression(state.addHelper(\"applyDecoratedDescriptor\"), [\n t.cloneNode(target),\n t.cloneNode(property),\n t.arrayExpression(decorators.map(dec => t.cloneNode(dec.expression))),\n t.isObjectProperty(node) || t.isClassProperty(node, { static: true })\n ? buildGetObjectInitializer({\n TEMP: path.scope.generateDeclaredUidIdentifier(\"init\"),\n TARGET: t.cloneNode(target),\n PROPERTY: t.cloneNode(property),\n }).expression\n : buildGetDescriptor({\n TARGET: t.cloneNode(target),\n PROPERTY: t.cloneNode(property),\n }).expression,\n t.cloneNode(target),\n ]),\n );\n }\n\n return acc;\n }, []);\n\n return t.sequenceExpression([\n t.assignmentExpression(\"=\", t.cloneNode(name), path.node),\n t.sequenceExpression(exprs),\n t.cloneNode(name),\n ]);\n}\n\nfunction decoratedClassToExpression({ node, scope }: NodePath<t.Class>) {\n if (!hasClassDecorators(node) && !hasMethodDecorators(node.body.body)) {\n return;\n }\n\n const ref = node.id\n ? t.cloneNode(node.id)\n : scope.generateUidIdentifier(\"class\");\n\n return t.variableDeclaration(\"let\", [\n t.variableDeclarator(ref, t.toExpression(node)),\n ]);\n}\n\nconst visitor: Visitor<PluginPass> = {\n ExportDefaultDeclaration(path) {\n const decl = path.get(\"declaration\");\n if (!decl.isClassDeclaration()) return;\n\n const replacement = decoratedClassToExpression(decl);\n if (replacement) {\n const [varDeclPath] = path.replaceWithMultiple([\n replacement,\n t.exportNamedDeclaration(null, [\n t.exportSpecifier(\n // @ts-expect-error todo(flow->ts) might be add more specific return type for decoratedClassToExpression\n t.cloneNode(replacement.declarations[0].id),\n t.identifier(\"default\"),\n ),\n ]),\n ]);\n\n if (!decl.node.id) {\n path.scope.registerDeclaration(varDeclPath);\n }\n }\n },\n ClassDeclaration(path) {\n const replacement = decoratedClassToExpression(path);\n if (replacement) {\n const [newPath] = path.replaceWith(replacement);\n\n const decl = newPath.get(\"declarations.0\");\n const id = decl.node.id as t.Identifier;\n\n // TODO: Maybe add this logic to @babel/traverse\n const binding = path.scope.getOwnBinding(id.name);\n binding.identifier = id;\n binding.path = decl;\n }\n },\n ClassExpression(path, state) {\n // Create a replacement for the class node if there is one. We do one pass to replace classes with\n // class decorators, and a second pass to process method decorators.\n const decoratedClass =\n applyEnsureOrdering(path) ||\n applyClassDecorators(path) ||\n applyMethodDecorators(path, state);\n\n if (decoratedClass) path.replaceWith(decoratedClass);\n },\n ObjectExpression(path, state) {\n const decoratedObject =\n applyEnsureOrdering(path) || applyObjectDecorators(path, state);\n\n if (decoratedObject) path.replaceWith(decoratedObject);\n },\n\n AssignmentExpression(path, state) {\n if (!WARNING_CALLS.has(path.node.right)) return;\n\n path.replaceWith(\n t.callExpression(state.addHelper(\"initializerDefineProperty\"), [\n // @ts-expect-error todo(flow->ts) typesafe NodePath.get\n t.cloneNode(path.get(\"left.object\").node),\n t.stringLiteral(\n // @ts-expect-error todo(flow->ts) typesafe NodePath.get\n path.get(\"left.property\").node.name ||\n // @ts-expect-error todo(flow->ts) typesafe NodePath.get\n path.get(\"left.property\").node.value,\n ),\n // @ts-expect-error todo(flow->ts)\n t.cloneNode(path.get(\"right.arguments\")[0].node),\n // @ts-expect-error todo(flow->ts)\n t.cloneNode(path.get(\"right.arguments\")[1].node),\n ]),\n );\n },\n\n CallExpression(path, state) {\n if (path.node.arguments.length !== 3) return;\n if (!WARNING_CALLS.has(path.node.arguments[2])) return;\n\n // If the class properties plugin isn't enabled, this line will add an unused helper\n // to the code. It's not ideal, but it's ok since the configuration is not valid anyway.\n // @ts-expect-error todo(flow->ts) check that `callee` is Identifier\n if (path.node.callee.name !== state.addHelper(\"defineProperty\").name) {\n return;\n }\n\n path.replaceWith(\n t.callExpression(state.addHelper(\"initializerDefineProperty\"), [\n t.cloneNode(path.get(\"arguments\")[0].node),\n t.cloneNode(path.get(\"arguments\")[1].node),\n // @ts-expect-error todo(flow->ts)\n t.cloneNode(path.get(\"arguments.2.arguments\")[0].node),\n // @ts-expect-error todo(flow->ts)\n t.cloneNode(path.get(\"arguments.2.arguments\")[1].node),\n ]),\n );\n },\n};\n\nexport default visitor;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babel/plugin-proposal-decorators",
3
- "version": "7.22.7",
3
+ "version": "8.0.0-alpha.0",
4
4
  "author": "The Babel Team (https://babel.dev/team)",
5
5
  "license": "MIT",
6
6
  "publishConfig": {
@@ -20,19 +20,19 @@
20
20
  "decorators"
21
21
  ],
22
22
  "dependencies": {
23
- "@babel/helper-create-class-features-plugin": "^7.22.6",
24
- "@babel/helper-plugin-utils": "^7.22.5",
25
- "@babel/helper-replace-supers": "^7.22.5",
26
- "@babel/helper-split-export-declaration": "^7.22.6",
27
- "@babel/plugin-syntax-decorators": "^7.22.5"
23
+ "@babel/helper-create-class-features-plugin": "^8.0.0-alpha.0",
24
+ "@babel/helper-plugin-utils": "^8.0.0-alpha.0",
25
+ "@babel/helper-replace-supers": "^8.0.0-alpha.0",
26
+ "@babel/helper-split-export-declaration": "^8.0.0-alpha.0",
27
+ "@babel/plugin-syntax-decorators": "^8.0.0-alpha.0"
28
28
  },
29
29
  "peerDependencies": {
30
- "@babel/core": "^7.0.0-0"
30
+ "@babel/core": "^8.0.0-alpha.0"
31
31
  },
32
32
  "devDependencies": {
33
- "@babel/core": "^7.22.7",
34
- "@babel/helper-plugin-test-runner": "^7.22.5",
35
- "@babel/traverse": "^7.22.7",
33
+ "@babel/core": "^8.0.0-alpha.0",
34
+ "@babel/helper-plugin-test-runner": "^8.0.0-alpha.0",
35
+ "@babel/traverse": "^8.0.0-alpha.0",
36
36
  "@types/charcodes": "^0.2.0",
37
37
  "array.prototype.concat": "^1.0.2",
38
38
  "babel-plugin-polyfill-es-shims": "^0.9.1",
@@ -40,7 +40,11 @@
40
40
  "object.getownpropertydescriptors": "^2.1.1"
41
41
  },
42
42
  "engines": {
43
- "node": ">=6.9.0"
43
+ "node": "^16.20.0 || ^18.16.0 || >=20.0.0"
44
44
  },
45
- "type": "commonjs"
45
+ "exports": {
46
+ ".": "./lib/index.js",
47
+ "./package.json": "./package.json"
48
+ },
49
+ "type": "module"
46
50
  }