UNPKG

2.05 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5var helperPluginUtils = require('@babel/helper-plugin-utils');
6var transformTypeScript = require('@babel/plugin-transform-typescript');
7var helperValidatorOption = require('@babel/helper-validator-option');
8
9function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
11var transformTypeScript__default = /*#__PURE__*/_interopDefaultLegacy(transformTypeScript);
12
13const v = new helperValidatorOption.OptionValidator("@babel/preset-typescript");
14function normalizeOptions(options = {}) {
15 let {
16 allowNamespaces = true,
17 jsxPragma,
18 onlyRemoveTypeImports
19 } = options;
20 const jsxPragmaFrag = v.validateStringOption("jsxPragmaFrag", options.jsxPragmaFrag, "React.Fragment");
21 const allExtensions = v.validateBooleanOption("allExtensions", options.allExtensions, false);
22 const isTSX = v.validateBooleanOption("isTSX", options.isTSX, false);
23
24 if (isTSX) {
25 v.invariant(allExtensions, "isTSX:true requires allExtensions:true");
26 }
27
28 return {
29 allExtensions,
30 allowNamespaces,
31 isTSX,
32 jsxPragma,
33 jsxPragmaFrag,
34 onlyRemoveTypeImports
35 };
36}
37
38var index = helperPluginUtils.declare((api, opts) => {
39 api.assertVersion(7);
40 const {
41 allExtensions,
42 allowNamespaces,
43 isTSX,
44 jsxPragma,
45 jsxPragmaFrag,
46 onlyRemoveTypeImports
47 } = normalizeOptions(opts);
48
49 const pluginOptions = isTSX => ({
50 allowDeclareFields: opts.allowDeclareFields,
51 allowNamespaces,
52 isTSX,
53 jsxPragma,
54 jsxPragmaFrag,
55 onlyRemoveTypeImports
56 });
57
58 return {
59 overrides: allExtensions ? [{
60 plugins: [[transformTypeScript__default['default'], pluginOptions(isTSX)]]
61 }] : [{
62 test: /\.ts$/,
63 plugins: [[transformTypeScript__default['default'], pluginOptions(false)]]
64 }, {
65 test: /\.tsx$/,
66 plugins: [[transformTypeScript__default['default'], pluginOptions(true)]]
67 }]
68 };
69});
70
71exports.default = index;
72//# sourceMappingURL=index.js.map