@lwrjs/module-bundler 0.6.0-alpha.2 → 0.6.0-alpha.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.
@@ -1,34 +1,34 @@
1
1
  var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
3
  var __getProtoOf = Object.getPrototypeOf;
6
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
8
8
  var __export = (target, all) => {
9
- __markAsModule(target);
10
9
  for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
10
+ __defProp(target, name, {get: all[name], enumerable: true});
12
11
  };
13
- var __reExport = (target, module2, desc) => {
12
+ var __exportStar = (target, module2, desc) => {
14
13
  if (module2 && typeof module2 === "object" || typeof module2 === "function") {
15
14
  for (let key of __getOwnPropNames(module2))
16
15
  if (!__hasOwnProp.call(target, key) && key !== "default")
17
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
16
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
18
17
  }
19
18
  return target;
20
19
  };
21
20
  var __toModule = (module2) => {
22
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
23
22
  };
24
23
 
25
24
  // packages/@lwrjs/module-bundler/src/amd/amd-bundler.ts
25
+ __markAsModule(exports);
26
26
  __export(exports, {
27
27
  amdBundler: () => amdBundler
28
28
  });
29
29
  var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
30
- async function amdBundler(moduleId, moduleRegistry, runtimeEnvironment, runtimeParams = {}, { bundleConfig, amdLoader }, bundleConfigOverride) {
31
- const { exclude, external } = bundleConfigOverride ?? bundleConfig;
30
+ async function amdBundler(moduleId, moduleRegistry, runtimeEnvironment, runtimeParams = {}, {bundleConfig, amdLoader}, bundleConfigOverride) {
31
+ const {exclude, external} = bundleConfigOverride ?? bundleConfig;
32
32
  const requiredImports = new Map();
33
33
  const dynamicImports = new Map();
34
34
  const visited = new Map();
@@ -48,18 +48,14 @@ async function amdBundler(moduleId, moduleRegistry, runtimeEnvironment, runtimeP
48
48
  }, moduleRegistry, moduleRegistry, runtimeEnvironment, runtimeParams, visited);
49
49
  const rootModule = moduleGraphs.graphs[0];
50
50
  const rootModuleDef = moduleGraphs.linkedDefinitions[rootModule.specifier];
51
- const { id, name, namespace, version, specifier } = rootModuleDef;
51
+ const {id, name, namespace, version, specifier} = rootModuleDef;
52
52
  rootModuleDef?.linkedModuleRecord.dynamicImports?.forEach((e) => {
53
- if (e.moduleNameType !== "unresolved") {
54
- dynamicImports.set(`${e.specifier}_${e.version}`, e);
55
- }
53
+ dynamicImports.set(`${e.specifier}_${e.version}`, e);
56
54
  });
57
55
  moduleGraphs.graphs[0].static.forEach((m) => {
58
56
  const d = moduleGraphs.linkedDefinitions[m];
59
57
  d?.linkedModuleRecord.dynamicImports?.forEach((e) => {
60
- if (e.moduleNameType !== "unresolved") {
61
- dynamicImports.set(`${e.specifier}_${e.version}`, e);
62
- }
58
+ dynamicImports.set(`${e.specifier}_${e.version}`, e);
63
59
  });
64
60
  });
65
61
  const code = [];
@@ -79,7 +75,7 @@ async function amdBundler(moduleId, moduleRegistry, runtimeEnvironment, runtimeP
79
75
  version,
80
76
  specifier,
81
77
  code: code.join(""),
82
- config: { external, exclude },
78
+ config: {external, exclude},
83
79
  bundleRecord: {
84
80
  imports: Array.from(requiredImports.values()),
85
81
  dynamicImports: Array.from(dynamicImports.values()),
@@ -1,36 +1,36 @@
1
1
  var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
3
  var __getProtoOf = Object.getPrototypeOf;
6
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
8
8
  var __export = (target, all) => {
9
- __markAsModule(target);
10
9
  for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
10
+ __defProp(target, name, {get: all[name], enumerable: true});
12
11
  };
13
- var __reExport = (target, module2, desc) => {
12
+ var __exportStar = (target, module2, desc) => {
14
13
  if (module2 && typeof module2 === "object" || typeof module2 === "function") {
15
14
  for (let key of __getOwnPropNames(module2))
16
15
  if (!__hasOwnProp.call(target, key) && key !== "default")
17
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
16
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
18
17
  }
19
18
  return target;
20
19
  };
21
20
  var __toModule = (module2) => {
22
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
23
22
  };
24
23
 
25
24
  // packages/@lwrjs/module-bundler/src/esm/esm-bundler.ts
25
+ __markAsModule(exports);
26
26
  __export(exports, {
27
27
  esmBundler: () => esmBundler
28
28
  });
29
29
  var import_rollup = __toModule(require("rollup"));
30
30
  var import_rollup_esm_bundler_plugin = __toModule(require("./rollup-esm-bundler-plugin.cjs"));
31
31
  async function esmBundler(moduleId, moduleRegistry, runtimeEnvironment, runtimeParams = {}, lwrConfig, bundleConfigOverride) {
32
- const { exclude, external = {}, alias = {} } = bundleConfigOverride ?? lwrConfig.bundleConfig;
33
- const { sourceMapUrl } = runtimeEnvironment;
32
+ const {exclude, external = {}, alias = {}} = bundleConfigOverride ?? lwrConfig.bundleConfig;
33
+ const {sourceMapUrl} = runtimeEnvironment;
34
34
  const requiredImports = new Map();
35
35
  const dynamicImports = new Map();
36
36
  const rootModuleDef = await moduleRegistry.getLinkedModule(moduleId, runtimeEnvironment, runtimeParams);
@@ -60,7 +60,7 @@ async function esmBundler(moduleId, moduleRegistry, runtimeEnvironment, runtimeP
60
60
  const bundleMap = result.output[0].map;
61
61
  const code = sourceMapUrl ? `${bundleCode}
62
62
  //# sourceMappingURL=${sourceMapUrl}` : bundleCode;
63
- const { id, specifier, namespace, name, version } = rootModuleDef;
63
+ const {id, specifier, namespace, name, version} = rootModuleDef;
64
64
  return {
65
65
  id,
66
66
  specifier,
@@ -68,7 +68,7 @@ async function esmBundler(moduleId, moduleRegistry, runtimeEnvironment, runtimeP
68
68
  name,
69
69
  version,
70
70
  code,
71
- config: { external, exclude },
71
+ config: {external, exclude},
72
72
  map: bundleMap,
73
73
  bundleRecord: {
74
74
  imports: Array.from(requiredImports.values()),
@@ -1,28 +1,28 @@
1
1
  var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
3
  var __getProtoOf = Object.getPrototypeOf;
6
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
8
8
  var __export = (target, all) => {
9
- __markAsModule(target);
10
9
  for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
10
+ __defProp(target, name, {get: all[name], enumerable: true});
12
11
  };
13
- var __reExport = (target, module2, desc) => {
12
+ var __exportStar = (target, module2, desc) => {
14
13
  if (module2 && typeof module2 === "object" || typeof module2 === "function") {
15
14
  for (let key of __getOwnPropNames(module2))
16
15
  if (!__hasOwnProp.call(target, key) && key !== "default")
17
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
16
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
18
17
  }
19
18
  return target;
20
19
  };
21
20
  var __toModule = (module2) => {
22
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
23
22
  };
24
23
 
25
24
  // packages/@lwrjs/module-bundler/src/esm/rollup-esm-bundler-plugin.ts
25
+ __markAsModule(exports);
26
26
  __export(exports, {
27
27
  bundleDefinitions: () => bundleDefinitions
28
28
  });
@@ -53,21 +53,19 @@ function bundleDefinitions(options) {
53
53
  if (moduleDef && moduleDef.linkedModuleRecord) {
54
54
  const d = moduleDef.linkedModuleRecord.dynamicImports || [];
55
55
  d.forEach((e) => {
56
- if (e.moduleNameType !== "unresolved") {
57
- const { namespace, name, version, sourceSpecifier, moduleNameType } = e;
58
- dynamicImports.set(`${sourceSpecifier}_${version}`, {
59
- namespace,
60
- name,
61
- specifier: sourceSpecifier,
62
- version,
63
- sourceSpecifier,
64
- moduleNameType
65
- });
66
- }
56
+ const {namespace, name, version, sourceSpecifier, moduleNameType} = e;
57
+ dynamicImports.set(`${sourceSpecifier}_${version}`, {
58
+ namespace,
59
+ name,
60
+ specifier: sourceSpecifier,
61
+ version,
62
+ sourceSpecifier,
63
+ moduleNameType
64
+ });
67
65
  });
68
66
  }
69
67
  if (exclude && moduleDef && importer && exclude.includes(moduleDef.specifier)) {
70
- const { namespace, name, specifier, version } = moduleDef;
68
+ const {namespace, name, specifier, version} = moduleDef;
71
69
  requiredImports.set(`${specifier}_${version}`, {
72
70
  namespace,
73
71
  name,
@@ -87,7 +85,7 @@ function bundleDefinitions(options) {
87
85
  for (const refImport of imports) {
88
86
  let refModuleDef = visitedDefs.get(refImport.specifier);
89
87
  if (!refModuleDef) {
90
- let specifier = (0, import_shared_utils.getSpecifier)({ namespace: refImport.namespace, name: refImport.name });
88
+ let specifier = (0, import_shared_utils.getSpecifier)({namespace: refImport.namespace, name: refImport.name});
91
89
  let explodedSpecifier = refImport;
92
90
  let aliasSpecifierUri;
93
91
  const specifierUri = refImport.specifier;
@@ -1,38 +1,39 @@
1
1
  var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
3
  var __getProtoOf = Object.getPrototypeOf;
6
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
8
8
  var __export = (target, all) => {
9
- __markAsModule(target);
10
9
  for (var name in all)
11
- __defProp(target, name, { get: all[name], enumerable: true });
10
+ __defProp(target, name, {get: all[name], enumerable: true});
12
11
  };
13
- var __reExport = (target, module2, desc) => {
12
+ var __exportStar = (target, module2, desc) => {
14
13
  if (module2 && typeof module2 === "object" || typeof module2 === "function") {
15
14
  for (let key of __getOwnPropNames(module2))
16
15
  if (!__hasOwnProp.call(target, key) && key !== "default")
17
- __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
16
+ __defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
18
17
  }
19
18
  return target;
20
19
  };
21
20
  var __toModule = (module2) => {
22
- return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
21
+ return __exportStar(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
23
22
  };
24
23
 
25
24
  // packages/@lwrjs/module-bundler/src/index.ts
25
+ __markAsModule(exports);
26
26
  __export(exports, {
27
27
  LwrModuleBundler: () => LwrModuleBundler
28
28
  });
29
29
  var import_amd_bundler = __toModule(require("./amd/amd-bundler.cjs"));
30
30
  var import_esm_bundler = __toModule(require("./esm/esm-bundler.cjs"));
31
31
  var import_shared_utils = __toModule(require("@lwrjs/shared-utils"));
32
+ var TASK_POOL = new import_shared_utils.TaskPool();
32
33
  var LwrModuleBundler = class {
33
34
  constructor(config, globalConfig) {
34
35
  this.cache = new Map();
35
- this.inflightBundleDefinitions = new Map();
36
+ this.inflightBundleDefinitions = new import_shared_utils.InflightTasks();
36
37
  this.config = globalConfig;
37
38
  this.moduleRegistry = config.moduleRegistry;
38
39
  this.appObserver = config.appObserver;
@@ -41,8 +42,8 @@ var LwrModuleBundler = class {
41
42
  });
42
43
  }
43
44
  async getModuleBundle(moduleId, runtimeEnvironment, runtimeParams = {}, bundleConfigOverrides) {
44
- const { moduleRegistry } = this;
45
- const { format, minify, debug } = runtimeEnvironment;
45
+ const {moduleRegistry} = this;
46
+ const {format, minify, debug} = runtimeEnvironment;
46
47
  const cacheKey = `${moduleId.specifier}|${moduleId.version}|${(0, import_shared_utils.getCacheKeyFromJson)({
47
48
  locale: runtimeParams.locale,
48
49
  format,
@@ -53,20 +54,20 @@ var LwrModuleBundler = class {
53
54
  const cacheDisabled = process.env.NOCACHE === "true";
54
55
  if (!cacheDisabled) {
55
56
  if (this.cache.has(cacheKey)) {
56
- const bundleDef2 = this.cache.get(cacheKey);
57
- return bundleDef2;
57
+ const bundleDef = this.cache.get(cacheKey);
58
+ return bundleDef;
58
59
  }
59
60
  }
60
- if (this.inflightBundleDefinitions.has(cacheKey)) {
61
- return this.inflightBundleDefinitions.get(cacheKey);
62
- }
63
- const bundleDefPromise = format === "amd" ? (0, import_amd_bundler.amdBundler)(moduleId, moduleRegistry, runtimeEnvironment, runtimeParams, this.config, bundleConfigOverrides) : (0, import_esm_bundler.esmBundler)(moduleId, moduleRegistry, runtimeEnvironment, runtimeParams, this.config, bundleConfigOverrides);
64
- this.inflightBundleDefinitions.set(cacheKey, bundleDefPromise);
65
- const bundleDef = await bundleDefPromise;
66
- if (!cacheDisabled) {
67
- this.cache.set(cacheKey, bundleDef);
68
- }
69
- this.inflightBundleDefinitions.delete(cacheKey);
70
- return bundleDef;
61
+ const createBundlePromiseCtor = async () => {
62
+ return TASK_POOL.execute(async () => {
63
+ return format === "amd" ? (0, import_amd_bundler.amdBundler)(moduleId, moduleRegistry, runtimeEnvironment, runtimeParams, this.config, bundleConfigOverrides) : (0, import_esm_bundler.esmBundler)(moduleId, moduleRegistry, runtimeEnvironment, runtimeParams, this.config, bundleConfigOverrides).then((bundleDef) => {
64
+ if (!cacheDisabled) {
65
+ this.cache.set(cacheKey, bundleDef);
66
+ }
67
+ return bundleDef;
68
+ });
69
+ }, this);
70
+ };
71
+ return this.inflightBundleDefinitions.execute(cacheKey, createBundlePromiseCtor, this);
71
72
  }
72
73
  };
@@ -1,3 +1,3 @@
1
- import { AbstractModuleId, BundleConfig, BundleDefinition, ModuleRegistry, NormalizedLwrGlobalConfig, RuntimeEnvironment } from '@lwrjs/types';
2
- export declare function amdBundler(moduleId: AbstractModuleId, moduleRegistry: ModuleRegistry, runtimeEnvironment: RuntimeEnvironment, runtimeParams: Record<string, string | number | boolean | null | undefined> | undefined, { bundleConfig, amdLoader }: NormalizedLwrGlobalConfig, bundleConfigOverride?: BundleConfig): Promise<BundleDefinition>;
1
+ import { AbstractModuleId, BundleConfig, BundleDefinition, ModuleRegistry, NormalizedLwrGlobalConfig, RuntimeEnvironment, RuntimeParams } from '@lwrjs/types';
2
+ export declare function amdBundler(moduleId: AbstractModuleId, moduleRegistry: ModuleRegistry, runtimeEnvironment: RuntimeEnvironment, runtimeParams: RuntimeParams | undefined, { bundleConfig, amdLoader }: NormalizedLwrGlobalConfig, bundleConfigOverride?: BundleConfig): Promise<BundleDefinition>;
3
3
  //# sourceMappingURL=amd-bundler.d.ts.map
@@ -27,9 +27,7 @@ export async function amdBundler(moduleId, moduleRegistry, runtimeEnvironment, r
27
27
  // Collect dynamic imports
28
28
  // Add dynamic imports from the root module
29
29
  rootModuleDef?.linkedModuleRecord.dynamicImports?.forEach((e) => {
30
- if (e.moduleNameType !== 'unresolved') {
31
- dynamicImports.set(`${e.specifier}_${e.version}`, e);
32
- }
30
+ dynamicImports.set(`${e.specifier}_${e.version}`, e);
33
31
  });
34
32
  // Add any dynamic imports from each of the linked static imports in the moduleGraph
35
33
  moduleGraphs.graphs[0].static.forEach((m) => {
@@ -37,9 +35,7 @@ export async function amdBundler(moduleId, moduleRegistry, runtimeEnvironment, r
37
35
  const d = moduleGraphs.linkedDefinitions[m];
38
36
  // D would be null if excluded from the bundle
39
37
  d?.linkedModuleRecord.dynamicImports?.forEach((e) => {
40
- if (e.moduleNameType !== 'unresolved') {
41
- dynamicImports.set(`${e.specifier}_${e.version}`, e);
42
- }
38
+ dynamicImports.set(`${e.specifier}_${e.version}`, e);
43
39
  });
44
40
  });
45
41
  // loop in reverse for correct order
@@ -1,3 +1,3 @@
1
- import { AbstractModuleId, ModuleRegistry, BundleDefinition, SourceMapRuntimeEnvironment, BundleConfig, NormalizedLwrGlobalConfig } from '@lwrjs/types';
2
- export declare function esmBundler(moduleId: AbstractModuleId, moduleRegistry: ModuleRegistry, runtimeEnvironment: SourceMapRuntimeEnvironment, runtimeParams: Record<string, string | number | boolean | null | undefined> | undefined, lwrConfig: NormalizedLwrGlobalConfig, bundleConfigOverride?: BundleConfig): Promise<BundleDefinition>;
1
+ import { AbstractModuleId, ModuleRegistry, BundleDefinition, RuntimeParams, SourceMapRuntimeEnvironment, BundleConfig, NormalizedLwrGlobalConfig } from '@lwrjs/types';
2
+ export declare function esmBundler(moduleId: AbstractModuleId, moduleRegistry: ModuleRegistry, runtimeEnvironment: SourceMapRuntimeEnvironment, runtimeParams: RuntimeParams | undefined, lwrConfig: NormalizedLwrGlobalConfig, bundleConfigOverride?: BundleConfig): Promise<BundleDefinition>;
3
3
  //# sourceMappingURL=esm-bundler.d.ts.map
@@ -20,7 +20,7 @@ export async function esmBundler(moduleId, moduleRegistry, runtimeEnvironment, r
20
20
  dynamicImports,
21
21
  }),
22
22
  ],
23
- makeAbsoluteExternalsRelative: 'ifRelativeSource',
23
+ makeAbsoluteExternalsRelative: 'ifRelativeSource', // Fix for breaking changes in https://github.com/rollup/rollup/pull/4021
24
24
  });
25
25
  const result = await bundle.generate({
26
26
  paths: (id) => {
@@ -24,18 +24,16 @@ export function bundleDefinitions(options) {
24
24
  if (moduleDef && moduleDef.linkedModuleRecord) {
25
25
  const d = moduleDef.linkedModuleRecord.dynamicImports || [];
26
26
  d.forEach((e) => {
27
- if (e.moduleNameType !== 'unresolved') {
28
- const { namespace, name, version, sourceSpecifier, moduleNameType } = e;
29
- // Not sure why this has to be source specifier but things break otherwise
30
- dynamicImports.set(`${sourceSpecifier}_${version}`, {
31
- namespace,
32
- name,
33
- specifier: sourceSpecifier,
34
- version,
35
- sourceSpecifier,
36
- moduleNameType,
37
- });
38
- }
27
+ const { namespace, name, version, sourceSpecifier, moduleNameType } = e;
28
+ // Not sure why this has to be source specifier but things break otherwise
29
+ dynamicImports.set(`${sourceSpecifier}_${version}`, {
30
+ namespace,
31
+ name,
32
+ specifier: sourceSpecifier,
33
+ version,
34
+ sourceSpecifier,
35
+ moduleNameType,
36
+ });
39
37
  });
40
38
  }
41
39
  // if importer is null is the entry which we must ignore for externals
package/build/es/index.js CHANGED
@@ -1,13 +1,14 @@
1
1
  import { amdBundler } from './amd/amd-bundler.js';
2
2
  import { esmBundler } from './esm/esm-bundler.js';
3
- import { getCacheKeyFromJson } from '@lwrjs/shared-utils';
3
+ import { getCacheKeyFromJson, InflightTasks, TaskPool } from '@lwrjs/shared-utils';
4
+ const TASK_POOL = new TaskPool();
4
5
  export class LwrModuleBundler {
5
6
  constructor(config, globalConfig) {
6
7
  this.cache = new Map();
7
8
  // Pending bundle definitions are tracked to prevent concurrent resolution of the same bundle.
8
9
  // Subsequent requests for the same bundle will await the original promise.
9
10
  // Cache entries will be removed once the bundle is resolved.
10
- this.inflightBundleDefinitions = new Map();
11
+ this.inflightBundleDefinitions = new InflightTasks();
11
12
  this.config = globalConfig;
12
13
  this.moduleRegistry = config.moduleRegistry;
13
14
  this.appObserver = config.appObserver;
@@ -31,25 +32,29 @@ export class LwrModuleBundler {
31
32
  if (!cacheDisabled) {
32
33
  // Return the cached bundle definition
33
34
  if (this.cache.has(cacheKey)) {
35
+ // TODO add to profiling
36
+ // console.log('[INFO] Bundle Cache Hit: ', cacheKey);
34
37
  const bundleDef = this.cache.get(cacheKey);
35
38
  return bundleDef;
36
39
  }
37
40
  }
38
- // Return the inflight bundle definition
39
- if (this.inflightBundleDefinitions.has(cacheKey)) {
40
- return this.inflightBundleDefinitions.get(cacheKey);
41
- }
42
41
  // Generate the bundle definition
43
- const bundleDefPromise = format === 'amd'
44
- ? amdBundler(moduleId, moduleRegistry, runtimeEnvironment, runtimeParams, this.config, bundleConfigOverrides)
45
- : esmBundler(moduleId, moduleRegistry, runtimeEnvironment, runtimeParams, this.config, bundleConfigOverrides);
46
- this.inflightBundleDefinitions.set(cacheKey, bundleDefPromise);
47
- const bundleDef = await bundleDefPromise;
48
- if (!cacheDisabled) {
49
- this.cache.set(cacheKey, bundleDef);
50
- }
51
- this.inflightBundleDefinitions.delete(cacheKey);
52
- return bundleDef;
42
+ const createBundlePromiseCtor = async () => {
43
+ // TODO add to profiling
44
+ // console.log('[INFO] Create Bundle: ', cacheKey);
45
+ // Run theses tasks in a task pool to throttle parallel requests.
46
+ return TASK_POOL.execute(async () => {
47
+ return format === 'amd'
48
+ ? amdBundler(moduleId, moduleRegistry, runtimeEnvironment, runtimeParams, this.config, bundleConfigOverrides)
49
+ : esmBundler(moduleId, moduleRegistry, runtimeEnvironment, runtimeParams, this.config, bundleConfigOverrides).then((bundleDef) => {
50
+ if (!cacheDisabled) {
51
+ this.cache.set(cacheKey, bundleDef);
52
+ }
53
+ return bundleDef;
54
+ });
55
+ }, this);
56
+ };
57
+ return this.inflightBundleDefinitions.execute(cacheKey, createBundlePromiseCtor, this);
53
58
  }
54
59
  }
55
60
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -4,8 +4,8 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "0.6.0-alpha.2",
8
- "homepage": "https://lwr.dev/",
7
+ "version": "0.6.0-alpha.6",
8
+ "homepage": "https://developer.salesforce.com/docs/platform/lwr/overview",
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "https://github.com/salesforce/lwr.git",
@@ -30,14 +30,14 @@
30
30
  "build/**/*.d.ts"
31
31
  ],
32
32
  "dependencies": {
33
- "@lwrjs/shared-utils": "0.6.0-alpha.2",
33
+ "@lwrjs/shared-utils": "0.6.0-alpha.6",
34
34
  "rollup": "~2.45.2"
35
35
  },
36
36
  "devDependencies": {
37
- "@lwrjs/types": "0.6.0-alpha.2"
37
+ "@lwrjs/types": "0.6.0-alpha.6"
38
38
  },
39
39
  "engines": {
40
40
  "node": ">=14.15.4 <17"
41
41
  },
42
- "gitHead": "5b0f761312e566fdaeec26ac3dbb704f8421b1a9"
42
+ "gitHead": "5d624e196dd46787399e6a269479508abe236081"
43
43
  }