piral-blazor 0.15.0-beta.4791 → 0.15.0-beta.4801

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,5 +1,7 @@
1
+ var _a;
1
2
  import { __awaiter } from "tslib";
2
3
  import { loadResource, loadResourceWithSymbol, unloadResource } from './interop';
4
+ const loadedDependencies = ((_a = window.$blazorDependencies) !== null && _a !== void 0 ? _a : (window.$blazorDependencies = []));
3
5
  export function createDependencyLoader(convert, lazy = true) {
4
6
  const definedBlazorReferences = [];
5
7
  let dependency;
@@ -10,17 +12,29 @@ export function createDependencyLoader(convert, lazy = true) {
10
12
  defineBlazorReferences(references) {
11
13
  const load = () => __awaiter(this, void 0, void 0, function* () {
12
14
  for (const dllUrl of references) {
15
+ const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
13
16
  if (dllUrl.endsWith('.dll')) {
14
- const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
15
- const pdbName = `${urlWithoutExtension}.pdb`;
16
- const pdbUrl = references.find((m) => m === pdbName);
17
- if (pdbUrl) {
18
- yield loadResourceWithSymbol(dllUrl, pdbUrl);
17
+ const entry = loadedDependencies.find(m => m.name === dllName);
18
+ if (entry) {
19
+ entry.count++;
19
20
  }
20
21
  else {
21
- yield loadResource(dllUrl);
22
+ const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
23
+ const pdbName = `${urlWithoutExtension}.pdb`;
24
+ const pdbUrl = references.find((m) => m === pdbName);
25
+ if (pdbUrl) {
26
+ yield loadResourceWithSymbol(dllUrl, pdbUrl);
27
+ }
28
+ else {
29
+ yield loadResource(dllUrl);
30
+ }
31
+ loadedDependencies.push({
32
+ name: dllName,
33
+ url: dllUrl,
34
+ count: 1,
35
+ });
22
36
  }
23
- definedBlazorReferences.push(dllUrl);
37
+ definedBlazorReferences.push(dllName);
24
38
  }
25
39
  }
26
40
  });
@@ -31,7 +45,11 @@ export function createDependencyLoader(convert, lazy = true) {
31
45
  return __awaiter(this, void 0, void 0, function* () {
32
46
  const references = definedBlazorReferences.splice(0, definedBlazorReferences.length);
33
47
  for (const reference of references) {
34
- yield unloadResource(reference);
48
+ const entry = loadedDependencies.find(m => m.name === reference);
49
+ if (--entry.count === 0) {
50
+ loadedDependencies.splice(loadedDependencies.indexOf(entry), 1);
51
+ yield unloadResource(entry.url);
52
+ }
35
53
  }
36
54
  });
37
55
  },
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjF,MAAM,UAAU,sBAAsB,CAAC,OAA2C,EAAE,IAAI,GAAG,IAAI;IAC7F,MAAM,uBAAuB,GAAkB,EAAE,CAAC;IAClD,IAAI,UAA8B,CAAC;IAEnC,OAAO;QACL,aAAa;YACX,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,sBAAsB,CAAC,UAAyB;YAC9C,MAAM,IAAI,GAAG,GAAS,EAAE;gBACtB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;oBAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;wBAC3B,MAAM,mBAAmB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACnE,MAAM,OAAO,GAAG,GAAG,mBAAmB,MAAM,CAAC;wBAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;wBAErD,IAAI,MAAM,EAAE;4BACV,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;yBAC9C;6BAAM;4BACL,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;yBAC5B;wBAED,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBACtC;iBACF;YACH,CAAC,CAAA,CAAC;YACF,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QACK,uBAAuB;;gBAC3B,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBAErF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;oBAClC,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;iBACjC;YACH,CAAC;SAAA;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGjF,MAAM,kBAAkB,GAAG,OAAC,MAAM,CAAC,mBAAmB,oCAA1B,MAAM,CAAC,mBAAmB,GAAK,EAAE,EAAC,CAAC;AAE/D,MAAM,UAAU,sBAAsB,CAAC,OAA2C,EAAE,IAAI,GAAG,IAAI;IAC7F,MAAM,uBAAuB,GAAkB,EAAE,CAAC;IAClD,IAAI,UAA8B,CAAC;IAEnC,OAAO;QACL,aAAa;YACX,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,sBAAsB,CAAC,UAAyB;YAC9C,MAAM,IAAI,GAAG,GAAS,EAAE;gBACtB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;oBAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAE9D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;wBAC3B,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;wBAE/D,IAAI,KAAK,EAAE;4BACT,KAAK,CAAC,KAAK,EAAE,CAAC;yBACf;6BAAM;4BACL,MAAM,mBAAmB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BACnE,MAAM,OAAO,GAAG,GAAG,mBAAmB,MAAM,CAAC;4BAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;4BAErD,IAAI,MAAM,EAAE;gCACV,MAAM,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;6BAC9C;iCAAM;gCACL,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;6BAC5B;4BAED,kBAAkB,CAAC,IAAI,CAAC;gCACtB,IAAI,EAAE,OAAO;gCACb,GAAG,EAAE,MAAM;gCACX,KAAK,EAAE,CAAC;6BACT,CAAC,CAAC;yBACJ;wBAED,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACvC;iBACF;YACH,CAAC,CAAA,CAAC;YACF,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QACK,uBAAuB;;gBAC3B,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBAErF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;oBAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBAEjE,IAAI,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;wBACvB,kBAAkB,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;wBAChE,MAAM,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qBACjC;iBACF;YACH,CAAC;SAAA;KACF,CAAC;AACJ,CAAC"}
package/esm/types.d.ts CHANGED
@@ -4,6 +4,11 @@ declare global {
4
4
  Blazor: any;
5
5
  DotNet: any;
6
6
  $blazorLoader: Promise<HTMLDivElement>;
7
+ $blazorDependencies: Array<{
8
+ name: string;
9
+ url: string;
10
+ count: number;
11
+ }>;
7
12
  }
8
13
  }
9
14
  declare module 'piral-core/lib/types/custom' {
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
+ var _a;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.createDependencyLoader = void 0;
4
5
  const tslib_1 = require("tslib");
5
6
  const interop_1 = require("./interop");
7
+ const loadedDependencies = ((_a = window.$blazorDependencies) !== null && _a !== void 0 ? _a : (window.$blazorDependencies = []));
6
8
  function createDependencyLoader(convert, lazy = true) {
7
9
  const definedBlazorReferences = [];
8
10
  let dependency;
@@ -13,17 +15,29 @@ function createDependencyLoader(convert, lazy = true) {
13
15
  defineBlazorReferences(references) {
14
16
  const load = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
15
17
  for (const dllUrl of references) {
18
+ const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
16
19
  if (dllUrl.endsWith('.dll')) {
17
- const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
18
- const pdbName = `${urlWithoutExtension}.pdb`;
19
- const pdbUrl = references.find((m) => m === pdbName);
20
- if (pdbUrl) {
21
- yield (0, interop_1.loadResourceWithSymbol)(dllUrl, pdbUrl);
20
+ const entry = loadedDependencies.find(m => m.name === dllName);
21
+ if (entry) {
22
+ entry.count++;
22
23
  }
23
24
  else {
24
- yield (0, interop_1.loadResource)(dllUrl);
25
+ const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
26
+ const pdbName = `${urlWithoutExtension}.pdb`;
27
+ const pdbUrl = references.find((m) => m === pdbName);
28
+ if (pdbUrl) {
29
+ yield (0, interop_1.loadResourceWithSymbol)(dllUrl, pdbUrl);
30
+ }
31
+ else {
32
+ yield (0, interop_1.loadResource)(dllUrl);
33
+ }
34
+ loadedDependencies.push({
35
+ name: dllName,
36
+ url: dllUrl,
37
+ count: 1,
38
+ });
25
39
  }
26
- definedBlazorReferences.push(dllUrl);
40
+ definedBlazorReferences.push(dllName);
27
41
  }
28
42
  }
29
43
  });
@@ -34,7 +48,11 @@ function createDependencyLoader(convert, lazy = true) {
34
48
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
35
49
  const references = definedBlazorReferences.splice(0, definedBlazorReferences.length);
36
50
  for (const reference of references) {
37
- yield (0, interop_1.unloadResource)(reference);
51
+ const entry = loadedDependencies.find(m => m.name === reference);
52
+ if (--entry.count === 0) {
53
+ loadedDependencies.splice(loadedDependencies.indexOf(entry), 1);
54
+ yield (0, interop_1.unloadResource)(entry.url);
55
+ }
38
56
  }
39
57
  });
40
58
  },
@@ -1 +1 @@
1
- {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":";;;;AAAA,uCAAiF;AAGjF,SAAgB,sBAAsB,CAAC,OAA2C,EAAE,IAAI,GAAG,IAAI;IAC7F,MAAM,uBAAuB,GAAkB,EAAE,CAAC;IAClD,IAAI,UAA8B,CAAC;IAEnC,OAAO;QACL,aAAa;YACX,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,sBAAsB,CAAC,UAAyB;YAC9C,MAAM,IAAI,GAAG,GAAS,EAAE;gBACtB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;oBAC/B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;wBAC3B,MAAM,mBAAmB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBACnE,MAAM,OAAO,GAAG,GAAG,mBAAmB,MAAM,CAAC;wBAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;wBAErD,IAAI,MAAM,EAAE;4BACV,MAAM,IAAA,gCAAsB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;yBAC9C;6BAAM;4BACL,MAAM,IAAA,sBAAY,EAAC,MAAM,CAAC,CAAC;yBAC5B;wBAED,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBACtC;iBACF;YACH,CAAC,CAAA,CAAC;YACF,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QACK,uBAAuB;;gBAC3B,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBAErF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;oBAClC,MAAM,IAAA,wBAAc,EAAC,SAAS,CAAC,CAAC;iBACjC;YACH,CAAC;SAAA;KACF,CAAC;AACJ,CAAC;AArCD,wDAqCC"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":";;;;;AAAA,uCAAiF;AAGjF,MAAM,kBAAkB,GAAG,OAAC,MAAM,CAAC,mBAAmB,oCAA1B,MAAM,CAAC,mBAAmB,GAAK,EAAE,EAAC,CAAC;AAE/D,SAAgB,sBAAsB,CAAC,OAA2C,EAAE,IAAI,GAAG,IAAI;IAC7F,MAAM,uBAAuB,GAAkB,EAAE,CAAC;IAClD,IAAI,UAA8B,CAAC;IAEnC,OAAO;QACL,aAAa;YACX,OAAO,UAAU,CAAC;QACpB,CAAC;QACD,sBAAsB,CAAC,UAAyB;YAC9C,MAAM,IAAI,GAAG,GAAS,EAAE;gBACtB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE;oBAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;oBAE9D,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;wBAC3B,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;wBAE/D,IAAI,KAAK,EAAE;4BACT,KAAK,CAAC,KAAK,EAAE,CAAC;yBACf;6BAAM;4BACL,MAAM,mBAAmB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;4BACnE,MAAM,OAAO,GAAG,GAAG,mBAAmB,MAAM,CAAC;4BAC7C,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC;4BAErD,IAAI,MAAM,EAAE;gCACV,MAAM,IAAA,gCAAsB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;6BAC9C;iCAAM;gCACL,MAAM,IAAA,sBAAY,EAAC,MAAM,CAAC,CAAC;6BAC5B;4BAED,kBAAkB,CAAC,IAAI,CAAC;gCACtB,IAAI,EAAE,OAAO;gCACb,GAAG,EAAE,MAAM;gCACX,KAAK,EAAE,CAAC;6BACT,CAAC,CAAC;yBACJ;wBAED,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACvC;iBACF;YACH,CAAC,CAAA,CAAC;YACF,IAAI,MAAM,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,UAAU,GAAG,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE,CAAC,CAAC;QACjD,CAAC;QACK,uBAAuB;;gBAC3B,MAAM,UAAU,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAC;gBAErF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;oBAClC,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBAEjE,IAAI,EAAE,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;wBACvB,kBAAkB,CAAC,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;wBAChE,MAAM,IAAA,wBAAc,EAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qBACjC;iBACF;YACH,CAAC;SAAA;KACF,CAAC;AACJ,CAAC;AAxDD,wDAwDC"}
package/lib/types.d.ts CHANGED
@@ -4,6 +4,11 @@ declare global {
4
4
  Blazor: any;
5
5
  DotNet: any;
6
6
  $blazorLoader: Promise<HTMLDivElement>;
7
+ $blazorDependencies: Array<{
8
+ name: string;
9
+ url: string;
10
+ count: number;
11
+ }>;
7
12
  }
8
13
  }
9
14
  declare module 'piral-core/lib/types/custom' {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-blazor",
3
- "version": "0.15.0-beta.4791",
3
+ "version": "0.15.0-beta.4801",
4
4
  "description": "Plugin for integrating Blazor components in Piral.",
5
5
  "keywords": [
6
6
  "piral",
@@ -67,10 +67,10 @@
67
67
  "test": "echo \"Error: run tests from root\" && exit 1"
68
68
  },
69
69
  "devDependencies": {
70
- "piral-core": "0.15.0-beta.4791"
70
+ "piral-core": "0.15.0-beta.4801"
71
71
  },
72
72
  "peerDependencies": {
73
73
  "blazor": "*"
74
74
  },
75
- "gitHead": "9acec0b945406f141dbb5b0db12760245f911bc6"
75
+ "gitHead": "ba4acd10b46e8c233841863206f9fb2ccc8f1958"
76
76
  }
@@ -1,6 +1,8 @@
1
1
  import { loadResource, loadResourceWithSymbol, unloadResource } from './interop';
2
2
  import type { createConverter } from './converter';
3
3
 
4
+ const loadedDependencies = (window.$blazorDependencies ??= []);
5
+
4
6
  export function createDependencyLoader(convert: ReturnType<typeof createConverter>, lazy = true) {
5
7
  const definedBlazorReferences: Array<string> = [];
6
8
  let dependency: () => Promise<any>;
@@ -12,18 +14,32 @@ export function createDependencyLoader(convert: ReturnType<typeof createConverte
12
14
  defineBlazorReferences(references: Array<string>) {
13
15
  const load = async () => {
14
16
  for (const dllUrl of references) {
17
+ const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
18
+
15
19
  if (dllUrl.endsWith('.dll')) {
16
- const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
17
- const pdbName = `${urlWithoutExtension}.pdb`;
18
- const pdbUrl = references.find((m) => m === pdbName);
20
+ const entry = loadedDependencies.find(m => m.name === dllName);
19
21
 
20
- if (pdbUrl) {
21
- await loadResourceWithSymbol(dllUrl, pdbUrl);
22
+ if (entry) {
23
+ entry.count++;
22
24
  } else {
23
- await loadResource(dllUrl);
25
+ const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
26
+ const pdbName = `${urlWithoutExtension}.pdb`;
27
+ const pdbUrl = references.find((m) => m === pdbName);
28
+
29
+ if (pdbUrl) {
30
+ await loadResourceWithSymbol(dllUrl, pdbUrl);
31
+ } else {
32
+ await loadResource(dllUrl);
33
+ }
34
+
35
+ loadedDependencies.push({
36
+ name: dllName,
37
+ url: dllUrl,
38
+ count: 1,
39
+ });
24
40
  }
25
41
 
26
- definedBlazorReferences.push(dllUrl);
42
+ definedBlazorReferences.push(dllName);
27
43
  }
28
44
  }
29
45
  };
@@ -34,7 +50,12 @@ export function createDependencyLoader(convert: ReturnType<typeof createConverte
34
50
  const references = definedBlazorReferences.splice(0, definedBlazorReferences.length);
35
51
 
36
52
  for (const reference of references) {
37
- await unloadResource(reference);
53
+ const entry = loadedDependencies.find(m => m.name === reference);
54
+
55
+ if (--entry.count === 0) {
56
+ loadedDependencies.splice(loadedDependencies.indexOf(entry), 1);
57
+ await unloadResource(entry.url);
58
+ }
38
59
  }
39
60
  },
40
61
  };
package/src/types.ts CHANGED
@@ -5,6 +5,11 @@ declare global {
5
5
  Blazor: any;
6
6
  DotNet: any;
7
7
  $blazorLoader: Promise<HTMLDivElement>;
8
+ $blazorDependencies: Array<{
9
+ name: string;
10
+ url: string;
11
+ count: number;
12
+ }>;
8
13
  }
9
14
  }
10
15