{"version":3,"file":"index.js","sources":["../src/normalize-options.ts","../src/index.ts"],"sourcesContent":["import { OptionValidator } from \"@babel/helper-validator-option\";\nconst v = new OptionValidator(\"@babel/preset-typescript\");\n\nexport interface Options {\n allExtensions?: boolean;\n allowDeclareFields?: boolean;\n allowNamespaces?: boolean;\n disallowAmbiguousJSXLike?: boolean;\n isTSX?: boolean;\n jsxPragma?: string;\n jsxPragmaFrag?: string;\n onlyRemoveTypeImports?: boolean;\n optimizeConstEnums?: boolean;\n}\n\nexport default function normalizeOptions(options: Options = {}) {\n let { allowNamespaces = true, jsxPragma, onlyRemoveTypeImports } = options;\n\n const TopLevelOptions = {\n allExtensions: \"allExtensions\",\n allowNamespaces: \"allowNamespaces\",\n disallowAmbiguousJSXLike: \"disallowAmbiguousJSXLike\",\n isTSX: \"isTSX\",\n jsxPragma: \"jsxPragma\",\n jsxPragmaFrag: \"jsxPragmaFrag\",\n onlyRemoveTypeImports: \"onlyRemoveTypeImports\",\n optimizeConstEnums: \"optimizeConstEnums\",\n };\n\n if (process.env.BABEL_8_BREAKING) {\n v.validateTopLevelOptions(options, TopLevelOptions);\n allowNamespaces = v.validateBooleanOption(\n TopLevelOptions.allowNamespaces,\n options.allowNamespaces,\n true,\n );\n jsxPragma = v.validateStringOption(\n TopLevelOptions.jsxPragma,\n options.jsxPragma,\n \"React\",\n );\n onlyRemoveTypeImports = v.validateBooleanOption(\n TopLevelOptions.onlyRemoveTypeImports,\n options.onlyRemoveTypeImports,\n true,\n );\n }\n\n const jsxPragmaFrag = v.validateStringOption(\n TopLevelOptions.jsxPragmaFrag,\n options.jsxPragmaFrag,\n \"React.Fragment\",\n );\n\n const allExtensions = v.validateBooleanOption(\n TopLevelOptions.allExtensions,\n options.allExtensions,\n false,\n );\n\n const isTSX = v.validateBooleanOption(\n TopLevelOptions.isTSX,\n options.isTSX,\n false,\n );\n if (isTSX) {\n v.invariant(allExtensions, \"isTSX:true requires allExtensions:true\");\n }\n\n const disallowAmbiguousJSXLike = v.validateBooleanOption(\n TopLevelOptions.disallowAmbiguousJSXLike,\n options.disallowAmbiguousJSXLike,\n false,\n );\n if (disallowAmbiguousJSXLike) {\n v.invariant(\n allExtensions,\n \"disallowAmbiguousJSXLike:true requires allExtensions:true\",\n );\n }\n\n const optimizeConstEnums = v.validateBooleanOption(\n TopLevelOptions.optimizeConstEnums,\n options.optimizeConstEnums,\n false,\n );\n\n return {\n allExtensions,\n allowNamespaces,\n disallowAmbiguousJSXLike,\n isTSX,\n jsxPragma,\n jsxPragmaFrag,\n onlyRemoveTypeImports,\n optimizeConstEnums,\n };\n}\n","import { declarePreset } from \"@babel/helper-plugin-utils\";\nimport transformTypeScript from \"@babel/plugin-transform-typescript\";\nimport normalizeOptions from \"./normalize-options\";\nimport type { Options } from \"./normalize-options\";\n\nexport default declarePreset((api, opts: Options) => {\n api.assertVersion(7);\n\n const {\n allExtensions,\n allowNamespaces,\n disallowAmbiguousJSXLike,\n isTSX,\n jsxPragma,\n jsxPragmaFrag,\n onlyRemoveTypeImports,\n optimizeConstEnums,\n } = normalizeOptions(opts);\n\n const pluginOptions = process.env.BABEL_8_BREAKING\n ? (isTSX: boolean, disallowAmbiguousJSXLike: boolean) => ({\n allowNamespaces,\n disallowAmbiguousJSXLike,\n isTSX,\n jsxPragma,\n jsxPragmaFrag,\n onlyRemoveTypeImports,\n optimizeConstEnums,\n })\n : (isTSX: boolean, disallowAmbiguousJSXLike: boolean) => ({\n allowDeclareFields: opts.allowDeclareFields,\n allowNamespaces,\n disallowAmbiguousJSXLike,\n isTSX,\n jsxPragma,\n jsxPragmaFrag,\n onlyRemoveTypeImports,\n optimizeConstEnums,\n });\n\n return {\n overrides: allExtensions\n ? [\n {\n plugins: [\n [\n transformTypeScript,\n pluginOptions(isTSX, disallowAmbiguousJSXLike),\n ],\n ],\n },\n ]\n : // Only set 'test' if explicitly requested, since it requires that\n // Babel is being called`\n [\n {\n test: /\\.ts$/,\n plugins: [[transformTypeScript, pluginOptions(false, false)]],\n },\n {\n test: /\\.mts$/,\n sourceType: \"module\",\n plugins: [[transformTypeScript, pluginOptions(false, true)]],\n },\n {\n test: /\\.cts$/,\n sourceType: \"script\",\n plugins: [[transformTypeScript, pluginOptions(false, true)]],\n },\n {\n test: /\\.tsx$/,\n // disallowAmbiguousJSXLike is a no-op when parsing TSX, since it's\n // always disallowed.\n plugins: [[transformTypeScript, pluginOptions(true, false)]],\n },\n ],\n };\n});\n"],"names":["v","OptionValidator","normalizeOptions","options","allowNamespaces","jsxPragma","onlyRemoveTypeImports","TopLevelOptions","allExtensions","disallowAmbiguousJSXLike","isTSX","jsxPragmaFrag","optimizeConstEnums","validateStringOption","validateBooleanOption","invariant","declarePreset","api","opts","assertVersion","pluginOptions","allowDeclareFields","overrides","plugins","transformTypeScript","test","sourceType"],"mappings":"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"}