@jsenv/plugin-bundling 2.8.5 → 2.8.6
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": "@jsenv/plugin-bundling",
|
|
3
|
-
"version": "2.8.
|
|
3
|
+
"version": "2.8.6",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"sideEffects": false,
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@jsenv/humanize": "1.3.1",
|
|
26
|
-
"@jsenv/url-meta": "8.5.
|
|
26
|
+
"@jsenv/url-meta": "8.5.6",
|
|
27
27
|
"@jsenv/urls": "2.7.0",
|
|
28
28
|
"@jsenv/sourcemap": "1.3.3",
|
|
29
29
|
"lightningcss": "1.29.2",
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { lookupPackageDirectory, readPackageAtOrNull } from "@jsenv/filesystem";
|
|
2
2
|
import { createDetailedMessage } from "@jsenv/humanize";
|
|
3
|
-
import { applyNodeEsmResolution } from "@jsenv/node-esm-resolution";
|
|
4
3
|
import { isSpecifierForNodeBuiltin } from "@jsenv/node-esm-resolution/src/node_builtin_specifiers.js";
|
|
5
4
|
import { sourcemapConverter } from "@jsenv/sourcemap";
|
|
6
5
|
import { URL_META } from "@jsenv/url-meta";
|
|
@@ -36,6 +35,7 @@ export const bundleJsModules = async (
|
|
|
36
35
|
sourcemaps,
|
|
37
36
|
isSupportedOnCurrentClients,
|
|
38
37
|
getPluginMeta,
|
|
38
|
+
kitchen,
|
|
39
39
|
} = jsModuleUrlInfos[0].context;
|
|
40
40
|
const graph = jsModuleUrlInfos[0].graph;
|
|
41
41
|
if (buildDirectoryUrl === undefined) {
|
|
@@ -159,6 +159,7 @@ export const bundleJsModules = async (
|
|
|
159
159
|
graph,
|
|
160
160
|
jsModuleUrlInfos,
|
|
161
161
|
PATH_AND_URL_CONVERTER,
|
|
162
|
+
kitchen,
|
|
162
163
|
|
|
163
164
|
runtimeCompat,
|
|
164
165
|
sourcemaps,
|
|
@@ -237,7 +238,7 @@ const rollupPluginJsenv = ({
|
|
|
237
238
|
jsModuleUrlInfos,
|
|
238
239
|
PATH_AND_URL_CONVERTER,
|
|
239
240
|
|
|
240
|
-
|
|
241
|
+
kitchen,
|
|
241
242
|
sourcemaps,
|
|
242
243
|
include,
|
|
243
244
|
preserveDynamicImports,
|
|
@@ -315,34 +316,39 @@ const rollupPluginJsenv = ({
|
|
|
315
316
|
"utf8",
|
|
316
317
|
);
|
|
317
318
|
const packageJSON = JSON.parse(packageFileContent);
|
|
318
|
-
|
|
319
|
-
if (Array.isArray(value)) {
|
|
320
|
-
const sideEffectPatterns = {};
|
|
321
|
-
for (const v of value) {
|
|
322
|
-
sideEffectPatterns[v] = true;
|
|
323
|
-
}
|
|
324
|
-
const associations = URL_META.resolveAssociations(
|
|
325
|
-
{ sideEffects: sideEffectPatterns },
|
|
326
|
-
packageDirectoryUrl,
|
|
327
|
-
);
|
|
328
|
-
const isMatching = (url) => {
|
|
329
|
-
const meta = URL_META.applyAssociations({ url, associations });
|
|
330
|
-
return meta.sideEffects || false;
|
|
331
|
-
};
|
|
332
|
-
packageSideEffectsCacheMap.set(packageDirectoryUrl, {
|
|
333
|
-
value: isMatching,
|
|
334
|
-
});
|
|
335
|
-
} else {
|
|
336
|
-
packageSideEffectsCacheMap.set(packageDirectoryUrl, { value });
|
|
337
|
-
}
|
|
338
|
-
return value;
|
|
319
|
+
return storePackageSideEffect(packageDirectoryUrl, packageJSON);
|
|
339
320
|
} catch {
|
|
321
|
+
return storePackageSideEffect(packageDirectoryUrl, null);
|
|
322
|
+
}
|
|
323
|
+
};
|
|
324
|
+
const storePackageSideEffect = (packageDirectoryUrl, packageJson) => {
|
|
325
|
+
if (!packageJson) {
|
|
340
326
|
packageSideEffectsCacheMap.set(packageDirectoryUrl, { value: undefined });
|
|
341
327
|
return undefined;
|
|
342
328
|
}
|
|
329
|
+
const value = packageJson.sideEffects;
|
|
330
|
+
if (Array.isArray(value)) {
|
|
331
|
+
const sideEffectPatterns = {};
|
|
332
|
+
for (const v of value) {
|
|
333
|
+
sideEffectPatterns[v] = true;
|
|
334
|
+
}
|
|
335
|
+
const associations = URL_META.resolveAssociations(
|
|
336
|
+
{ sideEffects: sideEffectPatterns },
|
|
337
|
+
packageDirectoryUrl,
|
|
338
|
+
);
|
|
339
|
+
const isMatching = (url) => {
|
|
340
|
+
const meta = URL_META.applyAssociations({ url, associations });
|
|
341
|
+
return meta.sideEffects || false;
|
|
342
|
+
};
|
|
343
|
+
packageSideEffectsCacheMap.set(packageDirectoryUrl, {
|
|
344
|
+
value: isMatching,
|
|
345
|
+
});
|
|
346
|
+
return isMatching;
|
|
347
|
+
}
|
|
348
|
+
packageSideEffectsCacheMap.set(packageDirectoryUrl, { value });
|
|
349
|
+
return value;
|
|
343
350
|
};
|
|
344
|
-
|
|
345
|
-
const packageConditions = [nodeRuntimeEnabled ? "node" : "browser", "import"];
|
|
351
|
+
|
|
346
352
|
const inferSideEffectsFromResolvedUrl = (url) => {
|
|
347
353
|
if (url.startsWith("ignore:")) {
|
|
348
354
|
// console.log(`may have side effect: ${url}`);
|
|
@@ -376,12 +382,11 @@ const rollupPluginJsenv = ({
|
|
|
376
382
|
return inferSideEffectsFromResolvedUrl(url);
|
|
377
383
|
}
|
|
378
384
|
try {
|
|
379
|
-
const result =
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
return inferSideEffectsFromResolvedUrl(result.url);
|
|
385
|
+
const result = kitchen.resolve(url, importer);
|
|
386
|
+
if (result.packageDirectoryUrl) {
|
|
387
|
+
storePackageSideEffect(result.packageDirectoryUrl, result.packageJson);
|
|
388
|
+
}
|
|
389
|
+
return inferSideEffectsFromResolvedUrl(url);
|
|
385
390
|
} catch {
|
|
386
391
|
return null;
|
|
387
392
|
}
|