| | |
| | | |
| | | var _transformerLegacy = require("./transformer-legacy"); |
| | | |
| | | var _transformer = require("./transformer-2021-12"); |
| | | |
| | | var _default = (0, _helperPluginUtils.declare)((api, options) => { |
| | | api.assertVersion(7); |
| | | const { |
| | | legacy = false |
| | | legacy, |
| | | version |
| | | } = options; |
| | | |
| | | if (typeof legacy !== "boolean") { |
| | | throw new Error("'legacy' must be a boolean."); |
| | | } |
| | | |
| | | const { |
| | | decoratorsBeforeExport |
| | | } = options; |
| | | |
| | | if (decoratorsBeforeExport === undefined) { |
| | | if (!legacy) { |
| | | throw new Error("The decorators plugin requires a 'decoratorsBeforeExport' option," + " whose value must be a boolean. If you want to use the legacy" + " decorators semantics, you can set the 'legacy: true' option."); |
| | | } |
| | | } else { |
| | | if (legacy) { |
| | | throw new Error("'decoratorsBeforeExport' can't be used with legacy decorators."); |
| | | } |
| | | |
| | | if (typeof decoratorsBeforeExport !== "boolean") { |
| | | throw new Error("'decoratorsBeforeExport' must be a boolean."); |
| | | } |
| | | } |
| | | |
| | | if (legacy) { |
| | | if (legacy || version === "legacy") { |
| | | return { |
| | | name: "proposal-decorators", |
| | | inherits: _pluginSyntaxDecorators.default, |
| | | |
| | | manipulateOptions({ |
| | | generatorOpts |
| | | }) { |
| | | generatorOpts.decoratorsBeforeExport = decoratorsBeforeExport; |
| | | }, |
| | | |
| | | visitor: _transformerLegacy.default |
| | | }; |
| | | } else if (version === "2021-12") { |
| | | return (0, _transformer.default)(api, options); |
| | | } else { |
| | | return (0, _helperCreateClassFeaturesPlugin.createClassFeaturePlugin)({ |
| | | name: "proposal-decorators", |
| | | api, |
| | | feature: _helperCreateClassFeaturesPlugin.FEATURES.decorators, |
| | | inherits: _pluginSyntaxDecorators.default |
| | | }); |
| | | } |
| | | |
| | | return (0, _helperCreateClassFeaturesPlugin.createClassFeaturePlugin)({ |
| | | name: "proposal-decorators", |
| | | api, |
| | | feature: _helperCreateClassFeaturesPlugin.FEATURES.decorators, |
| | | |
| | | manipulateOptions({ |
| | | generatorOpts, |
| | | parserOpts |
| | | }) { |
| | | parserOpts.plugins.push(["decorators", { |
| | | decoratorsBeforeExport |
| | | }]); |
| | | generatorOpts.decoratorsBeforeExport = decoratorsBeforeExport; |
| | | } |
| | | |
| | | }); |
| | | }); |
| | | |
| | | exports.default = _default; |