astro-ghostcms/.pnpm-store/v3/files/38/7305d33a8a0201df2539cd74624...

147 lines
4.8 KiB
Plaintext
Raw Normal View History

2024-02-14 14:10:47 +00:00
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var helperPluginUtils = require('@babel/helper-plugin-utils');
var transformTypeScript = require('@babel/plugin-transform-typescript');
require('@babel/plugin-syntax-jsx');
var transformModulesCommonJS = require('@babel/plugin-transform-modules-commonjs');
var helperValidatorOption = require('@babel/helper-validator-option');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var transformTypeScript__default = /*#__PURE__*/_interopDefault(transformTypeScript);
var transformModulesCommonJS__default = /*#__PURE__*/_interopDefault(transformModulesCommonJS);
const v = new helperValidatorOption.OptionValidator("@babel/preset-typescript");
function normalizeOptions(options = {}) {
let {
allowNamespaces = true,
jsxPragma,
onlyRemoveTypeImports
} = options;
const TopLevelOptions = {
ignoreExtensions: "ignoreExtensions",
allowNamespaces: "allowNamespaces",
disallowAmbiguousJSXLike: "disallowAmbiguousJSXLike",
jsxPragma: "jsxPragma",
jsxPragmaFrag: "jsxPragmaFrag",
onlyRemoveTypeImports: "onlyRemoveTypeImports",
optimizeConstEnums: "optimizeConstEnums",
rewriteImportExtensions: "rewriteImportExtensions",
allExtensions: "allExtensions",
isTSX: "isTSX"
};
const jsxPragmaFrag = v.validateStringOption(TopLevelOptions.jsxPragmaFrag, options.jsxPragmaFrag, "React.Fragment");
{
var allExtensions = v.validateBooleanOption(TopLevelOptions.allExtensions, options.allExtensions, false);
var isTSX = v.validateBooleanOption(TopLevelOptions.isTSX, options.isTSX, false);
if (isTSX) {
v.invariant(allExtensions, "isTSX:true requires allExtensions:true");
}
}
const ignoreExtensions = v.validateBooleanOption(TopLevelOptions.ignoreExtensions, options.ignoreExtensions, false);
const disallowAmbiguousJSXLike = v.validateBooleanOption(TopLevelOptions.disallowAmbiguousJSXLike, options.disallowAmbiguousJSXLike, false);
if (disallowAmbiguousJSXLike) {
{
v.invariant(allExtensions, "disallowAmbiguousJSXLike:true requires allExtensions:true");
}
}
const optimizeConstEnums = v.validateBooleanOption(TopLevelOptions.optimizeConstEnums, options.optimizeConstEnums, false);
const rewriteImportExtensions = v.validateBooleanOption(TopLevelOptions.rewriteImportExtensions, options.rewriteImportExtensions, false);
const normalized = {
ignoreExtensions,
allowNamespaces,
disallowAmbiguousJSXLike,
jsxPragma,
jsxPragmaFrag,
onlyRemoveTypeImports,
optimizeConstEnums,
rewriteImportExtensions
};
{
normalized.allExtensions = allExtensions;
normalized.isTSX = isTSX;
}
return normalized;
}
var pluginRewriteTSImports = helperPluginUtils.declare(function ({
types: t
}) {
return {
name: "preset-typescript/plugin-rewrite-ts-imports",
visitor: {
"ImportDeclaration|ExportAllDeclaration|ExportNamedDeclaration"({
node
}) {
const {
source
} = node;
const kind = t.isImportDeclaration(node) ? node.importKind : node.exportKind;
if (kind === "value" && source && /[\\/]/.test(source.value)) {
source.value = source.value.replace(/(\.[mc]?)ts$/, "$1js").replace(/\.tsx$/, ".js");
}
}
}
};
});
var index = helperPluginUtils.declarePreset((api, opts) => {
api.assertVersion(7);
const {
allExtensions,
ignoreExtensions,
allowNamespaces,
disallowAmbiguousJSXLike,
isTSX,
jsxPragma,
jsxPragmaFrag,
onlyRemoveTypeImports,
optimizeConstEnums,
rewriteImportExtensions
} = normalizeOptions(opts);
const pluginOptions = disallowAmbiguousJSXLike => ({
allowDeclareFields: opts.allowDeclareFields,
allowNamespaces,
disallowAmbiguousJSXLike,
jsxPragma,
jsxPragmaFrag,
onlyRemoveTypeImports,
optimizeConstEnums
});
const getPlugins = (isTSX, disallowAmbiguousJSXLike) => {
{
return [[transformTypeScript__default.default, Object.assign({
isTSX
}, pluginOptions(disallowAmbiguousJSXLike))]];
}
};
const disableExtensionDetect = allExtensions || ignoreExtensions;
return {
plugins: rewriteImportExtensions ? [pluginRewriteTSImports] : [],
overrides: disableExtensionDetect ? [{
plugins: getPlugins(isTSX, disallowAmbiguousJSXLike)
}] : [{
test: /\.ts$/,
plugins: getPlugins(false, false)
}, {
test: /\.mts$/,
sourceType: "module",
plugins: getPlugins(false, true)
}, {
test: /\.cts$/,
sourceType: "unambiguous",
plugins: [[transformModulesCommonJS__default.default, {
allowTopLevelThis: true
}], [transformTypeScript__default.default, pluginOptions(true)]]
}, {
test: /\.tsx$/,
plugins: getPlugins(true, false)
}]
};
});
exports.default = index;
//# sourceMappingURL=index.js.map