@tamagui/babel-plugin-fully-specified 2.3.2 → 2.3.3-1782462397214

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tamagui/babel-plugin-fully-specified",
3
- "version": "2.3.2",
3
+ "version": "2.3.3-1782462397214",
4
4
  "gitHead": "a49cc7ea6b93ba384e77a4880ae48ac4a5635c14",
5
5
  "license": "MIT",
6
6
  "source": "src/index.ts",
@@ -47,9 +47,9 @@ const DEFAULT_OPTIONS = {
47
47
  esExtensions: ['.mjs'],
48
48
  convertProcessEnvToImportMetaEnv: !1,
49
49
  }
50
- function FullySpecified(api, rawOptions) {
50
+ function FullySpecified(api, rawOptions = {}) {
51
51
  api.assertVersion(7)
52
- const options = { ...DEFAULT_OPTIONS, ...rawOptions },
52
+ const options = normalizeOptions(rawOptions),
53
53
  importDeclarationVisitor = (path, state) => {
54
54
  const filePath = state.file.opts.filename
55
55
  if (!filePath) return
@@ -127,6 +127,21 @@ function FullySpecified(api, rawOptions) {
127
127
  },
128
128
  }
129
129
  }
130
+ function normalizeOptions(rawOptions) {
131
+ const options = { ...DEFAULT_OPTIONS, ...rawOptions }
132
+ return (
133
+ rawOptions.esExtensionDefault &&
134
+ !rawOptions.tryExtensions &&
135
+ rawOptions.esExtensionDefault !== DEFAULT_OPTIONS.esExtensionDefault &&
136
+ (options.tryExtensions = [
137
+ rawOptions.esExtensionDefault,
138
+ ...DEFAULT_OPTIONS.tryExtensions.filter(
139
+ (extension) => extension !== rawOptions.esExtensionDefault
140
+ ),
141
+ ]),
142
+ options
143
+ )
144
+ }
130
145
  function getFullySpecifiedModuleSpecifier(
131
146
  originalModuleSpecifier,
132
147
  { filePath, options }
@@ -60,12 +60,9 @@ const DEFAULT_OPTIONS = {
60
60
  esExtensions: ['.mjs'],
61
61
  convertProcessEnvToImportMetaEnv: !1,
62
62
  }
63
- function FullySpecified(api, rawOptions) {
63
+ function FullySpecified(api, rawOptions = {}) {
64
64
  api.assertVersion(7)
65
- const options = {
66
- ...DEFAULT_OPTIONS,
67
- ...rawOptions,
68
- },
65
+ const options = normalizeOptions(rawOptions),
69
66
  importDeclarationVisitor = (path, state) => {
70
67
  const filePath = state.file.opts.filename
71
68
  if (!filePath) return
@@ -143,6 +140,21 @@ function FullySpecified(api, rawOptions) {
143
140
  },
144
141
  }
145
142
  }
143
+ function normalizeOptions(rawOptions) {
144
+ const options = { ...DEFAULT_OPTIONS, ...rawOptions }
145
+ return (
146
+ rawOptions.esExtensionDefault &&
147
+ !rawOptions.tryExtensions &&
148
+ rawOptions.esExtensionDefault !== DEFAULT_OPTIONS.esExtensionDefault &&
149
+ (options.tryExtensions = [
150
+ rawOptions.esExtensionDefault,
151
+ ...DEFAULT_OPTIONS.tryExtensions.filter(
152
+ (extension) => extension !== rawOptions.esExtensionDefault
153
+ ),
154
+ ]),
155
+ options
156
+ )
157
+ }
146
158
  function getFullySpecifiedModuleSpecifier(
147
159
  originalModuleSpecifier,
148
160
  { filePath, options }
@@ -8,9 +8,9 @@ const DEFAULT_OPTIONS = {
8
8
  esExtensions: ['.mjs'],
9
9
  convertProcessEnvToImportMetaEnv: !1,
10
10
  }
11
- function FullySpecified(api, rawOptions) {
11
+ function FullySpecified(api, rawOptions = {}) {
12
12
  api.assertVersion(7)
13
- const options = { ...DEFAULT_OPTIONS, ...rawOptions },
13
+ const options = normalizeOptions(rawOptions),
14
14
  importDeclarationVisitor = (path, state) => {
15
15
  const filePath = state.file.opts.filename
16
16
  if (!filePath) return
@@ -88,6 +88,21 @@ function FullySpecified(api, rawOptions) {
88
88
  },
89
89
  }
90
90
  }
91
+ function normalizeOptions(rawOptions) {
92
+ const options = { ...DEFAULT_OPTIONS, ...rawOptions }
93
+ return (
94
+ rawOptions.esExtensionDefault &&
95
+ !rawOptions.tryExtensions &&
96
+ rawOptions.esExtensionDefault !== DEFAULT_OPTIONS.esExtensionDefault &&
97
+ (options.tryExtensions = [
98
+ rawOptions.esExtensionDefault,
99
+ ...DEFAULT_OPTIONS.tryExtensions.filter(
100
+ (extension) => extension !== rawOptions.esExtensionDefault
101
+ ),
102
+ ]),
103
+ options
104
+ )
105
+ }
91
106
  function getFullySpecifiedModuleSpecifier(
92
107
  originalModuleSpecifier,
93
108
  { filePath, options }
@@ -8,12 +8,9 @@ const DEFAULT_OPTIONS = {
8
8
  esExtensions: ['.mjs'],
9
9
  convertProcessEnvToImportMetaEnv: !1,
10
10
  }
11
- function FullySpecified(api, rawOptions) {
11
+ function FullySpecified(api, rawOptions = {}) {
12
12
  api.assertVersion(7)
13
- const options = {
14
- ...DEFAULT_OPTIONS,
15
- ...rawOptions,
16
- },
13
+ const options = normalizeOptions(rawOptions),
17
14
  importDeclarationVisitor = (path, state) => {
18
15
  const filePath = state.file.opts.filename
19
16
  if (!filePath) return
@@ -91,6 +88,21 @@ function FullySpecified(api, rawOptions) {
91
88
  },
92
89
  }
93
90
  }
91
+ function normalizeOptions(rawOptions) {
92
+ const options = { ...DEFAULT_OPTIONS, ...rawOptions }
93
+ return (
94
+ rawOptions.esExtensionDefault &&
95
+ !rawOptions.tryExtensions &&
96
+ rawOptions.esExtensionDefault !== DEFAULT_OPTIONS.esExtensionDefault &&
97
+ (options.tryExtensions = [
98
+ rawOptions.esExtensionDefault,
99
+ ...DEFAULT_OPTIONS.tryExtensions.filter(
100
+ (extension) => extension !== rawOptions.esExtensionDefault
101
+ ),
102
+ ]),
103
+ options
104
+ )
105
+ }
94
106
  function getFullySpecifiedModuleSpecifier(
95
107
  originalModuleSpecifier,
96
108
  { filePath, options }
package/src/index.ts CHANGED
@@ -28,15 +28,15 @@ const DEFAULT_OPTIONS = {
28
28
  tryExtensions: ['.js'],
29
29
  esExtensions: ['.mjs'],
30
30
  convertProcessEnvToImportMetaEnv: false,
31
- }
31
+ } satisfies FullySpecifiedOptions
32
32
 
33
33
  export default function FullySpecified(
34
34
  api: ConfigAPI,
35
- rawOptions: FullySpecifiedOptions
35
+ rawOptions: Partial<FullySpecifiedOptions> = {}
36
36
  ): PluginObj {
37
37
  api.assertVersion(7)
38
38
 
39
- const options = { ...DEFAULT_OPTIONS, ...rawOptions }
39
+ const options = normalizeOptions(rawOptions)
40
40
 
41
41
  /** For `import ... from '...'`. */
42
42
  const importDeclarationVisitor = (
@@ -159,6 +159,27 @@ export default function FullySpecified(
159
159
  }
160
160
  }
161
161
 
162
+ function normalizeOptions(
163
+ rawOptions: Partial<FullySpecifiedOptions>
164
+ ): FullySpecifiedOptions {
165
+ const options = { ...DEFAULT_OPTIONS, ...rawOptions }
166
+
167
+ if (
168
+ rawOptions.esExtensionDefault &&
169
+ !rawOptions.tryExtensions &&
170
+ rawOptions.esExtensionDefault !== DEFAULT_OPTIONS.esExtensionDefault
171
+ ) {
172
+ options.tryExtensions = [
173
+ rawOptions.esExtensionDefault,
174
+ ...DEFAULT_OPTIONS.tryExtensions.filter(
175
+ (extension) => extension !== rawOptions.esExtensionDefault
176
+ ),
177
+ ]
178
+ }
179
+
180
+ return options
181
+ }
182
+
162
183
  /**
163
184
  * Returns a fully specified [module specifier](https://tc39.es/ecma262/multipage/ecmascript-language-scripts-and-modules.html#prod-ModuleSpecifier) (or `null` if it can't be determined or shouldn't be transformed).
164
185
  */