diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:31:11 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2023-10-14 15:31:11 +0800 |
| commit | aa773172311dcada759dfbaac485f4bc6e00bc21 (patch) | |
| tree | ca6d9a5eff3ab8f689f9acb4f0df791d9486813d /node_modules/@babel/plugin-transform-class-static-block/lib/index.js | |
| parent | c5a5384e846f242e901e859fe600d695d8990a9a (diff) | |
added babel
Diffstat (limited to 'node_modules/@babel/plugin-transform-class-static-block/lib/index.js')
| -rw-r--r-- | node_modules/@babel/plugin-transform-class-static-block/lib/index.js | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/node_modules/@babel/plugin-transform-class-static-block/lib/index.js b/node_modules/@babel/plugin-transform-class-static-block/lib/index.js new file mode 100644 index 00000000..a657297c --- /dev/null +++ b/node_modules/@babel/plugin-transform-class-static-block/lib/index.js @@ -0,0 +1,63 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; +var _helperPluginUtils = require("@babel/helper-plugin-utils"); +var _helperCreateClassFeaturesPlugin = require("@babel/helper-create-class-features-plugin"); +function generateUid(scope, denyList) { + const name = ""; + let uid; + let i = 1; + do { + uid = scope._generateUid(name, i); + i++; + } while (denyList.has(uid)); + return uid; +} +var _default = (0, _helperPluginUtils.declare)(({ + types: t, + template, + assertVersion +}) => { + assertVersion("^7.12.0"); + return { + name: "transform-class-static-block", + inherits: require("@babel/plugin-syntax-class-static-block").default, + pre() { + (0, _helperCreateClassFeaturesPlugin.enableFeature)(this.file, _helperCreateClassFeaturesPlugin.FEATURES.staticBlocks, false); + }, + visitor: { + ClassBody(classBody) { + const { + scope + } = classBody; + const privateNames = new Set(); + const body = classBody.get("body"); + for (const path of body) { + if (path.isPrivate()) { + privateNames.add(path.get("key.id").node.name); + } + } + for (const path of body) { + if (!path.isStaticBlock()) continue; + const staticBlockPrivateId = generateUid(scope, privateNames); + privateNames.add(staticBlockPrivateId); + const staticBlockRef = t.privateName(t.identifier(staticBlockPrivateId)); + let replacement; + const blockBody = path.node.body; + if (blockBody.length === 1 && t.isExpressionStatement(blockBody[0])) { + replacement = t.inheritsComments(blockBody[0].expression, blockBody[0]); + } else { + replacement = template.expression.ast`(() => { ${blockBody} })()`; + } + path.replaceWith(t.classPrivateProperty(staticBlockRef, replacement, [], true)); + } + } + } + }; +}); +exports.default = _default; + +//# sourceMappingURL=index.js.map |
