@atlaspack/transformer-js 3.2.3-canary.45 → 3.2.3-canary.451
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 +351 -81
- package/lib/types/JSTransformer.d.ts +14 -0
- package/package.json +17 -14
- package/src/{JSTransformer.js → JSTransformer.ts} +547 -170
package/lib/JSTransformer.js
CHANGED
|
@@ -4,8 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = void 0;
|
|
7
|
+
exports.loadCompiledCssInJsConfig = loadCompiledCssInJsConfig;
|
|
8
|
+
exports.loadTokensConfig = loadTokensConfig;
|
|
9
|
+
function _buildCache() {
|
|
10
|
+
const data = require("@atlaspack/build-cache");
|
|
11
|
+
_buildCache = function () {
|
|
12
|
+
return data;
|
|
13
|
+
};
|
|
14
|
+
return data;
|
|
15
|
+
}
|
|
7
16
|
function _sourceMap() {
|
|
8
|
-
const data = _interopRequireDefault(require("@
|
|
17
|
+
const data = _interopRequireDefault(require("@atlaspack/source-map"));
|
|
9
18
|
_sourceMap = function () {
|
|
10
19
|
return data;
|
|
11
20
|
};
|
|
@@ -25,6 +34,13 @@ function _rust() {
|
|
|
25
34
|
};
|
|
26
35
|
return data;
|
|
27
36
|
}
|
|
37
|
+
function _assert() {
|
|
38
|
+
const data = _interopRequireDefault(require("assert"));
|
|
39
|
+
_assert = function () {
|
|
40
|
+
return data;
|
|
41
|
+
};
|
|
42
|
+
return data;
|
|
43
|
+
}
|
|
28
44
|
function _browserslist() {
|
|
29
45
|
const data = _interopRequireDefault(require("browserslist"));
|
|
30
46
|
_browserslist = function () {
|
|
@@ -68,6 +84,13 @@ function _featureFlags() {
|
|
|
68
84
|
};
|
|
69
85
|
return data;
|
|
70
86
|
}
|
|
87
|
+
function _path() {
|
|
88
|
+
const data = _interopRequireWildcard(require("path"));
|
|
89
|
+
_path = function () {
|
|
90
|
+
return data;
|
|
91
|
+
};
|
|
92
|
+
return data;
|
|
93
|
+
}
|
|
71
94
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
72
95
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
73
96
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -130,15 +153,25 @@ const CONFIG_SCHEMA = {
|
|
|
130
153
|
}
|
|
131
154
|
}]
|
|
132
155
|
},
|
|
156
|
+
addReactDisplayName: {
|
|
157
|
+
type: 'boolean'
|
|
158
|
+
},
|
|
133
159
|
magicComments: {
|
|
134
160
|
type: 'boolean'
|
|
135
161
|
},
|
|
136
162
|
unstable_inlineConstants: {
|
|
137
163
|
type: 'boolean'
|
|
164
|
+
},
|
|
165
|
+
jsx: {
|
|
166
|
+
type: 'object'
|
|
138
167
|
}
|
|
139
168
|
},
|
|
140
169
|
additionalProperties: false
|
|
141
170
|
};
|
|
171
|
+
|
|
172
|
+
// Mirrors the CONFIG_SCHEMA
|
|
173
|
+
|
|
174
|
+
const configCache = (0, _buildCache().createBuildCache)();
|
|
142
175
|
const SCRIPT_ERRORS = {
|
|
143
176
|
browser: {
|
|
144
177
|
message: 'Browser scripts cannot have imports or exports.',
|
|
@@ -155,51 +188,165 @@ const SCRIPT_ERRORS = {
|
|
|
155
188
|
};
|
|
156
189
|
|
|
157
190
|
// NOTE: Make sure this is in sync with the TypeScript definition in the @atlaspack/macros package.
|
|
191
|
+
|
|
192
|
+
const TOKENS_CONFIG_SCHEMA = {
|
|
193
|
+
type: 'object',
|
|
194
|
+
properties: {
|
|
195
|
+
shouldUseAutoFallback: {
|
|
196
|
+
type: 'boolean'
|
|
197
|
+
},
|
|
198
|
+
shouldForceAutoFallback: {
|
|
199
|
+
type: 'boolean'
|
|
200
|
+
},
|
|
201
|
+
forceAutoFallbackExemptions: {
|
|
202
|
+
type: 'array',
|
|
203
|
+
items: {
|
|
204
|
+
type: 'string'
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
defaultTheme: {
|
|
208
|
+
type: 'string',
|
|
209
|
+
enum: ['light', 'legacy-light']
|
|
210
|
+
},
|
|
211
|
+
tokenDataPath: {
|
|
212
|
+
type: 'string'
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
additionalProperties: false
|
|
216
|
+
};
|
|
217
|
+
async function legacyDetemineJsxConfig(config, options) {
|
|
218
|
+
let packageJson = await config.getPackage();
|
|
219
|
+
let isJSX, jsxPragma, jsxPragmaFrag, jsxImportSource, automaticJSXRuntime, reactRefresh;
|
|
220
|
+
if (config.isSource) {
|
|
221
|
+
var _packageJson$dependen2, _packageJson$devDepen2, _packageJson$peerDepe2, _await$config$getConf;
|
|
222
|
+
let reactLib;
|
|
223
|
+
if (packageJson !== null && packageJson !== void 0 && packageJson.alias && packageJson.alias['react']) {
|
|
224
|
+
// e.g.: `{ alias: { "react": "preact/compat" } }`
|
|
225
|
+
reactLib = 'react';
|
|
226
|
+
} else {
|
|
227
|
+
// Find a dependency that we can map to a JSX pragma
|
|
228
|
+
reactLib = Object.keys(JSX_PRAGMA).find(libName => {
|
|
229
|
+
var _packageJson$dependen, _packageJson$devDepen, _packageJson$peerDepe;
|
|
230
|
+
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]);
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
reactRefresh = 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));
|
|
234
|
+
const compilerOptions = (_await$config$getConf = await config.getConfigFrom(options.projectRoot + '/index', ['tsconfig.json', 'jsconfig.json'], {
|
|
235
|
+
readTracking: true
|
|
236
|
+
})) === 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;
|
|
237
|
+
|
|
238
|
+
// Use explicitly defined JSX options in tsconfig.json over inferred values from dependencies.
|
|
239
|
+
jsxPragma = (compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsxFactory) || (
|
|
240
|
+
// @ts-expect-error TS7053
|
|
241
|
+
reactLib ? JSX_PRAGMA[reactLib].pragma : undefined);
|
|
242
|
+
jsxPragmaFrag = (compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsxFragmentFactory) || (
|
|
243
|
+
// @ts-expect-error TS7053
|
|
244
|
+
reactLib ? JSX_PRAGMA[reactLib].pragmaFrag : undefined);
|
|
245
|
+
if ((compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsx) === 'react-jsx' || (compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsx) === 'react-jsxdev' || compilerOptions !== null && compilerOptions !== void 0 && compilerOptions.jsxImportSource) {
|
|
246
|
+
jsxImportSource = compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsxImportSource;
|
|
247
|
+
automaticJSXRuntime = true;
|
|
248
|
+
} else if (reactLib) {
|
|
249
|
+
var _JSX_PRAGMA$effective, _packageJson$dependen3, _packageJson$devDepen3, _packageJson$peerDepe3, _semver$minVersion;
|
|
250
|
+
let effectiveReactLib = packageJson !== null && packageJson !== void 0 && packageJson.alias && packageJson.alias['react'] === 'preact/compat' ? 'preact' : reactLib;
|
|
251
|
+
// @ts-expect-error TS7053
|
|
252
|
+
let automaticVersion = (_JSX_PRAGMA$effective = JSX_PRAGMA[effectiveReactLib]) === null || _JSX_PRAGMA$effective === void 0 ? void 0 : _JSX_PRAGMA$effective.automatic;
|
|
253
|
+
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]);
|
|
254
|
+
// @ts-expect-error TS2322
|
|
255
|
+
reactLibVersion = reactLibVersion ? _semver().default.validRange(reactLibVersion) : null;
|
|
256
|
+
let minReactLibVersion = reactLibVersion !== null && reactLibVersion !== '*' ? // @ts-expect-error TS2345
|
|
257
|
+
(_semver$minVersion = _semver().default.minVersion(reactLibVersion)) === null || _semver$minVersion === void 0 ? void 0 : _semver$minVersion.toString() : null;
|
|
258
|
+
automaticJSXRuntime = automaticVersion && !(compilerOptions !== null && compilerOptions !== void 0 && compilerOptions.jsxFactory) && minReactLibVersion != null && _semver().default.satisfies(minReactLibVersion, automaticVersion, {
|
|
259
|
+
includePrerelease: true
|
|
260
|
+
});
|
|
261
|
+
if (automaticJSXRuntime) {
|
|
262
|
+
jsxImportSource = reactLib;
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
isJSX = Boolean((compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsx) || jsxPragma);
|
|
266
|
+
}
|
|
267
|
+
return {
|
|
268
|
+
isJSX,
|
|
269
|
+
jsxPragma,
|
|
270
|
+
jsxPragmaFrag,
|
|
271
|
+
jsxImportSource,
|
|
272
|
+
automaticJSXRuntime,
|
|
273
|
+
reactRefresh
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
async function loadTokensConfig(config, options) {
|
|
277
|
+
const conf = await config.getConfigFrom(options.projectRoot + '/index', [], {
|
|
278
|
+
packageKey: '@atlaspack/transformer-tokens'
|
|
279
|
+
});
|
|
280
|
+
if (conf && conf.contents) {
|
|
281
|
+
_utils().validateSchema.diagnostic(TOKENS_CONFIG_SCHEMA, {
|
|
282
|
+
data: conf.contents,
|
|
283
|
+
source: () => options.inputFS.readFileSync(conf.filePath, 'utf8'),
|
|
284
|
+
filePath: conf.filePath,
|
|
285
|
+
prependKey: `/${(0, _diagnostic().encodeJSONKeyComponent)('@atlaspack/transformer-tokens')}`
|
|
286
|
+
}, '@atlaspack/transformer-tokens', 'Invalid config for @atlaspack/transformer-tokens');
|
|
287
|
+
|
|
288
|
+
// @ts-expect-error TS2339
|
|
289
|
+
const tokensConfig = conf.contents;
|
|
290
|
+
let resolvedConfig = {
|
|
291
|
+
shouldUseAutoFallback: tokensConfig.shouldUseAutoFallback ?? true,
|
|
292
|
+
shouldForceAutoFallback: tokensConfig.shouldForceAutoFallback ?? true,
|
|
293
|
+
forceAutoFallbackExemptions: tokensConfig.forceAutoFallbackExemptions ?? [],
|
|
294
|
+
defaultTheme: tokensConfig.defaultTheme ?? 'light',
|
|
295
|
+
tokenDataPath: _path().default.join(options.projectRoot, tokensConfig.tokenDataPath)
|
|
296
|
+
};
|
|
297
|
+
return resolvedConfig;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
async function loadCompiledCssInJsConfig(config, options) {
|
|
301
|
+
const DEFAULT_IMPORT_SOURCES = ['@compiled/react', '@atlaskit/css'];
|
|
302
|
+
const conf = await config.getConfigFrom((0, _path().join)(options.projectRoot, 'index'), ['.compiledcssrc', '.compiledcssrc.json'], {
|
|
303
|
+
packageKey: '@atlaspack/transformer-compiled-css-in-js'
|
|
304
|
+
});
|
|
305
|
+
const resolvedBrowserslistEnv = (conf === null || conf === void 0 ? void 0 : conf.contents.browserslistEnv) ?? process.env.BROWSERSLIST_ENV ?? process.env.NODE_ENV ?? 'production';
|
|
306
|
+
const contents = {
|
|
307
|
+
...(conf === null || conf === void 0 ? void 0 : conf.contents),
|
|
308
|
+
importSources: [...DEFAULT_IMPORT_SOURCES, ...((conf === null || conf === void 0 ? void 0 : conf.contents.importSources) ?? [])],
|
|
309
|
+
extract: (conf === null || conf === void 0 ? void 0 : conf.contents.extract) && options.mode !== 'development',
|
|
310
|
+
// Use explicit env or process env (BROWSERSLIST_ENV/NODE_ENV). Default to "production"
|
|
311
|
+
// to match browserslist/caniuse defaults and the legacy Babel plugin behavior.
|
|
312
|
+
browserslistEnv: resolvedBrowserslistEnv
|
|
313
|
+
};
|
|
314
|
+
return contents;
|
|
315
|
+
}
|
|
158
316
|
var _default = exports.default = new (_plugin().Transformer)({
|
|
159
317
|
async loadConfig({
|
|
160
318
|
config,
|
|
161
319
|
options
|
|
162
320
|
}) {
|
|
163
|
-
|
|
164
|
-
let
|
|
321
|
+
var _conf$contents;
|
|
322
|
+
let conf = await config.getConfigFrom(options.projectRoot + '/index', [], {
|
|
323
|
+
packageKey: '@atlaspack/transformer-js'
|
|
324
|
+
});
|
|
325
|
+
if (conf && conf.contents) {
|
|
326
|
+
_utils().validateSchema.diagnostic(CONFIG_SCHEMA, {
|
|
327
|
+
data: conf.contents,
|
|
328
|
+
source: () => options.inputFS.readFileSync(conf.filePath, 'utf8'),
|
|
329
|
+
filePath: conf.filePath,
|
|
330
|
+
prependKey: `/${(0, _diagnostic().encodeJSONKeyComponent)('@atlaspack/transformer-js')}`
|
|
331
|
+
},
|
|
332
|
+
// FIXME
|
|
333
|
+
'@atlaspack/transformer-js', 'Invalid config for @atlaspack/transformer-js');
|
|
334
|
+
}
|
|
335
|
+
let packageJson = await config.getPackage();
|
|
336
|
+
let decorators, useDefineForClassFields;
|
|
337
|
+
let {
|
|
338
|
+
isJSX,
|
|
339
|
+
jsxPragma,
|
|
340
|
+
jsxPragmaFrag,
|
|
341
|
+
jsxImportSource,
|
|
342
|
+
automaticJSXRuntime,
|
|
343
|
+
reactRefresh
|
|
344
|
+
} = options.featureFlags.newJsxConfig ? (0, _rust().determineJsxConfiguration)(config.searchPath, config.isSource, conf === null || conf === void 0 || (_conf$contents = conf.contents) === null || _conf$contents === void 0 ? void 0 : _conf$contents.jsx, options.projectRoot) : await legacyDetemineJsxConfig(config, options);
|
|
165
345
|
if (config.isSource) {
|
|
166
|
-
var
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
reactLib = 'react';
|
|
171
|
-
} else {
|
|
172
|
-
// Find a dependency that we can map to a JSX pragma
|
|
173
|
-
reactLib = Object.keys(JSX_PRAGMA).find(libName => {
|
|
174
|
-
var _pkg$dependencies, _pkg$devDependencies, _pkg$peerDependencies;
|
|
175
|
-
return (pkg === null || pkg === void 0 || (_pkg$dependencies = pkg.dependencies) === null || _pkg$dependencies === void 0 ? void 0 : _pkg$dependencies[libName]) || (pkg === null || pkg === void 0 || (_pkg$devDependencies = pkg.devDependencies) === null || _pkg$devDependencies === void 0 ? void 0 : _pkg$devDependencies[libName]) || (pkg === null || pkg === void 0 || (_pkg$peerDependencies = pkg.peerDependencies) === null || _pkg$peerDependencies === void 0 ? void 0 : _pkg$peerDependencies[libName]);
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
reactRefresh = options.hmrOptions && options.mode === 'development' && Boolean((pkg === null || pkg === void 0 || (_pkg$dependencies2 = pkg.dependencies) === null || _pkg$dependencies2 === void 0 ? void 0 : _pkg$dependencies2.react) || (pkg === null || pkg === void 0 || (_pkg$devDependencies2 = pkg.devDependencies) === null || _pkg$devDependencies2 === void 0 ? void 0 : _pkg$devDependencies2.react) || (pkg === null || pkg === void 0 || (_pkg$peerDependencies2 = pkg.peerDependencies) === null || _pkg$peerDependencies2 === void 0 ? void 0 : _pkg$peerDependencies2.react));
|
|
179
|
-
let tsconfig = await config.getConfigFrom(options.projectRoot + '/index', ['tsconfig.json', 'jsconfig.json']);
|
|
180
|
-
let compilerOptions = tsconfig === null || tsconfig === void 0 || (_tsconfig$contents = tsconfig.contents) === null || _tsconfig$contents === void 0 ? void 0 : _tsconfig$contents.compilerOptions;
|
|
181
|
-
|
|
182
|
-
// Use explicitly defined JSX options in tsconfig.json over inferred values from dependencies.
|
|
183
|
-
pragma = (compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsxFactory) || (reactLib ? JSX_PRAGMA[reactLib].pragma : undefined);
|
|
184
|
-
pragmaFrag = (compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsxFragmentFactory) || (reactLib ? JSX_PRAGMA[reactLib].pragmaFrag : undefined);
|
|
185
|
-
if ((compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsx) === 'react-jsx' || (compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsx) === 'react-jsxdev' || compilerOptions !== null && compilerOptions !== void 0 && compilerOptions.jsxImportSource) {
|
|
186
|
-
jsxImportSource = compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsxImportSource;
|
|
187
|
-
automaticJSXRuntime = true;
|
|
188
|
-
} else if (reactLib) {
|
|
189
|
-
var _JSX_PRAGMA$effective, _pkg$dependencies3, _pkg$devDependencies3, _pkg$peerDependencies3, _semver$minVersion;
|
|
190
|
-
let effectiveReactLib = pkg !== null && pkg !== void 0 && pkg.alias && pkg.alias['react'] === 'preact/compat' ? 'preact' : reactLib;
|
|
191
|
-
let automaticVersion = (_JSX_PRAGMA$effective = JSX_PRAGMA[effectiveReactLib]) === null || _JSX_PRAGMA$effective === void 0 ? void 0 : _JSX_PRAGMA$effective.automatic;
|
|
192
|
-
let reactLibVersion = (pkg === null || pkg === void 0 || (_pkg$dependencies3 = pkg.dependencies) === null || _pkg$dependencies3 === void 0 ? void 0 : _pkg$dependencies3[effectiveReactLib]) || (pkg === null || pkg === void 0 || (_pkg$devDependencies3 = pkg.devDependencies) === null || _pkg$devDependencies3 === void 0 ? void 0 : _pkg$devDependencies3[effectiveReactLib]) || (pkg === null || pkg === void 0 || (_pkg$peerDependencies3 = pkg.peerDependencies) === null || _pkg$peerDependencies3 === void 0 ? void 0 : _pkg$peerDependencies3[effectiveReactLib]);
|
|
193
|
-
reactLibVersion = reactLibVersion ? _semver().default.validRange(reactLibVersion) : null;
|
|
194
|
-
let minReactLibVersion = reactLibVersion !== null && reactLibVersion !== '*' ? (_semver$minVersion = _semver().default.minVersion(reactLibVersion)) === null || _semver$minVersion === void 0 ? void 0 : _semver$minVersion.toString() : null;
|
|
195
|
-
automaticJSXRuntime = automaticVersion && !(compilerOptions !== null && compilerOptions !== void 0 && compilerOptions.jsxFactory) && minReactLibVersion != null && _semver().default.satisfies(minReactLibVersion, automaticVersion, {
|
|
196
|
-
includePrerelease: true
|
|
197
|
-
});
|
|
198
|
-
if (automaticJSXRuntime) {
|
|
199
|
-
jsxImportSource = reactLib;
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
isJSX = Boolean((compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.jsx) || pragma);
|
|
346
|
+
var _await$config$getConf2;
|
|
347
|
+
const compilerOptions = (_await$config$getConf2 = await config.getConfigFrom(options.projectRoot + '/index', ['tsconfig.json', 'jsconfig.json'], {
|
|
348
|
+
readTracking: true
|
|
349
|
+
})) === null || _await$config$getConf2 === void 0 || (_await$config$getConf2 = _await$config$getConf2.contents) === null || _await$config$getConf2 === void 0 ? void 0 : _await$config$getConf2.compilerOptions;
|
|
203
350
|
decorators = compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.experimentalDecorators;
|
|
204
351
|
useDefineForClassFields = compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.useDefineForClassFields;
|
|
205
352
|
if (useDefineForClassFields === undefined && (compilerOptions === null || compilerOptions === void 0 ? void 0 : compilerOptions.target) != null) {
|
|
@@ -215,43 +362,88 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
215
362
|
|
|
216
363
|
// Check if we should ignore fs calls
|
|
217
364
|
// See https://github.com/defunctzombie/node-browser-resolve#skip
|
|
218
|
-
let ignoreFS =
|
|
219
|
-
let conf = await config.getConfigFrom(options.projectRoot + '/index', [], {
|
|
220
|
-
packageKey: '@atlaspack/transformer-js'
|
|
221
|
-
});
|
|
365
|
+
let ignoreFS = packageJson && packageJson.browser && typeof packageJson.browser === 'object' && packageJson.browser.fs === false;
|
|
222
366
|
let inlineEnvironment = config.isSource;
|
|
223
367
|
let inlineFS = !ignoreFS;
|
|
224
368
|
let inlineConstants = false;
|
|
225
369
|
let magicComments = false;
|
|
370
|
+
let addReactDisplayName = false;
|
|
371
|
+
let enableSsrTypeofReplacement = options.env.NATIVE_SSR_TYPEOF_REPLACEMENT === 'true';
|
|
372
|
+
let globalAliasingConfig = options.env.NATIVE_GLOBAL_ALIASING && JSON.parse(options.env.NATIVE_GLOBAL_ALIASING);
|
|
373
|
+
let enableLazyLoading = options.env.NATIVE_LAZY_LOADING === 'true';
|
|
374
|
+
let enableReactHooksRemoval = options.env.NATIVE_REACT_HOOKS_REMOVAL === 'true';
|
|
375
|
+
let enableReactAsyncImportLift = options.env.NATIVE_REACT_ASYNC_IMPORT_LIFT === 'true';
|
|
376
|
+
let reactAsyncLiftByDefault = options.env.REACT_ASYNC_IMPORT_LIFTING_BY_DEFAULT === 'true';
|
|
377
|
+
let reactAsyncLiftReportLevel = options.env.REACT_ASYNC_LIFT_REPORT_LEVEL || 'none';
|
|
378
|
+
let enableStaticPrevaluation = options.env.NATIVE_PREVALUATION === 'true';
|
|
379
|
+
let enableDeadReturnsRemoval = options.env.NATIVE_DEAD_RETURNS_REMOVAL === 'true';
|
|
380
|
+
let enableUnusedBindingsRemoval = options.env.NATIVE_UNUSED_BINDINGS_REMOVAL === 'true';
|
|
381
|
+
let syncDynamicImportConfig;
|
|
382
|
+
if (config.env.isTesseract() && options.env.SYNC_DYNAMIC_IMPORT_CONFIG) {
|
|
383
|
+
try {
|
|
384
|
+
let config = configCache.get('SYNC_DYNAMIC_IMPORT_CONFIG');
|
|
385
|
+
if (!config) {
|
|
386
|
+
var _config;
|
|
387
|
+
config = JSON.parse(options.env.SYNC_DYNAMIC_IMPORT_CONFIG);
|
|
388
|
+
(0, _assert().default)(typeof ((_config = config) === null || _config === void 0 ? void 0 : _config.entrypoint_filepath_suffix) === 'string');
|
|
389
|
+
(0, _assert().default)(Array.isArray(config.actual_require_paths));
|
|
390
|
+
(0, _assert().default)(typeof (config.activate_reject_on_unresolved_imports ?? false) === 'boolean');
|
|
391
|
+
configCache.set('SYNC_DYNAMIC_IMPORT_CONFIG', config);
|
|
392
|
+
}
|
|
393
|
+
syncDynamicImportConfig = config;
|
|
394
|
+
} catch {
|
|
395
|
+
// eslint-disable-next-line no-console
|
|
396
|
+
console.warn('Failed to parse SYNC_DYNAMIC_IMPORT_CONFIG to JSON or config shape did not match. Config will not be applied.');
|
|
397
|
+
const fallback = {
|
|
398
|
+
entrypoint_filepath_suffix: '__NO_MATCH__',
|
|
399
|
+
actual_require_paths: [],
|
|
400
|
+
activate_reject_on_unresolved_imports: false
|
|
401
|
+
};
|
|
402
|
+
|
|
403
|
+
// Set cache to fallback so we don't keep trying to parse.
|
|
404
|
+
configCache.set('SYNC_DYNAMIC_IMPORT_CONFIG', fallback);
|
|
405
|
+
syncDynamicImportConfig = fallback;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
config.invalidateOnEnvChange('SYNC_DYNAMIC_IMPORT_CONFIG');
|
|
409
|
+
const tokensConfig = (0, _featureFlags().getFeatureFlag)('coreTokensAndCompiledCssInJsTransform') ? await loadTokensConfig(config, options) : undefined;
|
|
410
|
+
const compiledCssInJsConfig = (0, _featureFlags().getFeatureFlag)('coreTokensAndCompiledCssInJsTransform') ? await loadCompiledCssInJsConfig(config, options) : undefined;
|
|
226
411
|
if (conf && conf.contents) {
|
|
227
|
-
var _conf$
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
},
|
|
235
|
-
// FIXME
|
|
236
|
-
'@atlaspack/transformer-js', 'Invalid config for @atlaspack/transformer-js');
|
|
237
|
-
magicComments = ((_conf$contents = conf.contents) === null || _conf$contents === void 0 ? void 0 : _conf$contents.magicComments) ?? magicComments;
|
|
238
|
-
inlineEnvironment = ((_conf$contents2 = conf.contents) === null || _conf$contents2 === void 0 ? void 0 : _conf$contents2.inlineEnvironment) ?? inlineEnvironment;
|
|
239
|
-
inlineFS = ((_conf$contents3 = conf.contents) === null || _conf$contents3 === void 0 ? void 0 : _conf$contents3.inlineFS) ?? inlineFS;
|
|
240
|
-
inlineConstants = ((_conf$contents4 = conf.contents) === null || _conf$contents4 === void 0 ? void 0 : _conf$contents4.unstable_inlineConstants) ?? inlineConstants;
|
|
412
|
+
var _conf$contents2, _conf$contents3, _conf$contents4, _conf$contents5, _conf$contents6;
|
|
413
|
+
addReactDisplayName = ((_conf$contents2 = conf.contents) === null || _conf$contents2 === void 0 ? void 0 : _conf$contents2.addReactDisplayName) ?? addReactDisplayName;
|
|
414
|
+
magicComments = ((_conf$contents3 = conf.contents) === null || _conf$contents3 === void 0 ? void 0 : _conf$contents3.magicComments) ?? magicComments;
|
|
415
|
+
// @ts-expect-error TS2322
|
|
416
|
+
inlineEnvironment = ((_conf$contents4 = conf.contents) === null || _conf$contents4 === void 0 ? void 0 : _conf$contents4.inlineEnvironment) ?? inlineEnvironment;
|
|
417
|
+
inlineFS = ((_conf$contents5 = conf.contents) === null || _conf$contents5 === void 0 ? void 0 : _conf$contents5.inlineFS) ?? inlineFS;
|
|
418
|
+
inlineConstants = ((_conf$contents6 = conf.contents) === null || _conf$contents6 === void 0 ? void 0 : _conf$contents6.unstable_inlineConstants) ?? inlineConstants;
|
|
241
419
|
}
|
|
242
420
|
return {
|
|
243
421
|
isJSX,
|
|
244
422
|
automaticJSXRuntime,
|
|
245
423
|
jsxImportSource,
|
|
246
|
-
pragma,
|
|
247
|
-
pragmaFrag,
|
|
424
|
+
pragma: jsxPragma,
|
|
425
|
+
pragmaFrag: jsxPragmaFrag,
|
|
248
426
|
inlineEnvironment,
|
|
249
427
|
inlineFS,
|
|
250
428
|
inlineConstants,
|
|
429
|
+
addReactDisplayName,
|
|
251
430
|
reactRefresh,
|
|
252
431
|
decorators,
|
|
253
432
|
useDefineForClassFields,
|
|
254
|
-
magicComments
|
|
433
|
+
magicComments,
|
|
434
|
+
globalAliasingConfig,
|
|
435
|
+
enableSsrTypeofReplacement,
|
|
436
|
+
enableLazyLoading,
|
|
437
|
+
enableDeadReturnsRemoval,
|
|
438
|
+
enableUnusedBindingsRemoval,
|
|
439
|
+
enableStaticPrevaluation,
|
|
440
|
+
enableReactHooksRemoval,
|
|
441
|
+
syncDynamicImportConfig,
|
|
442
|
+
enableReactAsyncImportLift,
|
|
443
|
+
reactAsyncLiftByDefault,
|
|
444
|
+
reactAsyncLiftReportLevel,
|
|
445
|
+
tokensConfig,
|
|
446
|
+
compiledCssInJsConfig
|
|
255
447
|
};
|
|
256
448
|
},
|
|
257
449
|
async transform({
|
|
@@ -280,17 +472,22 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
280
472
|
for (let browser of browsers) {
|
|
281
473
|
let [name, version] = browser.split(' ');
|
|
282
474
|
if (BROWSER_MAPPING.hasOwnProperty(name)) {
|
|
475
|
+
// @ts-expect-error TS7053
|
|
283
476
|
name = BROWSER_MAPPING[name];
|
|
284
477
|
if (!name) {
|
|
285
478
|
continue;
|
|
286
479
|
}
|
|
287
480
|
}
|
|
288
481
|
let [major, minor = '0', patch = '0'] = version.split('-')[0].split('.');
|
|
482
|
+
// @ts-expect-error TS2345
|
|
289
483
|
if (isNaN(major) || isNaN(minor) || isNaN(patch)) {
|
|
290
484
|
continue;
|
|
291
485
|
}
|
|
292
486
|
let semverVersion = `${major}.${minor}.${patch}`;
|
|
487
|
+
|
|
488
|
+
// @ts-expect-error TS2345
|
|
293
489
|
if (targets[name] == null || _semver().default.gt(targets[name], semverVersion)) {
|
|
490
|
+
// @ts-expect-error TS7053
|
|
294
491
|
targets[name] = semverVersion;
|
|
295
492
|
}
|
|
296
493
|
}
|
|
@@ -305,6 +502,9 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
305
502
|
if (options.env.NODE_ENV != null) {
|
|
306
503
|
env.NODE_ENV = options.env.NODE_ENV;
|
|
307
504
|
}
|
|
505
|
+
if (process.env.ATLASPACK_BUILD_ENV === 'test') {
|
|
506
|
+
env.ATLASPACK_BUILD_ENV = 'test';
|
|
507
|
+
}
|
|
308
508
|
} else if (Array.isArray(config === null || config === void 0 ? void 0 : config.inlineEnvironment)) {
|
|
309
509
|
for (let match of (0, _utils().globMatch)(Object.keys(options.env), config.inlineEnvironment)) {
|
|
310
510
|
env[match] = String(options.env[match]);
|
|
@@ -322,23 +522,42 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
322
522
|
if (asset.type === 'ts') {
|
|
323
523
|
isJSX = false;
|
|
324
524
|
} else if (!isJSX) {
|
|
525
|
+
// @ts-expect-error TS7053
|
|
325
526
|
isJSX = Boolean(JSX_EXTENSIONS[asset.type]);
|
|
326
527
|
}
|
|
327
528
|
}
|
|
328
529
|
let macroAssets = [];
|
|
329
530
|
let {
|
|
531
|
+
// @ts-expect-error TS2339
|
|
330
532
|
dependencies,
|
|
533
|
+
// @ts-expect-error TS2339
|
|
331
534
|
code: compiledCode,
|
|
535
|
+
// @ts-expect-error TS2339
|
|
332
536
|
map,
|
|
537
|
+
// @ts-expect-error TS2339
|
|
333
538
|
shebang,
|
|
539
|
+
// @ts-expect-error TS2339
|
|
334
540
|
hoist_result,
|
|
541
|
+
// @ts-expect-error TS2339
|
|
335
542
|
symbol_result,
|
|
543
|
+
// @ts-expect-error TS2339
|
|
544
|
+
is_empty_or_empty_export,
|
|
545
|
+
// @ts-expect-error TS2339
|
|
336
546
|
needs_esm_helpers,
|
|
547
|
+
// @ts-expect-error TS2339
|
|
337
548
|
diagnostics,
|
|
549
|
+
// @ts-expect-error TS2339
|
|
338
550
|
used_env,
|
|
551
|
+
// @ts-expect-error TS2339
|
|
339
552
|
has_node_replacements,
|
|
553
|
+
// @ts-expect-error TS2339
|
|
340
554
|
is_constant_module,
|
|
341
|
-
|
|
555
|
+
// @ts-expect-error TS2339
|
|
556
|
+
conditions,
|
|
557
|
+
// @ts-expect-error TS2339
|
|
558
|
+
magic_comments,
|
|
559
|
+
// @ts-expect-error TS2339
|
|
560
|
+
style_rules
|
|
342
561
|
} = await (_rust().transformAsync || _rust().transform)({
|
|
343
562
|
filename: asset.filePath,
|
|
344
563
|
code,
|
|
@@ -349,7 +568,7 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
349
568
|
insert_node_globals: !asset.env.isNode() && asset.env.sourceType !== 'script',
|
|
350
569
|
node_replacer: asset.env.isNode(),
|
|
351
570
|
is_browser: asset.env.isBrowser(),
|
|
352
|
-
is_worker: asset.env.isWorker(),
|
|
571
|
+
is_worker: asset.env.isWorker() || asset.env.isTesseract(),
|
|
353
572
|
env,
|
|
354
573
|
is_type_script: asset.type === 'ts' || asset.type === 'tsx',
|
|
355
574
|
is_jsx: isJSX,
|
|
@@ -358,7 +577,7 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
358
577
|
automatic_jsx_runtime: Boolean(config === null || config === void 0 ? void 0 : config.automaticJSXRuntime),
|
|
359
578
|
jsx_import_source: config === null || config === void 0 ? void 0 : config.jsxImportSource,
|
|
360
579
|
is_development: options.mode === 'development',
|
|
361
|
-
react_refresh: asset.env.isBrowser() && !asset.env.isLibrary && !asset.env.isWorker() && !asset.env.isWorklet() &&
|
|
580
|
+
react_refresh: Boolean(asset.env.isBrowser() && !asset.env.isLibrary && !asset.env.isWorker() && !asset.env.isTesseract() && !asset.env.isWorklet() && (config === null || config === void 0 ? void 0 : config.reactRefresh) && options.hmrOptions && options.mode === 'development'),
|
|
362
581
|
decorators: Boolean(config === null || config === void 0 ? void 0 : config.decorators),
|
|
363
582
|
use_define_for_class_fields: Boolean(config === null || config === void 0 ? void 0 : config.useDefineForClassFields),
|
|
364
583
|
targets,
|
|
@@ -373,16 +592,33 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
373
592
|
standalone: asset.query.has('standalone'),
|
|
374
593
|
inline_constants: config.inlineConstants,
|
|
375
594
|
conditional_bundling: options.featureFlags.conditionalBundlingApi,
|
|
376
|
-
|
|
595
|
+
hmr_improvements: options.featureFlags.hmrImprovements,
|
|
596
|
+
add_display_name: Boolean(config.addReactDisplayName),
|
|
597
|
+
exports_rebinding_optimisation: options.featureFlags.exportsRebindingOptimisation,
|
|
598
|
+
magic_comments: Boolean(config === null || config === void 0 ? void 0 : config.magicComments) || (0, _featureFlags().getFeatureFlag)('supportWebpackChunkName'),
|
|
599
|
+
is_source: asset.isSource,
|
|
600
|
+
nested_promise_import_fix: options.featureFlags.nestedPromiseImportFix,
|
|
601
|
+
global_aliasing_config: config.globalAliasingConfig,
|
|
602
|
+
enable_ssr_typeof_replacement: Boolean(config.enableSsrTypeofReplacement),
|
|
603
|
+
enable_lazy_loading: Boolean(config.enableLazyLoading),
|
|
604
|
+
enable_dead_returns_removal: Boolean(config.enableDeadReturnsRemoval),
|
|
605
|
+
enable_unused_bindings_removal: Boolean(config.enableUnusedBindingsRemoval),
|
|
606
|
+
enable_static_prevaluation: Boolean(config.enableStaticPrevaluation),
|
|
607
|
+
enable_react_hooks_removal: Boolean(config.enableReactHooksRemoval),
|
|
608
|
+
enable_react_async_import_lift: Boolean(config.enableReactAsyncImportLift),
|
|
609
|
+
react_async_lift_by_default: Boolean(config.reactAsyncLiftByDefault),
|
|
610
|
+
react_async_lift_report_level: String(config.reactAsyncLiftReportLevel),
|
|
611
|
+
sync_dynamic_import_config: config.syncDynamicImportConfig,
|
|
612
|
+
enable_tokens_and_compiled_css_in_js_transform: (0, _featureFlags().getFeatureFlag)('coreTokensAndCompiledCssInJsTransform'),
|
|
613
|
+
tokens_config: config.tokensConfig,
|
|
614
|
+
compiled_css_in_js_config: config.compiledCssInJsConfig,
|
|
377
615
|
callMacro: asset.isSource ? async (err, src, exportName, args, loc) => {
|
|
378
616
|
let mod;
|
|
379
617
|
try {
|
|
380
618
|
mod = await options.packageManager.require(src, asset.filePath);
|
|
381
619
|
|
|
382
620
|
// Default interop for CommonJS modules.
|
|
383
|
-
if (exportName === 'default' && !mod.__esModule &&
|
|
384
|
-
// $FlowFixMe
|
|
385
|
-
Object.prototype.toString.call(config) !== '[object Module]') {
|
|
621
|
+
if (exportName === 'default' && !mod.__esModule && Object.prototype.toString.call(config) !== '[object Module]') {
|
|
386
622
|
mod = {
|
|
387
623
|
default: mod
|
|
388
624
|
};
|
|
@@ -398,7 +634,7 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
398
634
|
}
|
|
399
635
|
try {
|
|
400
636
|
if (typeof mod[exportName] === 'function') {
|
|
401
|
-
|
|
637
|
+
let ctx = {
|
|
402
638
|
// Allows macros to emit additional assets to add as dependencies (e.g. css).
|
|
403
639
|
addAsset(a) {
|
|
404
640
|
let k = String(macroAssets.length);
|
|
@@ -406,6 +642,7 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
406
642
|
if (asset.env.sourceMap) {
|
|
407
643
|
// Generate a source map that maps each line of the asset to the original macro call.
|
|
408
644
|
map = new (_sourceMap().default)(options.projectRoot);
|
|
645
|
+
// @ts-expect-error TS2304
|
|
409
646
|
let mappings = [];
|
|
410
647
|
let line = 1;
|
|
411
648
|
for (let i = 0; i <= a.content.length; i++) {
|
|
@@ -428,7 +665,9 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
428
665
|
if (originalMap) {
|
|
429
666
|
map.extends(originalMap);
|
|
430
667
|
} else {
|
|
431
|
-
|
|
668
|
+
if (!(0, _featureFlags().getFeatureFlag)('omitSourcesContentInMemory')) {
|
|
669
|
+
map.setSourceContent(asset.filePath, code.toString());
|
|
670
|
+
}
|
|
432
671
|
}
|
|
433
672
|
}
|
|
434
673
|
macroAssets.push({
|
|
@@ -457,7 +696,8 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
457
696
|
invalidateOnBuild() {
|
|
458
697
|
asset.invalidateOnBuild();
|
|
459
698
|
}
|
|
460
|
-
}
|
|
699
|
+
};
|
|
700
|
+
return mod[exportName].apply(ctx, args);
|
|
461
701
|
} else {
|
|
462
702
|
throw new Error(`"${exportName}" in "${src}" is not a function.`);
|
|
463
703
|
}
|
|
@@ -479,11 +719,10 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
479
719
|
} : null
|
|
480
720
|
});
|
|
481
721
|
if ((0, _featureFlags().getFeatureFlag)('conditionalBundlingApi')) {
|
|
482
|
-
asset.meta.conditions = conditions
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
}));
|
|
722
|
+
asset.meta.conditions = conditions;
|
|
723
|
+
}
|
|
724
|
+
if (style_rules) {
|
|
725
|
+
asset.meta.styleRules = style_rules;
|
|
487
726
|
}
|
|
488
727
|
if (is_constant_module) {
|
|
489
728
|
asset.meta.isConstantModule = true;
|
|
@@ -503,17 +742,22 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
503
742
|
|
|
504
743
|
// If there is an original source map, use it to remap to the original source location.
|
|
505
744
|
if (originalMap) {
|
|
506
|
-
location = (0, _utils().remapSourceLocation)(location, originalMap);
|
|
745
|
+
location = (0, _utils().remapSourceLocation)(location, originalMap, options.projectRoot);
|
|
507
746
|
}
|
|
508
747
|
return location;
|
|
509
748
|
};
|
|
510
749
|
if (diagnostics) {
|
|
511
|
-
let errors = diagnostics.filter(
|
|
512
|
-
|
|
750
|
+
let errors = diagnostics.filter(
|
|
751
|
+
// @ts-expect-error TS7006
|
|
752
|
+
d => d.severity === 'Error' || d.severity === 'SourceError' && asset.isSource);
|
|
753
|
+
let warnings = diagnostics.filter(
|
|
754
|
+
// @ts-expect-error TS7006
|
|
755
|
+
d => d.severity === 'Warning' || d.severity === 'SourceError' && !asset.isSource);
|
|
513
756
|
let convertDiagnostic = diagnostic => {
|
|
514
757
|
var _diagnostic$code_high;
|
|
515
758
|
let message = diagnostic.message;
|
|
516
759
|
if (message === 'SCRIPT_ERROR') {
|
|
760
|
+
// @ts-expect-error TS7053
|
|
517
761
|
let err = SCRIPT_ERRORS[asset.env.context];
|
|
518
762
|
message = (err === null || err === void 0 ? void 0 : err.message) || SCRIPT_ERRORS.browser.message;
|
|
519
763
|
}
|
|
@@ -525,6 +769,9 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
525
769
|
}],
|
|
526
770
|
hints: diagnostic.hints
|
|
527
771
|
};
|
|
772
|
+
if (diagnostic.name) {
|
|
773
|
+
res.name = diagnostic.name;
|
|
774
|
+
}
|
|
528
775
|
if (diagnostic.documentation_url) {
|
|
529
776
|
res.documentationURL = diagnostic.documentation_url;
|
|
530
777
|
}
|
|
@@ -536,6 +783,8 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
536
783
|
codeHighlights: [(0, _diagnostic().convertSourceLocationToHighlight)(asset.env.loc, 'The environment was originally created here')]
|
|
537
784
|
});
|
|
538
785
|
}
|
|
786
|
+
|
|
787
|
+
// @ts-expect-error TS7053
|
|
539
788
|
let err = SCRIPT_ERRORS[asset.env.context];
|
|
540
789
|
if (err) {
|
|
541
790
|
if (!res.hints) {
|
|
@@ -580,6 +829,7 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
580
829
|
env: {
|
|
581
830
|
context: 'web-worker',
|
|
582
831
|
sourceType: dep.source_type === 'Module' ? 'module' : 'script',
|
|
832
|
+
// @ts-expect-error TS2322
|
|
583
833
|
outputFormat,
|
|
584
834
|
loc
|
|
585
835
|
},
|
|
@@ -629,6 +879,13 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
629
879
|
});
|
|
630
880
|
} else if (dep.kind === 'File') {
|
|
631
881
|
asset.invalidateOnFileChange(dep.specifier);
|
|
882
|
+
} else if (dep.kind === 'Id') {
|
|
883
|
+
// Record parcelRequire calls so that the dev packager can add them as dependencies.
|
|
884
|
+
// This allows the HMR runtime to collect parents across async boundaries (through runtimes).
|
|
885
|
+
// TODO: ideally this would result as an actual dep in the graph rather than asset.meta.
|
|
886
|
+
asset.meta.hmrDeps ??= [];
|
|
887
|
+
(0, _assert().default)(Array.isArray(asset.meta.hmrDeps));
|
|
888
|
+
asset.meta.hmrDeps.push(dep.specifier);
|
|
632
889
|
} else {
|
|
633
890
|
let meta = {
|
|
634
891
|
kind: dep.kind
|
|
@@ -676,6 +933,12 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
676
933
|
outputFormat,
|
|
677
934
|
loc: convertLoc(dep.loc)
|
|
678
935
|
};
|
|
936
|
+
if ((0, _featureFlags().getFeatureFlag)('supportWebpackChunkName')) {
|
|
937
|
+
let chunkName = magic_comments[dep.specifier];
|
|
938
|
+
if (chunkName) {
|
|
939
|
+
meta.chunkName = chunkName;
|
|
940
|
+
}
|
|
941
|
+
}
|
|
679
942
|
}
|
|
680
943
|
|
|
681
944
|
// Always bundle helpers, even with includeNodeModules: false, except if this is a library.
|
|
@@ -695,6 +958,7 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
695
958
|
idx = dep.specifier.indexOf('/', idx + 1);
|
|
696
959
|
}
|
|
697
960
|
let module = idx >= 0 ? dep.specifier.slice(0, idx) : dep.specifier;
|
|
961
|
+
// @ts-expect-error TS7053
|
|
698
962
|
range = _package.default.dependencies[module];
|
|
699
963
|
}
|
|
700
964
|
asset.addDependency({
|
|
@@ -706,6 +970,7 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
706
970
|
meta,
|
|
707
971
|
resolveFrom: isHelper ? __filename : undefined,
|
|
708
972
|
range,
|
|
973
|
+
// @ts-expect-error TS2322
|
|
709
974
|
env
|
|
710
975
|
});
|
|
711
976
|
}
|
|
@@ -717,10 +982,12 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
717
982
|
exported,
|
|
718
983
|
local,
|
|
719
984
|
loc,
|
|
720
|
-
is_esm
|
|
985
|
+
is_esm,
|
|
986
|
+
is_static_binding_safe
|
|
721
987
|
} of hoist_result.exported_symbols) {
|
|
722
988
|
asset.symbols.set(exported, local, convertLoc(loc), {
|
|
723
|
-
isEsm: is_esm
|
|
989
|
+
isEsm: is_esm,
|
|
990
|
+
isStaticBindingSafe: is_static_binding_safe
|
|
724
991
|
});
|
|
725
992
|
}
|
|
726
993
|
|
|
@@ -802,6 +1069,9 @@ var _default = exports.default = new (_plugin().Transformer)({
|
|
|
802
1069
|
// (and the asset has side effects), or the asset is wrapped.
|
|
803
1070
|
// This allows accessing symbols that don't exist without errors in symbol propagation.
|
|
804
1071
|
if (hoist_result.has_cjs_exports || !hoist_result.is_esm && asset.sideEffects && deps.size === 0 && Object.keys(hoist_result.exported_symbols).length === 0 || hoist_result.should_wrap && !asset.symbols.hasExportSymbol('*')) {
|
|
1072
|
+
if (is_empty_or_empty_export) {
|
|
1073
|
+
asset.meta.emptyFileStarReexport = true;
|
|
1074
|
+
}
|
|
805
1075
|
asset.symbols.set('*', `$${asset.id}$exports`);
|
|
806
1076
|
}
|
|
807
1077
|
asset.meta.hasCJSExports = hoist_result.has_cjs_exports;
|