piral-blazor 0.15.2-beta.4923 → 0.15.2-beta.4938

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/convert.d.ts CHANGED
@@ -12,5 +12,5 @@ export interface BlazorConverter {
12
12
  }
13
13
  export declare function defineBlazorOptions(options: BlazorOptions): void;
14
14
  export declare const fromBlazor: BlazorConverter;
15
- export declare const defineBlazorReferences: (references: string[]) => void;
15
+ export declare const defineBlazorReferences: (references: string[], meta?: PiletMetadata) => void;
16
16
  export declare const releaseBlazorReferences: () => Promise<void>;
@@ -1,6 +1,6 @@
1
1
  import type { BaseComponentProps, ForeignComponent } from 'piral-core';
2
- import { BlazorOptions } from './types';
2
+ import { BlazorDependencyLoader, BlazorOptions, BlazorRootConfig } from './types';
3
3
  export declare function createConverter(lazy: boolean): {
4
- <TProps extends BaseComponentProps>(moduleName: string, dependency: () => Promise<void>, args: Record<string, any>, options?: BlazorOptions): ForeignComponent<TProps>;
5
- loader: Promise<HTMLDivElement>;
4
+ <TProps extends BaseComponentProps>(moduleName: string, dependency: BlazorDependencyLoader, args: Record<string, any>, options?: BlazorOptions): ForeignComponent<TProps>;
5
+ loader: Promise<BlazorRootConfig>;
6
6
  };
package/esm/converter.js CHANGED
@@ -58,16 +58,17 @@ export function createConverter(lazy) {
58
58
  locals.update = noop;
59
59
  locals.dispose = attachEvents(el, (ev) => data.piral.renderHtmlExtension(ev.detail.target, ev.detail.props), (ev) => ev.detail.replace ? nav.replace(ev.detail.to, ev.detail.store) : nav.push(ev.detail.to, ev.detail.state));
60
60
  (loader || (loader = boot()))
61
- .then((root) => dependency()
61
+ .then((config) => dependency(config)
62
62
  .then(() => activate(moduleName, props))
63
63
  .then((refId) => {
64
+ const [root] = config;
64
65
  if (locals.state === 'fresh') {
65
66
  locals.id = refId;
66
67
  locals.node = root.querySelector(`#${locals.id} > div`);
67
68
  project(locals.node, el, options);
68
69
  locals.state = 'mounted';
69
70
  locals.referenceId = refId;
70
- locals.update(root);
71
+ locals.update(config);
71
72
  locals.update = noop;
72
73
  }
73
74
  }))
@@ -83,7 +84,7 @@ export function createConverter(lazy) {
83
84
  removeGlobalEventListeners(el);
84
85
  el.removeAttribute('data-blazor-pilet-root');
85
86
  locals.dispose();
86
- enqueueChange(locals, (root) => {
87
+ enqueueChange(locals, ([root]) => {
87
88
  root.querySelector(`#${locals.id}`).appendChild(locals.node);
88
89
  deactivate(moduleName, locals.referenceId);
89
90
  });
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"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"}
package/esm/create.js CHANGED
@@ -8,11 +8,13 @@ export function createBlazorApi(config = {}) {
8
8
  return (context) => {
9
9
  const convert = createConverter(lazy);
10
10
  context.converters.blazor = ({ moduleName, args, dependency, options }) => convert(moduleName, dependency, args, options);
11
- return () => {
11
+ return (_, meta) => {
12
12
  const loader = createDependencyLoader(convert, lazy);
13
13
  let options;
14
14
  return {
15
- defineBlazorReferences: loader.defineBlazorReferences,
15
+ defineBlazorReferences(references) {
16
+ return loader.defineBlazorReferences(references, meta);
17
+ },
16
18
  defineBlazorOptions(blazorOptions) {
17
19
  options = blazorOptions;
18
20
  },
package/esm/create.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAcxD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAuB,EAAE;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAExB,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CACxE,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO,GAAG,EAAE;YACV,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrD,IAAI,OAAsB,CAAC;YAE3B,OAAO;gBACL,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;gBACrD,mBAAmB,CAAC,aAA4B;oBAC9C,OAAO,GAAG,aAAa,CAAC;gBAC1B,CAAC;gBACD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;gBACvD,UAAU,CAAC,UAAU,EAAE,IAAI;oBACzB,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE;wBAClC,UAAU;wBACV,IAAI;wBACJ,OAAO;qBACR,CAAC;gBACJ,CAAC;aACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAcxD;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,SAAuB,EAAE;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAExB,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CACxE,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YACjB,MAAM,MAAM,GAAG,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrD,IAAI,OAAsB,CAAC;YAE3B,OAAO;gBACL,sBAAsB,CAAC,UAAU;oBAC/B,OAAO,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACzD,CAAC;gBACD,mBAAmB,CAAC,aAA4B;oBAC9C,OAAO,GAAG,aAAa,CAAC;gBAC1B,CAAC;gBACD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;gBACvD,UAAU,CAAC,UAAU,EAAE,IAAI;oBACzB,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE;wBAClC,UAAU;wBACV,IAAI;wBACJ,OAAO;qBACR,CAAC;gBACJ,CAAC;aACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
@@ -1,6 +1,8 @@
1
+ import type { PiletMetadata } from 'piral-core';
1
2
  import type { createConverter } from './converter';
3
+ import type { BlazorDependencyLoader } from './types';
2
4
  export declare function createDependencyLoader(convert: ReturnType<typeof createConverter>, lazy?: boolean): {
3
- getDependency(): () => Promise<any>;
4
- defineBlazorReferences(references: Array<string>): void;
5
+ getDependency(): BlazorDependencyLoader;
6
+ defineBlazorReferences(references: Array<string>, meta?: Partial<PiletMetadata>): void;
5
7
  releaseBlazorReferences(): Promise<void>;
6
8
  };
@@ -1,47 +1,72 @@
1
1
  var _a;
2
2
  import { __awaiter } from "tslib";
3
- import { loadResource, loadResourceWithSymbol, unloadResource } from './interop';
3
+ import { loadBlazorPilet, loadResource, loadResourceWithSymbol, unloadBlazorPilet, unloadResource } from './interop';
4
4
  const loadedDependencies = ((_a = window.$blazorDependencies) !== null && _a !== void 0 ? _a : (window.$blazorDependencies = []));
5
5
  export function createDependencyLoader(convert, lazy = true) {
6
6
  const definedBlazorReferences = [];
7
+ const loadedBlazorPilets = [];
7
8
  let dependency;
8
9
  return {
9
10
  getDependency() {
10
11
  return dependency;
11
12
  },
12
- defineBlazorReferences(references) {
13
- const load = () => __awaiter(this, void 0, void 0, function* () {
14
- for (const dllUrl of references) {
15
- const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
16
- if (dllUrl.endsWith('.dll')) {
17
- const entry = loadedDependencies.find((m) => m.name === dllName);
18
- if (entry) {
19
- entry.count++;
20
- yield entry.promise;
21
- }
22
- else {
23
- const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
24
- const pdbName = `${urlWithoutExtension}.pdb`;
25
- const pdbUrl = references.find((m) => m === pdbName);
26
- const promise = pdbUrl ? loadResourceWithSymbol(dllUrl, pdbUrl) : loadResource(dllUrl);
27
- loadedDependencies.push({
28
- name: dllName,
29
- url: dllUrl,
30
- count: 1,
31
- promise,
32
- });
33
- yield promise;
13
+ defineBlazorReferences(references, meta = {}) {
14
+ const load = ([_, capabilities]) => __awaiter(this, void 0, void 0, function* () {
15
+ if (capabilities.includes('load')) {
16
+ // new loading mechanism
17
+ const dependencies = references.filter((m) => m.endsWith('.dll'));
18
+ const dllUrl = dependencies.pop();
19
+ const piletName = dllUrl.substring(0, dllUrl.length - 4);
20
+ const piletPdb = `${piletName}.pdb`;
21
+ const pdbUrl = references.find((m) => m === piletPdb);
22
+ const id = Math.random().toString(26).substring(2);
23
+ yield loadBlazorPilet(id, {
24
+ name: meta.name || '(unknown)',
25
+ version: meta.version || '0.0.0',
26
+ config: JSON.stringify(meta.config || {}),
27
+ baseUrl: meta.basePath || dllUrl.substring(0, dllUrl.lastIndexOf('/')).replace('/_framework/', '/'),
28
+ dependencies,
29
+ dllUrl,
30
+ pdbUrl,
31
+ });
32
+ loadedBlazorPilets.push(id);
33
+ }
34
+ else {
35
+ // old loading mechanism
36
+ for (const dllUrl of references) {
37
+ const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
38
+ if (dllUrl.endsWith('.dll')) {
39
+ const entry = loadedDependencies.find((m) => m.name === dllName);
40
+ if (entry) {
41
+ entry.count++;
42
+ yield entry.promise;
43
+ }
44
+ else {
45
+ const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
46
+ const pdbName = `${urlWithoutExtension}.pdb`;
47
+ const pdbUrl = references.find((m) => m === pdbName);
48
+ const promise = pdbUrl ? loadResourceWithSymbol(dllUrl, pdbUrl) : loadResource(dllUrl);
49
+ loadedDependencies.push({
50
+ name: dllName,
51
+ url: dllUrl,
52
+ count: 1,
53
+ promise,
54
+ });
55
+ yield promise;
56
+ }
57
+ definedBlazorReferences.push(dllName);
34
58
  }
35
- definedBlazorReferences.push(dllName);
36
59
  }
37
60
  }
38
61
  });
39
62
  let result = !lazy && convert.loader.then(load);
40
- dependency = () => result || (result = load());
63
+ dependency = (config) => result || (result = load(config));
41
64
  },
42
65
  releaseBlazorReferences() {
43
66
  return __awaiter(this, void 0, void 0, function* () {
44
67
  const references = definedBlazorReferences.splice(0, definedBlazorReferences.length);
68
+ const ids = loadedBlazorPilets.splice(0, loadedBlazorPilets.length);
69
+ // old way of loading
45
70
  for (const reference of references) {
46
71
  const entry = loadedDependencies.find((m) => m.name === reference);
47
72
  if (--entry.count === 0) {
@@ -49,6 +74,10 @@ export function createDependencyLoader(convert, lazy = true) {
49
74
  yield unloadResource(entry.url);
50
75
  }
51
76
  }
77
+ // new way of loading
78
+ for (const id of ids) {
79
+ yield unloadBlazorPilet(id);
80
+ }
52
81
  });
53
82
  },
54
83
  };
@@ -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,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,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;wBAEjE,IAAI,KAAK,EAAE;4BACT,KAAK,CAAC,KAAK,EAAE,CAAC;4BACd,MAAM,KAAK,CAAC,OAAO,CAAC;yBACrB;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;4BACrD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;4BAEvF,kBAAkB,CAAC,IAAI,CAAC;gCACtB,IAAI,EAAE,OAAO;gCACb,GAAG,EAAE,MAAM;gCACX,KAAK,EAAE,CAAC;gCACR,OAAO;6BACR,CAAC,CAAC;4BAEH,MAAM,OAAO,CAAC;yBACf;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,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBAEnE,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"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"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"}
package/esm/interop.d.ts CHANGED
@@ -1,9 +1,22 @@
1
- export declare function activate(moduleName: string, props: any): any;
2
- export declare function reactivate(moduleName: string, referenceId: string, props: any): any;
3
- export declare function deactivate(moduleName: string, referenceId: string): any;
4
- export declare function callNotifyLocationChanged(url: string, replace: boolean): any;
5
- export declare function loadResource(url: string): any;
6
- export declare function loadResourceWithSymbol(dllUrl: string, pdbUrl: string): any;
7
- export declare function unloadResource(url: string): any;
8
- export declare function initialize(scriptUrl: string, publicPath: string): Promise<HTMLDivElement>;
9
- export declare function createBootLoader(scriptUrl: string, satellites: Array<string>): () => Promise<HTMLDivElement>;
1
+ import type { BlazorRootConfig } from './types';
2
+ export declare function activate(moduleName: string, props: any): Promise<string>;
3
+ export declare function reactivate(moduleName: string, referenceId: string, props: any): Promise<void>;
4
+ export declare function deactivate(moduleName: string, referenceId: string): Promise<void>;
5
+ export declare function callNotifyLocationChanged(url: string, replace: boolean): Promise<void>;
6
+ export declare function getCapabilities(): Promise<Array<string>>;
7
+ export declare function loadResource(url: string): Promise<void>;
8
+ export declare function loadResourceWithSymbol(dllUrl: string, pdbUrl: string): Promise<void>;
9
+ export declare function unloadResource(url: string): Promise<void>;
10
+ export interface PiletData {
11
+ dllUrl: string;
12
+ pdbUrl?: string;
13
+ name: string;
14
+ version: string;
15
+ config: string;
16
+ baseUrl: string;
17
+ dependencies: Array<string>;
18
+ }
19
+ export declare function loadBlazorPilet(id: string, data: PiletData): any;
20
+ export declare function unloadBlazorPilet(id: string): any;
21
+ export declare function initialize(scriptUrl: string, publicPath: string): Promise<BlazorRootConfig>;
22
+ export declare function createBootLoader(scriptUrl: string, satellites: Array<string>): () => Promise<BlazorRootConfig>;
package/esm/interop.js CHANGED
@@ -43,13 +43,17 @@ function createBlazorStarter(publicPath) {
43
43
  }
44
44
  };
45
45
  navManager.getBaseURI = () => originalBase;
46
- return window.Blazor.start().then(() => {
46
+ return window.Blazor.start()
47
+ .then(getCapabilities)
48
+ .then((capabilities) => {
47
49
  baseElement.href = originalBase;
48
- return root;
50
+ return [root, capabilities];
49
51
  });
50
52
  };
51
53
  }
52
- return () => window.Blazor.start().then(() => root);
54
+ return () => window.Blazor.start()
55
+ .then(getCapabilities)
56
+ .then((capabilities) => [root, capabilities]);
53
57
  }
54
58
  function computePath() {
55
59
  try {
@@ -87,6 +91,13 @@ export function deactivate(moduleName, referenceId) {
87
91
  export function callNotifyLocationChanged(url, replace) {
88
92
  return window.DotNet.invokeMethodAsync(wasmLib, 'NotifyLocationChanged', url, replace);
89
93
  }
94
+ export function getCapabilities() {
95
+ return window.DotNet.invokeMethodAsync(coreLib, 'GetCapabilities').catch(() => {
96
+ // Apparently an older version of Piral.Blazor, which does not support this
97
+ // discard this error silently (in the future we may print warnings here)
98
+ return [];
99
+ });
100
+ }
90
101
  export function loadResource(url) {
91
102
  return window.DotNet.invokeMethodAsync(coreLib, 'LoadComponentsFromLibrary', url);
92
103
  }
@@ -96,6 +107,12 @@ export function loadResourceWithSymbol(dllUrl, pdbUrl) {
96
107
  export function unloadResource(url) {
97
108
  return window.DotNet.invokeMethodAsync(coreLib, 'UnloadComponentsFromLibrary', url);
98
109
  }
110
+ export function loadBlazorPilet(id, data) {
111
+ return window.DotNet.invokeMethodAsync(coreLib, 'LoadPilet', id, data);
112
+ }
113
+ export function unloadBlazorPilet(id) {
114
+ return window.DotNet.invokeMethodAsync(coreLib, 'UnloadPilet', id);
115
+ }
99
116
  export function initialize(scriptUrl, publicPath) {
100
117
  return new Promise((resolve, reject) => {
101
118
  const startBlazor = createBlazorStarter(publicPath);
@@ -118,7 +135,7 @@ export function createBootLoader(scriptUrl, satellites) {
118
135
  return () => {
119
136
  if (typeof window.$blazorLoader === 'undefined') {
120
137
  // we load all satellite scripts before we initialize blazor
121
- window.$blazorLoader = Promise.all(satellites.map((url) => addScript(url))).then(() => initialize(scriptUrl, publicPath));
138
+ window.$blazorLoader = Promise.all(satellites.map(addScript)).then(() => initialize(scriptUrl, publicPath));
122
139
  }
123
140
  return window.$blazorLoader;
124
141
  };
@@ -1 +1 @@
1
- {"version":3,"file":"interop.js","sourceRoot":"","sources":["../src/interop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interop.js","sourceRoot":"","sources":["../src/interop.ts"],"names":[],"mappings":"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"}
package/esm/types.d.ts CHANGED
@@ -1,9 +1,13 @@
1
1
  import type { ForeignComponent } from 'piral-core';
2
+ export declare type BlazorRootConfig = [root: HTMLDivElement, capabilities: Array<string>];
3
+ export interface BlazorDependencyLoader {
4
+ (config: BlazorRootConfig): Promise<void>;
5
+ }
2
6
  declare global {
3
7
  interface Window {
4
8
  Blazor: any;
5
9
  DotNet: any;
6
- $blazorLoader: Promise<HTMLDivElement>;
10
+ $blazorLoader: Promise<BlazorRootConfig>;
7
11
  $blazorDependencies: Array<{
8
12
  name: string;
9
13
  url: string;
@@ -41,7 +45,7 @@ export interface BlazorComponent {
41
45
  * An optional dependency that needs to load before
42
46
  * the component can be properly displayed.
43
47
  */
44
- dependency?: () => Promise<void>;
48
+ dependency?: BlazorDependencyLoader;
45
49
  /**
46
50
  * The type of the Blazor component.
47
51
  */
@@ -1,6 +1,6 @@
1
1
  import type { BaseComponentProps, ForeignComponent } from 'piral-core';
2
- import { BlazorOptions } from './types';
2
+ import { BlazorDependencyLoader, BlazorOptions, BlazorRootConfig } from './types';
3
3
  export declare function createConverter(lazy: boolean): {
4
- <TProps extends BaseComponentProps>(moduleName: string, dependency: () => Promise<void>, args: Record<string, any>, options?: BlazorOptions): ForeignComponent<TProps>;
5
- loader: Promise<HTMLDivElement>;
4
+ <TProps extends BaseComponentProps>(moduleName: string, dependency: BlazorDependencyLoader, args: Record<string, any>, options?: BlazorOptions): ForeignComponent<TProps>;
5
+ loader: Promise<BlazorRootConfig>;
6
6
  };
package/lib/converter.js CHANGED
@@ -61,16 +61,17 @@ function createConverter(lazy) {
61
61
  locals.update = noop;
62
62
  locals.dispose = (0, events_1.attachEvents)(el, (ev) => data.piral.renderHtmlExtension(ev.detail.target, ev.detail.props), (ev) => ev.detail.replace ? nav.replace(ev.detail.to, ev.detail.store) : nav.push(ev.detail.to, ev.detail.state));
63
63
  (loader || (loader = boot()))
64
- .then((root) => dependency()
64
+ .then((config) => dependency(config)
65
65
  .then(() => (0, interop_1.activate)(moduleName, props))
66
66
  .then((refId) => {
67
+ const [root] = config;
67
68
  if (locals.state === 'fresh') {
68
69
  locals.id = refId;
69
70
  locals.node = root.querySelector(`#${locals.id} > div`);
70
71
  project(locals.node, el, options);
71
72
  locals.state = 'mounted';
72
73
  locals.referenceId = refId;
73
- locals.update(root);
74
+ locals.update(config);
74
75
  locals.update = noop;
75
76
  }
76
77
  }))
@@ -86,7 +87,7 @@ function createConverter(lazy) {
86
87
  (0, events_1.removeGlobalEventListeners)(el);
87
88
  el.removeAttribute('data-blazor-pilet-root');
88
89
  locals.dispose();
89
- enqueueChange(locals, (root) => {
90
+ enqueueChange(locals, ([root]) => {
90
91
  root.querySelector(`#${locals.id}`).appendChild(locals.node);
91
92
  (0, interop_1.deactivate)(moduleName, locals.referenceId);
92
93
  });
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../src/converter.ts"],"names":[],"mappings":"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"}
package/lib/create.js CHANGED
@@ -11,11 +11,13 @@ function createBlazorApi(config = {}) {
11
11
  return (context) => {
12
12
  const convert = (0, converter_1.createConverter)(lazy);
13
13
  context.converters.blazor = ({ moduleName, args, dependency, options }) => convert(moduleName, dependency, args, options);
14
- return () => {
14
+ return (_, meta) => {
15
15
  const loader = (0, dependencies_1.createDependencyLoader)(convert, lazy);
16
16
  let options;
17
17
  return {
18
- defineBlazorReferences: loader.defineBlazorReferences,
18
+ defineBlazorReferences(references) {
19
+ return loader.defineBlazorReferences(references, meta);
20
+ },
19
21
  defineBlazorOptions(blazorOptions) {
20
22
  options = blazorOptions;
21
23
  },
package/lib/create.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAC9C,iDAAwD;AAcxD;;GAEG;AACH,SAAgB,eAAe,CAAC,SAAuB,EAAE;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAExB,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,IAAA,2BAAe,EAAC,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CACxE,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO,GAAG,EAAE;YACV,MAAM,MAAM,GAAG,IAAA,qCAAsB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrD,IAAI,OAAsB,CAAC;YAE3B,OAAO;gBACL,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;gBACrD,mBAAmB,CAAC,aAA4B;oBAC9C,OAAO,GAAG,aAAa,CAAC;gBAC1B,CAAC;gBACD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;gBACvD,UAAU,CAAC,UAAU,EAAE,IAAI;oBACzB,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE;wBAClC,UAAU;wBACV,IAAI;wBACJ,OAAO;qBACR,CAAC;gBACJ,CAAC;aACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AA9BD,0CA8BC"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":";;;AACA,2CAA8C;AAC9C,iDAAwD;AAcxD;;GAEG;AACH,SAAgB,eAAe,CAAC,SAAuB,EAAE;IACvD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAExB,OAAO,CAAC,OAAO,EAAE,EAAE;QACjB,MAAM,OAAO,GAAG,IAAA,2BAAe,EAAC,IAAI,CAAC,CAAC;QACtC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,EAAE,CACxE,OAAO,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAEjD,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE;YACjB,MAAM,MAAM,GAAG,IAAA,qCAAsB,EAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrD,IAAI,OAAsB,CAAC;YAE3B,OAAO;gBACL,sBAAsB,CAAC,UAAU;oBAC/B,OAAO,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBACzD,CAAC;gBACD,mBAAmB,CAAC,aAA4B;oBAC9C,OAAO,GAAG,aAAa,CAAC;gBAC1B,CAAC;gBACD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;gBACvD,UAAU,CAAC,UAAU,EAAE,IAAI;oBACzB,OAAO;wBACL,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE,MAAM,CAAC,aAAa,EAAE;wBAClC,UAAU;wBACV,IAAI;wBACJ,OAAO;qBACR,CAAC;gBACJ,CAAC;aACF,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAhCD,0CAgCC"}
@@ -1,6 +1,8 @@
1
+ import type { PiletMetadata } from 'piral-core';
1
2
  import type { createConverter } from './converter';
3
+ import type { BlazorDependencyLoader } from './types';
2
4
  export declare function createDependencyLoader(convert: ReturnType<typeof createConverter>, lazy?: boolean): {
3
- getDependency(): () => Promise<any>;
4
- defineBlazorReferences(references: Array<string>): void;
5
+ getDependency(): BlazorDependencyLoader;
6
+ defineBlazorReferences(references: Array<string>, meta?: Partial<PiletMetadata>): void;
5
7
  releaseBlazorReferences(): Promise<void>;
6
8
  };
@@ -7,44 +7,69 @@ const interop_1 = require("./interop");
7
7
  const loadedDependencies = ((_a = window.$blazorDependencies) !== null && _a !== void 0 ? _a : (window.$blazorDependencies = []));
8
8
  function createDependencyLoader(convert, lazy = true) {
9
9
  const definedBlazorReferences = [];
10
+ const loadedBlazorPilets = [];
10
11
  let dependency;
11
12
  return {
12
13
  getDependency() {
13
14
  return dependency;
14
15
  },
15
- defineBlazorReferences(references) {
16
- const load = () => tslib_1.__awaiter(this, void 0, void 0, function* () {
17
- for (const dllUrl of references) {
18
- const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
19
- if (dllUrl.endsWith('.dll')) {
20
- const entry = loadedDependencies.find((m) => m.name === dllName);
21
- if (entry) {
22
- entry.count++;
23
- yield entry.promise;
24
- }
25
- else {
26
- const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
27
- const pdbName = `${urlWithoutExtension}.pdb`;
28
- const pdbUrl = references.find((m) => m === pdbName);
29
- const promise = pdbUrl ? (0, interop_1.loadResourceWithSymbol)(dllUrl, pdbUrl) : (0, interop_1.loadResource)(dllUrl);
30
- loadedDependencies.push({
31
- name: dllName,
32
- url: dllUrl,
33
- count: 1,
34
- promise,
35
- });
36
- yield promise;
16
+ defineBlazorReferences(references, meta = {}) {
17
+ const load = ([_, capabilities]) => tslib_1.__awaiter(this, void 0, void 0, function* () {
18
+ if (capabilities.includes('load')) {
19
+ // new loading mechanism
20
+ const dependencies = references.filter((m) => m.endsWith('.dll'));
21
+ const dllUrl = dependencies.pop();
22
+ const piletName = dllUrl.substring(0, dllUrl.length - 4);
23
+ const piletPdb = `${piletName}.pdb`;
24
+ const pdbUrl = references.find((m) => m === piletPdb);
25
+ const id = Math.random().toString(26).substring(2);
26
+ yield (0, interop_1.loadBlazorPilet)(id, {
27
+ name: meta.name || '(unknown)',
28
+ version: meta.version || '0.0.0',
29
+ config: JSON.stringify(meta.config || {}),
30
+ baseUrl: meta.basePath || dllUrl.substring(0, dllUrl.lastIndexOf('/')).replace('/_framework/', '/'),
31
+ dependencies,
32
+ dllUrl,
33
+ pdbUrl,
34
+ });
35
+ loadedBlazorPilets.push(id);
36
+ }
37
+ else {
38
+ // old loading mechanism
39
+ for (const dllUrl of references) {
40
+ const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
41
+ if (dllUrl.endsWith('.dll')) {
42
+ const entry = loadedDependencies.find((m) => m.name === dllName);
43
+ if (entry) {
44
+ entry.count++;
45
+ yield entry.promise;
46
+ }
47
+ else {
48
+ const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
49
+ const pdbName = `${urlWithoutExtension}.pdb`;
50
+ const pdbUrl = references.find((m) => m === pdbName);
51
+ const promise = pdbUrl ? (0, interop_1.loadResourceWithSymbol)(dllUrl, pdbUrl) : (0, interop_1.loadResource)(dllUrl);
52
+ loadedDependencies.push({
53
+ name: dllName,
54
+ url: dllUrl,
55
+ count: 1,
56
+ promise,
57
+ });
58
+ yield promise;
59
+ }
60
+ definedBlazorReferences.push(dllName);
37
61
  }
38
- definedBlazorReferences.push(dllName);
39
62
  }
40
63
  }
41
64
  });
42
65
  let result = !lazy && convert.loader.then(load);
43
- dependency = () => result || (result = load());
66
+ dependency = (config) => result || (result = load(config));
44
67
  },
45
68
  releaseBlazorReferences() {
46
69
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
47
70
  const references = definedBlazorReferences.splice(0, definedBlazorReferences.length);
71
+ const ids = loadedBlazorPilets.splice(0, loadedBlazorPilets.length);
72
+ // old way of loading
48
73
  for (const reference of references) {
49
74
  const entry = loadedDependencies.find((m) => m.name === reference);
50
75
  if (--entry.count === 0) {
@@ -52,6 +77,10 @@ function createDependencyLoader(convert, lazy = true) {
52
77
  yield (0, interop_1.unloadResource)(entry.url);
53
78
  }
54
79
  }
80
+ // new way of loading
81
+ for (const id of ids) {
82
+ yield (0, interop_1.unloadBlazorPilet)(id);
83
+ }
55
84
  });
56
85
  },
57
86
  };
@@ -1 +1 @@
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,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;wBAEjE,IAAI,KAAK,EAAE;4BACT,KAAK,CAAC,KAAK,EAAE,CAAC;4BACd,MAAM,KAAK,CAAC,OAAO,CAAC;yBACrB;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;4BACrD,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,IAAA,gCAAsB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAA,sBAAY,EAAC,MAAM,CAAC,CAAC;4BAEvF,kBAAkB,CAAC,IAAI,CAAC;gCACtB,IAAI,EAAE,OAAO;gCACb,GAAG,EAAE,MAAM;gCACX,KAAK,EAAE,CAAC;gCACR,OAAO;6BACR,CAAC,CAAC;4BAEH,MAAM,OAAO,CAAC;yBACf;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,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;oBAEnE,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;AAvDD,wDAuDC"}
1
+ {"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../src/dependencies.ts"],"names":[],"mappings":"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"}
package/lib/interop.d.ts CHANGED
@@ -1,9 +1,22 @@
1
- export declare function activate(moduleName: string, props: any): any;
2
- export declare function reactivate(moduleName: string, referenceId: string, props: any): any;
3
- export declare function deactivate(moduleName: string, referenceId: string): any;
4
- export declare function callNotifyLocationChanged(url: string, replace: boolean): any;
5
- export declare function loadResource(url: string): any;
6
- export declare function loadResourceWithSymbol(dllUrl: string, pdbUrl: string): any;
7
- export declare function unloadResource(url: string): any;
8
- export declare function initialize(scriptUrl: string, publicPath: string): Promise<HTMLDivElement>;
9
- export declare function createBootLoader(scriptUrl: string, satellites: Array<string>): () => Promise<HTMLDivElement>;
1
+ import type { BlazorRootConfig } from './types';
2
+ export declare function activate(moduleName: string, props: any): Promise<string>;
3
+ export declare function reactivate(moduleName: string, referenceId: string, props: any): Promise<void>;
4
+ export declare function deactivate(moduleName: string, referenceId: string): Promise<void>;
5
+ export declare function callNotifyLocationChanged(url: string, replace: boolean): Promise<void>;
6
+ export declare function getCapabilities(): Promise<Array<string>>;
7
+ export declare function loadResource(url: string): Promise<void>;
8
+ export declare function loadResourceWithSymbol(dllUrl: string, pdbUrl: string): Promise<void>;
9
+ export declare function unloadResource(url: string): Promise<void>;
10
+ export interface PiletData {
11
+ dllUrl: string;
12
+ pdbUrl?: string;
13
+ name: string;
14
+ version: string;
15
+ config: string;
16
+ baseUrl: string;
17
+ dependencies: Array<string>;
18
+ }
19
+ export declare function loadBlazorPilet(id: string, data: PiletData): any;
20
+ export declare function unloadBlazorPilet(id: string): any;
21
+ export declare function initialize(scriptUrl: string, publicPath: string): Promise<BlazorRootConfig>;
22
+ export declare function createBootLoader(scriptUrl: string, satellites: Array<string>): () => Promise<BlazorRootConfig>;
package/lib/interop.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createBootLoader = exports.initialize = exports.unloadResource = exports.loadResourceWithSymbol = exports.loadResource = exports.callNotifyLocationChanged = exports.deactivate = exports.reactivate = exports.activate = void 0;
3
+ exports.createBootLoader = exports.initialize = exports.unloadBlazorPilet = exports.loadBlazorPilet = exports.unloadResource = exports.loadResourceWithSymbol = exports.loadResource = exports.getCapabilities = exports.callNotifyLocationChanged = exports.deactivate = exports.reactivate = exports.activate = void 0;
4
4
  const events_1 = require("./events");
5
5
  const wasmLib = 'Microsoft.AspNetCore.Components.WebAssembly';
6
6
  const coreLib = 'Piral.Blazor.Core';
@@ -46,13 +46,17 @@ function createBlazorStarter(publicPath) {
46
46
  }
47
47
  };
48
48
  navManager.getBaseURI = () => originalBase;
49
- return window.Blazor.start().then(() => {
49
+ return window.Blazor.start()
50
+ .then(getCapabilities)
51
+ .then((capabilities) => {
50
52
  baseElement.href = originalBase;
51
- return root;
53
+ return [root, capabilities];
52
54
  });
53
55
  };
54
56
  }
55
- return () => window.Blazor.start().then(() => root);
57
+ return () => window.Blazor.start()
58
+ .then(getCapabilities)
59
+ .then((capabilities) => [root, capabilities]);
56
60
  }
57
61
  function computePath() {
58
62
  try {
@@ -94,6 +98,14 @@ function callNotifyLocationChanged(url, replace) {
94
98
  return window.DotNet.invokeMethodAsync(wasmLib, 'NotifyLocationChanged', url, replace);
95
99
  }
96
100
  exports.callNotifyLocationChanged = callNotifyLocationChanged;
101
+ function getCapabilities() {
102
+ return window.DotNet.invokeMethodAsync(coreLib, 'GetCapabilities').catch(() => {
103
+ // Apparently an older version of Piral.Blazor, which does not support this
104
+ // discard this error silently (in the future we may print warnings here)
105
+ return [];
106
+ });
107
+ }
108
+ exports.getCapabilities = getCapabilities;
97
109
  function loadResource(url) {
98
110
  return window.DotNet.invokeMethodAsync(coreLib, 'LoadComponentsFromLibrary', url);
99
111
  }
@@ -106,6 +118,14 @@ function unloadResource(url) {
106
118
  return window.DotNet.invokeMethodAsync(coreLib, 'UnloadComponentsFromLibrary', url);
107
119
  }
108
120
  exports.unloadResource = unloadResource;
121
+ function loadBlazorPilet(id, data) {
122
+ return window.DotNet.invokeMethodAsync(coreLib, 'LoadPilet', id, data);
123
+ }
124
+ exports.loadBlazorPilet = loadBlazorPilet;
125
+ function unloadBlazorPilet(id) {
126
+ return window.DotNet.invokeMethodAsync(coreLib, 'UnloadPilet', id);
127
+ }
128
+ exports.unloadBlazorPilet = unloadBlazorPilet;
109
129
  function initialize(scriptUrl, publicPath) {
110
130
  return new Promise((resolve, reject) => {
111
131
  const startBlazor = createBlazorStarter(publicPath);
@@ -129,7 +149,7 @@ function createBootLoader(scriptUrl, satellites) {
129
149
  return () => {
130
150
  if (typeof window.$blazorLoader === 'undefined') {
131
151
  // we load all satellite scripts before we initialize blazor
132
- window.$blazorLoader = Promise.all(satellites.map((url) => addScript(url))).then(() => initialize(scriptUrl, publicPath));
152
+ window.$blazorLoader = Promise.all(satellites.map(addScript)).then(() => initialize(scriptUrl, publicPath));
133
153
  }
134
154
  return window.$blazorLoader;
135
155
  };
@@ -1 +1 @@
1
- {"version":3,"file":"interop.js","sourceRoot":"","sources":["../src/interop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interop.js","sourceRoot":"","sources":["../src/interop.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -1,9 +1,13 @@
1
1
  import type { ForeignComponent } from 'piral-core';
2
+ export declare type BlazorRootConfig = [root: HTMLDivElement, capabilities: Array<string>];
3
+ export interface BlazorDependencyLoader {
4
+ (config: BlazorRootConfig): Promise<void>;
5
+ }
2
6
  declare global {
3
7
  interface Window {
4
8
  Blazor: any;
5
9
  DotNet: any;
6
- $blazorLoader: Promise<HTMLDivElement>;
10
+ $blazorLoader: Promise<BlazorRootConfig>;
7
11
  $blazorDependencies: Array<{
8
12
  name: string;
9
13
  url: string;
@@ -41,7 +45,7 @@ export interface BlazorComponent {
41
45
  * An optional dependency that needs to load before
42
46
  * the component can be properly displayed.
43
47
  */
44
- dependency?: () => Promise<void>;
48
+ dependency?: BlazorDependencyLoader;
45
49
  /**
46
50
  * The type of the Blazor component.
47
51
  */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-blazor",
3
- "version": "0.15.2-beta.4923",
3
+ "version": "0.15.2-beta.4938",
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.2-beta.4923"
70
+ "piral-core": "0.15.2-beta.4938"
71
71
  },
72
72
  "peerDependencies": {
73
73
  "blazor": "*"
74
74
  },
75
- "gitHead": "f4547fa8ee856430f74ae3c46f92df77c6700b8d"
75
+ "gitHead": "f0447352d4b8883b6476b5d1a260d4ec9cf2660d"
76
76
  }
package/src/converter.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import type { BaseComponentProps, Disposable, ForeignComponent } from 'piral-core';
2
2
  import { addGlobalEventListeners, attachEvents, removeGlobalEventListeners } from './events';
3
3
  import { activate, deactivate, createBootLoader, reactivate, callNotifyLocationChanged } from './interop';
4
- import { BlazorOptions } from './types';
4
+ import { BlazorDependencyLoader, BlazorOptions, BlazorRootConfig } from './types';
5
5
  import bootConfig from '../infra.codegen';
6
6
 
7
7
  const noop = () => {};
@@ -44,7 +44,7 @@ interface BlazorLocals {
44
44
  referenceId: string;
45
45
  node: HTMLElement;
46
46
  dispose(): void;
47
- update(root: HTMLElement): void;
47
+ update(config: BlazorRootConfig): void;
48
48
  state: 'fresh' | 'mounted' | 'removed';
49
49
  }
50
50
 
@@ -53,7 +53,7 @@ export function createConverter(lazy: boolean) {
53
53
  let loader = !lazy && boot();
54
54
  let listener: Disposable = undefined;
55
55
 
56
- const enqueueChange = (locals: BlazorLocals, update: (root: HTMLDivElement) => void) => {
56
+ const enqueueChange = (locals: BlazorLocals, update: (root: BlazorRootConfig) => void) => {
57
57
  if (locals.state === 'mounted') {
58
58
  loader.then(update);
59
59
  } else {
@@ -63,7 +63,7 @@ export function createConverter(lazy: boolean) {
63
63
 
64
64
  const convert = <TProps extends BaseComponentProps>(
65
65
  moduleName: string,
66
- dependency: () => Promise<void>,
66
+ dependency: BlazorDependencyLoader,
67
67
  args: Record<string, any>,
68
68
  options?: BlazorOptions,
69
69
  ): ForeignComponent<TProps> => ({
@@ -94,17 +94,19 @@ export function createConverter(lazy: boolean) {
94
94
  );
95
95
 
96
96
  (loader || (loader = boot()))
97
- .then((root) =>
98
- dependency()
97
+ .then((config) =>
98
+ dependency(config)
99
99
  .then(() => activate(moduleName, props))
100
100
  .then((refId) => {
101
+ const [root] = config;
102
+
101
103
  if (locals.state === 'fresh') {
102
104
  locals.id = refId;
103
105
  locals.node = root.querySelector(`#${locals.id} > div`);
104
106
  project(locals.node, el, options);
105
107
  locals.state = 'mounted';
106
108
  locals.referenceId = refId;
107
- locals.update(root);
109
+ locals.update(config);
108
110
  locals.update = noop;
109
111
  }
110
112
  }),
@@ -122,7 +124,7 @@ export function createConverter(lazy: boolean) {
122
124
  el.removeAttribute('data-blazor-pilet-root');
123
125
  locals.dispose();
124
126
 
125
- enqueueChange(locals, (root) => {
127
+ enqueueChange(locals, ([root]) => {
126
128
  root.querySelector(`#${locals.id}`).appendChild(locals.node);
127
129
  deactivate(moduleName, locals.referenceId);
128
130
  });
package/src/create.ts CHANGED
@@ -25,12 +25,14 @@ export function createBlazorApi(config: BlazorConfig = {}): PiralPlugin<PiletBla
25
25
  context.converters.blazor = ({ moduleName, args, dependency, options }) =>
26
26
  convert(moduleName, dependency, args, options);
27
27
 
28
- return () => {
28
+ return (_, meta) => {
29
29
  const loader = createDependencyLoader(convert, lazy);
30
30
  let options: BlazorOptions;
31
31
 
32
32
  return {
33
- defineBlazorReferences: loader.defineBlazorReferences,
33
+ defineBlazorReferences(references) {
34
+ return loader.defineBlazorReferences(references, meta);
35
+ },
34
36
  defineBlazorOptions(blazorOptions: BlazorOptions) {
35
37
  options = blazorOptions;
36
38
  },
@@ -1,53 +1,83 @@
1
- import { loadResource, loadResourceWithSymbol, unloadResource } from './interop';
1
+ import type { PiletMetadata } from 'piral-core';
2
+ import { loadBlazorPilet, loadResource, loadResourceWithSymbol, unloadBlazorPilet, unloadResource } from './interop';
2
3
  import type { createConverter } from './converter';
4
+ import type { BlazorDependencyLoader, BlazorRootConfig } from './types';
3
5
 
4
6
  const loadedDependencies = (window.$blazorDependencies ??= []);
5
7
 
6
8
  export function createDependencyLoader(convert: ReturnType<typeof createConverter>, lazy = true) {
7
9
  const definedBlazorReferences: Array<string> = [];
8
- let dependency: () => Promise<any>;
10
+ const loadedBlazorPilets: Array<string> = [];
11
+ let dependency: BlazorDependencyLoader;
9
12
 
10
13
  return {
11
14
  getDependency() {
12
15
  return dependency;
13
16
  },
14
- defineBlazorReferences(references: Array<string>) {
15
- const load = async () => {
16
- for (const dllUrl of references) {
17
- const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
18
-
19
- if (dllUrl.endsWith('.dll')) {
20
- const entry = loadedDependencies.find((m) => m.name === dllName);
21
-
22
- if (entry) {
23
- entry.count++;
24
- await entry.promise;
25
- } else {
26
- const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
27
- const pdbName = `${urlWithoutExtension}.pdb`;
28
- const pdbUrl = references.find((m) => m === pdbName);
29
- const promise = pdbUrl ? loadResourceWithSymbol(dllUrl, pdbUrl) : loadResource(dllUrl);
30
-
31
- loadedDependencies.push({
32
- name: dllName,
33
- url: dllUrl,
34
- count: 1,
35
- promise,
36
- });
37
-
38
- await promise;
39
- }
17
+ defineBlazorReferences(references: Array<string>, meta: Partial<PiletMetadata> = {}) {
18
+ const load = async ([_, capabilities]: BlazorRootConfig) => {
19
+ if (capabilities.includes('load')) {
20
+ // new loading mechanism
21
+
22
+ const dependencies = references.filter((m) => m.endsWith('.dll'));
23
+ const dllUrl = dependencies.pop();
24
+ const piletName = dllUrl.substring(0, dllUrl.length - 4);
25
+ const piletPdb = `${piletName}.pdb`;
26
+ const pdbUrl = references.find((m) => m === piletPdb);
27
+ const id = Math.random().toString(26).substring(2);
28
+
29
+ await loadBlazorPilet(id, {
30
+ name: meta.name || '(unknown)',
31
+ version: meta.version || '0.0.0',
32
+ config: JSON.stringify(meta.config || {}),
33
+ baseUrl: meta.basePath || dllUrl.substring(0, dllUrl.lastIndexOf('/')).replace('/_framework/', '/'),
34
+ dependencies,
35
+ dllUrl,
36
+ pdbUrl,
37
+ });
38
+
39
+ loadedBlazorPilets.push(id);
40
+ } else {
41
+ // old loading mechanism
42
+
43
+ for (const dllUrl of references) {
44
+ const dllName = dllUrl.substring(dllUrl.lastIndexOf('/') + 1);
45
+
46
+ if (dllUrl.endsWith('.dll')) {
47
+ const entry = loadedDependencies.find((m) => m.name === dllName);
40
48
 
41
- definedBlazorReferences.push(dllName);
49
+ if (entry) {
50
+ entry.count++;
51
+ await entry.promise;
52
+ } else {
53
+ const urlWithoutExtension = dllUrl.substring(0, dllUrl.length - 4);
54
+ const pdbName = `${urlWithoutExtension}.pdb`;
55
+ const pdbUrl = references.find((m) => m === pdbName);
56
+ const promise = pdbUrl ? loadResourceWithSymbol(dllUrl, pdbUrl) : loadResource(dllUrl);
57
+
58
+ loadedDependencies.push({
59
+ name: dllName,
60
+ url: dllUrl,
61
+ count: 1,
62
+ promise,
63
+ });
64
+
65
+ await promise;
66
+ }
67
+
68
+ definedBlazorReferences.push(dllName);
69
+ }
42
70
  }
43
71
  }
44
72
  };
45
73
  let result = !lazy && convert.loader.then(load);
46
- dependency = () => result || (result = load());
74
+ dependency = (config) => result || (result = load(config));
47
75
  },
48
76
  async releaseBlazorReferences() {
49
77
  const references = definedBlazorReferences.splice(0, definedBlazorReferences.length);
78
+ const ids = loadedBlazorPilets.splice(0, loadedBlazorPilets.length);
50
79
 
80
+ // old way of loading
51
81
  for (const reference of references) {
52
82
  const entry = loadedDependencies.find((m) => m.name === reference);
53
83
 
@@ -56,6 +86,11 @@ export function createDependencyLoader(convert: ReturnType<typeof createConverte
56
86
  await unloadResource(entry.url);
57
87
  }
58
88
  }
89
+
90
+ // new way of loading
91
+ for (const id of ids) {
92
+ await unloadBlazorPilet(id);
93
+ }
59
94
  },
60
95
  };
61
96
  }
package/src/interop.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { emitRenderEvent, emitNavigateEvent } from './events';
2
+ import type { BlazorRootConfig } from './types';
2
3
 
3
4
  const wasmLib = 'Microsoft.AspNetCore.Components.WebAssembly';
4
5
  const coreLib = 'Piral.Blazor.Core';
@@ -30,7 +31,7 @@ function createBase() {
30
31
  return document.head.appendChild(el);
31
32
  }
32
33
 
33
- function createBlazorStarter(publicPath: string): () => Promise<HTMLDivElement> {
34
+ function createBlazorStarter(publicPath: string): () => Promise<BlazorRootConfig> {
34
35
  const root = document.body.appendChild(document.createElement('div'));
35
36
 
36
37
  root.style.display = 'none';
@@ -55,14 +56,19 @@ function createBlazorStarter(publicPath: string): () => Promise<HTMLDivElement>
55
56
 
56
57
  navManager.getBaseURI = () => originalBase;
57
58
 
58
- return window.Blazor.start().then(() => {
59
- baseElement.href = originalBase;
60
- return root;
61
- });
59
+ return window.Blazor.start()
60
+ .then(getCapabilities)
61
+ .then((capabilities) => {
62
+ baseElement.href = originalBase;
63
+ return [root, capabilities];
64
+ });
62
65
  };
63
66
  }
64
67
 
65
- return () => window.Blazor.start().then(() => root);
68
+ return () =>
69
+ window.Blazor.start()
70
+ .then(getCapabilities)
71
+ .then((capabilities) => [root, capabilities]);
66
72
  }
67
73
 
68
74
  function computePath() {
@@ -88,39 +94,65 @@ function addScript(url: string) {
88
94
  });
89
95
  }
90
96
 
91
- export function activate(moduleName: string, props: any) {
97
+ export function activate(moduleName: string, props: any): Promise<string> {
92
98
  return window.DotNet.invokeMethodAsync(coreLib, 'Activate', moduleName, props);
93
99
  }
94
100
 
95
- export function reactivate(moduleName: string, referenceId: string, props: any) {
101
+ export function reactivate(moduleName: string, referenceId: string, props: any): Promise<void> {
96
102
  return window.DotNet.invokeMethodAsync(coreLib, 'Reactivate', moduleName, referenceId, props).catch(() => {
97
103
  // Apparently an older version of Piral.Blazor, which does not support this
98
104
  // discard this error silently (in the future we may print warnings here)
99
105
  });
100
106
  }
101
107
 
102
- export function deactivate(moduleName: string, referenceId: string) {
108
+ export function deactivate(moduleName: string, referenceId: string): Promise<void> {
103
109
  return window.DotNet.invokeMethodAsync(coreLib, 'Deactivate', moduleName, referenceId);
104
110
  }
105
111
 
106
- export function callNotifyLocationChanged(url: string, replace: boolean) {
112
+ export function callNotifyLocationChanged(url: string, replace: boolean): Promise<void> {
107
113
  return window.DotNet.invokeMethodAsync(wasmLib, 'NotifyLocationChanged', url, replace);
108
114
  }
109
115
 
110
- export function loadResource(url: string) {
116
+ export function getCapabilities(): Promise<Array<string>> {
117
+ return window.DotNet.invokeMethodAsync(coreLib, 'GetCapabilities').catch(() => {
118
+ // Apparently an older version of Piral.Blazor, which does not support this
119
+ // discard this error silently (in the future we may print warnings here)
120
+ return [];
121
+ });
122
+ }
123
+
124
+ export function loadResource(url: string): Promise<void> {
111
125
  return window.DotNet.invokeMethodAsync(coreLib, 'LoadComponentsFromLibrary', url);
112
126
  }
113
127
 
114
- export function loadResourceWithSymbol(dllUrl: string, pdbUrl: string) {
128
+ export function loadResourceWithSymbol(dllUrl: string, pdbUrl: string): Promise<void> {
115
129
  return window.DotNet.invokeMethodAsync(coreLib, 'LoadComponentsWithSymbolsFromLibrary', dllUrl, pdbUrl);
116
130
  }
117
131
 
118
- export function unloadResource(url: string) {
132
+ export function unloadResource(url: string): Promise<void> {
119
133
  return window.DotNet.invokeMethodAsync(coreLib, 'UnloadComponentsFromLibrary', url);
120
134
  }
121
135
 
136
+ export interface PiletData {
137
+ dllUrl: string;
138
+ pdbUrl?: string;
139
+ name: string;
140
+ version: string;
141
+ config: string;
142
+ baseUrl: string;
143
+ dependencies: Array<string>;
144
+ }
145
+
146
+ export function loadBlazorPilet(id: string, data: PiletData) {
147
+ return window.DotNet.invokeMethodAsync(coreLib, 'LoadPilet', id, data);
148
+ }
149
+
150
+ export function unloadBlazorPilet(id: string) {
151
+ return window.DotNet.invokeMethodAsync(coreLib, 'UnloadPilet', id);
152
+ }
153
+
122
154
  export function initialize(scriptUrl: string, publicPath: string) {
123
- return new Promise<HTMLDivElement>((resolve, reject) => {
155
+ return new Promise<BlazorRootConfig>((resolve, reject) => {
124
156
  const startBlazor = createBlazorStarter(publicPath);
125
157
  const script = document.createElement('script');
126
158
  script.src = scriptUrl;
@@ -146,9 +178,7 @@ export function createBootLoader(scriptUrl: string, satellites: Array<string>) {
146
178
  return () => {
147
179
  if (typeof window.$blazorLoader === 'undefined') {
148
180
  // we load all satellite scripts before we initialize blazor
149
- window.$blazorLoader = Promise.all(satellites.map((url) => addScript(url))).then(() =>
150
- initialize(scriptUrl, publicPath),
151
- );
181
+ window.$blazorLoader = Promise.all(satellites.map(addScript)).then(() => initialize(scriptUrl, publicPath));
152
182
  }
153
183
 
154
184
  return window.$blazorLoader;
package/src/types.ts CHANGED
@@ -1,10 +1,16 @@
1
1
  import type { ForeignComponent } from 'piral-core';
2
2
 
3
+ export type BlazorRootConfig = [root: HTMLDivElement, capabilities: Array<string>];
4
+
5
+ export interface BlazorDependencyLoader {
6
+ (config: BlazorRootConfig): Promise<void>;
7
+ }
8
+
3
9
  declare global {
4
10
  interface Window {
5
11
  Blazor: any;
6
12
  DotNet: any;
7
- $blazorLoader: Promise<HTMLDivElement>;
13
+ $blazorLoader: Promise<BlazorRootConfig>;
8
14
  $blazorDependencies: Array<{
9
15
  name: string;
10
16
  url: string;
@@ -45,7 +51,7 @@ export interface BlazorComponent {
45
51
  * An optional dependency that needs to load before
46
52
  * the component can be properly displayed.
47
53
  */
48
- dependency?: () => Promise<void>;
54
+ dependency?: BlazorDependencyLoader;
49
55
  /**
50
56
  * The type of the Blazor component.
51
57
  */