UNPKG

babel-plugin-transform-typescript-metadata-macro

Version:
41 lines (30 loc) 1.1 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _babelPluginMacros = require("babel-plugin-macros"); var _transform = require("./transform"); const metadataMacro = ({ references }) => { references.default.forEach(reference => { const decorator = reference.findParent(parent => parent.isDecorator()); if (!decorator) { throw new Error("Metadata macro should be used as class decorator"); } const classDeclaration = decorator.findParent(parent => parent.isClassDeclaration()); if (!classDeclaration) { throw new Error("Metadata macro should be used as class decorator"); } if (classDeclaration.isClassDeclaration()) { if (!classDeclaration.node.decorators) { classDeclaration.node.decorators = []; } (0, _transform.transform)(classDeclaration); classDeclaration.node.decorators = classDeclaration.node.decorators.filter(it => it !== decorator.node); } }); }; var _default = (0, _babelPluginMacros.createMacro)(metadataMacro); exports.default = _default;