@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.5",
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.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
- runtimeCompat,
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
- const value = packageJSON.sideEffects;
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
- const nodeRuntimeEnabled = Object.keys(runtimeCompat).includes("node");
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 = applyNodeEsmResolution({
380
- conditions: packageConditions,
381
- parentUrl: importer,
382
- specifier: url,
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
  }