@atlaspack/transformer-js 3.2.6 → 3.3.0
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/lib/JSTransformer.js +13 -12
- package/package.json +6 -6
- package/src/JSTransformer.js +25 -21
package/lib/JSTransformer.js
CHANGED
|
@@ -160,24 +160,25 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
160
160
|
config,
|
|
161
161
|
options
|
|
162
162
|
}) {
|
|
163
|
-
let
|
|
163
|
+
let packageJson = await config.getPackage();
|
|
164
164
|
let isJSX, pragma, pragmaFrag, jsxImportSource, automaticJSXRuntime, reactRefresh, decorators, useDefineForClassFields;
|
|
165
165
|
if (config.isSource) {
|
|
166
|
-
var
|
|
166
|
+
var _packageJson$dependen2, _packageJson$devDepen2, _packageJson$peerDepe2, _await$config$getConf;
|
|
167
167
|
let reactLib;
|
|
168
|
-
if (
|
|
168
|
+
if (packageJson !== null && packageJson !== void 0 && packageJson.alias && packageJson.alias['react']) {
|
|
169
169
|
// e.g.: `{ alias: { "react": "preact/compat" } }`
|
|
170
170
|
reactLib = 'react';
|
|
171
171
|
} else {
|
|
172
172
|
// Find a dependency that we can map to a JSX pragma
|
|
173
173
|
reactLib = Object.keys(JSX_PRAGMA).find(libName => {
|
|
174
|
-
var
|
|
175
|
-
return (
|
|
174
|
+
var _packageJson$dependen, _packageJson$devDepen, _packageJson$peerDepe;
|
|
175
|
+
return (packageJson === null || packageJson === void 0 || (_packageJson$dependen = packageJson.dependencies) === null || _packageJson$dependen === void 0 ? void 0 : _packageJson$dependen[libName]) || (packageJson === null || packageJson === void 0 || (_packageJson$devDepen = packageJson.devDependencies) === null || _packageJson$devDepen === void 0 ? void 0 : _packageJson$devDepen[libName]) || (packageJson === null || packageJson === void 0 || (_packageJson$peerDepe = packageJson.peerDependencies) === null || _packageJson$peerDepe === void 0 ? void 0 : _packageJson$peerDepe[libName]);
|
|
176
176
|
});
|
|
177
177
|
}
|
|
178
|
-
reactRefresh = options.hmrOptions && options.mode === 'development' && Boolean((
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
reactRefresh = options.hmrOptions && options.mode === 'development' && Boolean((packageJson === null || packageJson === void 0 || (_packageJson$dependen2 = packageJson.dependencies) === null || _packageJson$dependen2 === void 0 ? void 0 : _packageJson$dependen2.react) || (packageJson === null || packageJson === void 0 || (_packageJson$devDepen2 = packageJson.devDependencies) === null || _packageJson$devDepen2 === void 0 ? void 0 : _packageJson$devDepen2.react) || (packageJson === null || packageJson === void 0 || (_packageJson$peerDepe2 = packageJson.peerDependencies) === null || _packageJson$peerDepe2 === void 0 ? void 0 : _packageJson$peerDepe2.react));
|
|
179
|
+
const compilerOptions = (_await$config$getConf = await config.getConfigFrom(options.projectRoot + '/index', ['tsconfig.json', 'jsconfig.json'], {
|
|
180
|
+
readTracking: (0, _featureFlags().getFeatureFlag)('granularTsConfigInvalidation')
|
|
181
|
+
})) === null || _await$config$getConf === void 0 || (_await$config$getConf = _await$config$getConf.contents) === null || _await$config$getConf === void 0 ? void 0 : _await$config$getConf.compilerOptions;
|
|
181
182
|
|
|
182
183
|
// Use explicitly defined JSX options in tsconfig.json over inferred values from dependencies.
|
|
183
184
|
pragma = (compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsxFactory) || (reactLib ? JSX_PRAGMA[reactLib].pragma : undefined);
|
|
@@ -186,10 +187,10 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
186
187
|
jsxImportSource = compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsxImportSource;
|
|
187
188
|
automaticJSXRuntime = true;
|
|
188
189
|
} else if (reactLib) {
|
|
189
|
-
var _JSX_PRAGMA$effective,
|
|
190
|
-
let effectiveReactLib =
|
|
190
|
+
var _JSX_PRAGMA$effective, _packageJson$dependen3, _packageJson$devDepen3, _packageJson$peerDepe3, _semver$minVersion;
|
|
191
|
+
let effectiveReactLib = packageJson !== null && packageJson !== void 0 && packageJson.alias && packageJson.alias['react'] === 'preact/compat' ? 'preact' : reactLib;
|
|
191
192
|
let automaticVersion = (_JSX_PRAGMA$effective = JSX_PRAGMA[effectiveReactLib]) === null || _JSX_PRAGMA$effective === void 0 ? void 0 : _JSX_PRAGMA$effective.automatic;
|
|
192
|
-
let reactLibVersion = (
|
|
193
|
+
let reactLibVersion = (packageJson === null || packageJson === void 0 || (_packageJson$dependen3 = packageJson.dependencies) === null || _packageJson$dependen3 === void 0 ? void 0 : _packageJson$dependen3[effectiveReactLib]) || (packageJson === null || packageJson === void 0 || (_packageJson$devDepen3 = packageJson.devDependencies) === null || _packageJson$devDepen3 === void 0 ? void 0 : _packageJson$devDepen3[effectiveReactLib]) || (packageJson === null || packageJson === void 0 || (_packageJson$peerDepe3 = packageJson.peerDependencies) === null || _packageJson$peerDepe3 === void 0 ? void 0 : _packageJson$peerDepe3[effectiveReactLib]);
|
|
193
194
|
reactLibVersion = reactLibVersion ? _semver().default.validRange(reactLibVersion) : null;
|
|
194
195
|
let minReactLibVersion = reactLibVersion !== null && reactLibVersion !== '*' ? (_semver$minVersion = _semver().default.minVersion(reactLibVersion)) === null || _semver$minVersion === void 0 ? void 0 : _semver$minVersion.toString() : null;
|
|
195
196
|
automaticJSXRuntime = automaticVersion && !(compilerOptions !== null && compilerOptions !== void 0 && compilerOptions.jsxFactory) && minReactLibVersion != null && _semver().default.satisfies(minReactLibVersion, automaticVersion, {
|
|
@@ -215,7 +216,7 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
215
216
|
|
|
216
217
|
// Check if we should ignore fs calls
|
|
217
218
|
// See https://github.com/defunctzombie/node-browser-resolve#skip
|
|
218
|
-
let ignoreFS =
|
|
219
|
+
let ignoreFS = packageJson && packageJson.browser && typeof packageJson.browser === 'object' && packageJson.browser.fs === false;
|
|
219
220
|
let conf = await config.getConfigFrom(options.projectRoot + '/index', [], {
|
|
220
221
|
packageKey: '@atlaspack/transformer-js'
|
|
221
222
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaspack/transformer-js",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0",
|
|
4
4
|
"license": "(MIT OR Apache-2.0)",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -23,12 +23,12 @@
|
|
|
23
23
|
],
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@atlaspack/diagnostic": "2.14.1",
|
|
26
|
-
"@atlaspack/feature-flags": "2.
|
|
27
|
-
"@atlaspack/plugin": "2.14.
|
|
28
|
-
"@atlaspack/rust": "3.3.
|
|
26
|
+
"@atlaspack/feature-flags": "2.16.0",
|
|
27
|
+
"@atlaspack/plugin": "2.14.10",
|
|
28
|
+
"@atlaspack/rust": "3.3.5",
|
|
29
29
|
"@parcel/source-map": "^2.1.1",
|
|
30
|
-
"@atlaspack/utils": "2.14.
|
|
31
|
-
"@atlaspack/workers": "2.14.
|
|
30
|
+
"@atlaspack/utils": "2.14.10",
|
|
31
|
+
"@atlaspack/workers": "2.14.10",
|
|
32
32
|
"@swc/helpers": "^0.5.15",
|
|
33
33
|
"browserslist": "^4.6.6",
|
|
34
34
|
"nullthrows": "^1.1.1",
|
package/src/JSTransformer.js
CHANGED
|
@@ -173,7 +173,7 @@ type MacroContext = {|
|
|
|
173
173
|
|
|
174
174
|
export default (new Transformer({
|
|
175
175
|
async loadConfig({config, options}) {
|
|
176
|
-
let
|
|
176
|
+
let packageJson = await config.getPackage();
|
|
177
177
|
let isJSX,
|
|
178
178
|
pragma,
|
|
179
179
|
pragmaFrag,
|
|
@@ -184,16 +184,16 @@ export default (new Transformer({
|
|
|
184
184
|
useDefineForClassFields;
|
|
185
185
|
if (config.isSource) {
|
|
186
186
|
let reactLib;
|
|
187
|
-
if (
|
|
187
|
+
if (packageJson?.alias && packageJson.alias['react']) {
|
|
188
188
|
// e.g.: `{ alias: { "react": "preact/compat" } }`
|
|
189
189
|
reactLib = 'react';
|
|
190
190
|
} else {
|
|
191
191
|
// Find a dependency that we can map to a JSX pragma
|
|
192
192
|
reactLib = Object.keys(JSX_PRAGMA).find(
|
|
193
193
|
(libName) =>
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
194
|
+
packageJson?.dependencies?.[libName] ||
|
|
195
|
+
packageJson?.devDependencies?.[libName] ||
|
|
196
|
+
packageJson?.peerDependencies?.[libName],
|
|
197
197
|
);
|
|
198
198
|
}
|
|
199
199
|
|
|
@@ -201,16 +201,20 @@ export default (new Transformer({
|
|
|
201
201
|
options.hmrOptions &&
|
|
202
202
|
options.mode === 'development' &&
|
|
203
203
|
Boolean(
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
204
|
+
packageJson?.dependencies?.react ||
|
|
205
|
+
packageJson?.devDependencies?.react ||
|
|
206
|
+
packageJson?.peerDependencies?.react,
|
|
207
207
|
);
|
|
208
208
|
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
209
|
+
const compilerOptions: TSConfig['compilerOptions'] = (
|
|
210
|
+
await config.getConfigFrom<TSConfig>(
|
|
211
|
+
options.projectRoot + '/index',
|
|
212
|
+
['tsconfig.json', 'jsconfig.json'],
|
|
213
|
+
{
|
|
214
|
+
readTracking: getFeatureFlag('granularTsConfigInvalidation'),
|
|
215
|
+
},
|
|
216
|
+
)
|
|
217
|
+
)?.contents?.compilerOptions;
|
|
214
218
|
|
|
215
219
|
// Use explicitly defined JSX options in tsconfig.json over inferred values from dependencies.
|
|
216
220
|
pragma =
|
|
@@ -229,14 +233,14 @@ export default (new Transformer({
|
|
|
229
233
|
automaticJSXRuntime = true;
|
|
230
234
|
} else if (reactLib) {
|
|
231
235
|
let effectiveReactLib =
|
|
232
|
-
|
|
236
|
+
packageJson?.alias && packageJson.alias['react'] === 'preact/compat'
|
|
233
237
|
? 'preact'
|
|
234
238
|
: reactLib;
|
|
235
239
|
let automaticVersion = JSX_PRAGMA[effectiveReactLib]?.automatic;
|
|
236
240
|
let reactLibVersion =
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
241
|
+
packageJson?.dependencies?.[effectiveReactLib] ||
|
|
242
|
+
packageJson?.devDependencies?.[effectiveReactLib] ||
|
|
243
|
+
packageJson?.peerDependencies?.[effectiveReactLib];
|
|
240
244
|
reactLibVersion = reactLibVersion
|
|
241
245
|
? semver.validRange(reactLibVersion)
|
|
242
246
|
: null;
|
|
@@ -278,10 +282,10 @@ export default (new Transformer({
|
|
|
278
282
|
// Check if we should ignore fs calls
|
|
279
283
|
// See https://github.com/defunctzombie/node-browser-resolve#skip
|
|
280
284
|
let ignoreFS =
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
typeof
|
|
284
|
-
|
|
285
|
+
packageJson &&
|
|
286
|
+
packageJson.browser &&
|
|
287
|
+
typeof packageJson.browser === 'object' &&
|
|
288
|
+
packageJson.browser.fs === false;
|
|
285
289
|
|
|
286
290
|
let conf = await config.getConfigFrom(options.projectRoot + '/index', [], {
|
|
287
291
|
packageKey: '@atlaspack/transformer-js',
|