'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var helperPluginUtils = require('@babel/helper-plugin-utils');
var transformTypeScript = require('@babel/plugin-transform-typescript');
var helperValidatorOption = require('@babel/helper-validator-option');
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
var transformTypeScript__default = /*#__PURE__*/_interopDefault(transformTypeScript);
const v = new helperValidatorOption.OptionValidator("@babel/preset-typescript");
function normalizeOptions(options = {}) {
let {
allowNamespaces = true,
jsxPragma,
onlyRemoveTypeImports
} = options;
const TopLevelOptions = {
allExtensions: "allExtensions",
allowNamespaces: "allowNamespaces",
disallowAmbiguousJSXLike: "disallowAmbiguousJSXLike",
isTSX: "isTSX",
jsxPragma: "jsxPragma",
jsxPragmaFrag: "jsxPragmaFrag",
onlyRemoveTypeImports: "onlyRemoveTypeImports",
optimizeConstEnums: "optimizeConstEnums"
};
const jsxPragmaFrag = v.validateStringOption(TopLevelOptions.jsxPragmaFrag, options.jsxPragmaFrag, "React.Fragment");
const allExtensions = v.validateBooleanOption(TopLevelOptions.allExtensions, options.allExtensions, false);
const isTSX = v.validateBooleanOption(TopLevelOptions.isTSX, options.isTSX, false);
if (isTSX) {
v.invariant(allExtensions, "isTSX:true requires allExtensions:true");
}
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);
return {
allExtensions,
allowNamespaces,
disallowAmbiguousJSXLike,
isTSX,
jsxPragma,
jsxPragmaFrag,
onlyRemoveTypeImports,
optimizeConstEnums
};
}
var index = helperPluginUtils.declarePreset((api, opts) => {
api.assertVersion(7);
const {
allExtensions,
allowNamespaces,
disallowAmbiguousJSXLike,
isTSX,
jsxPragma,
jsxPragmaFrag,
onlyRemoveTypeImports,
optimizeConstEnums
} = normalizeOptions(opts);
const pluginOptions = (isTSX, disallowAmbiguousJSXLike) => ({
allowDeclareFields: opts.allowDeclareFields,
allowNamespaces,
disallowAmbiguousJSXLike,
isTSX,
jsxPragma,
jsxPragmaFrag,
onlyRemoveTypeImports,
optimizeConstEnums
});
return {
overrides: allExtensions ? [{
plugins: [[transformTypeScript__default.default, pluginOptions(isTSX, disallowAmbiguousJSXLike)]]
}] : [{
test: /\.ts$/,
plugins: [[transformTypeScript__default.default, pluginOptions(false, false)]]
}, {
test: /\.mts$/,
sourceType: "module",
plugins: [[transformTypeScript__default.default, pluginOptions(false, true)]]
}, {
test: /\.cts$/,
sourceType: "script",
plugins: [[transformTypeScript__default.default, pluginOptions(false, true)]]
}, {
test: /\.tsx$/,
plugins: [[transformTypeScript__default.default, pluginOptions(true, false)]]
}]
};
});
exports.default = index;
//# sourceMappingURL=index.js.map
|