piral-debug-utils 0.15.0-alpha.3719 → 0.15.0-alpha.3784

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.
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ export declare function freezeRouteRefresh(): () => void;
3
+ export interface DebugRouteSwitch {
4
+ NotFound: React.ComponentType;
5
+ paths: Array<{
6
+ path: string;
7
+ Component: React.ComponentType;
8
+ }>;
9
+ }
10
+ export declare const DebugRouteSwitch: React.FC<DebugRouteSwitch>;
@@ -0,0 +1,33 @@
1
+ import * as React from 'react';
2
+ import { Switch, Route } from 'react-router';
3
+ const debugRouteCache = {
4
+ active: 0,
5
+ paths: [],
6
+ refresh: undefined,
7
+ };
8
+ export function freezeRouteRefresh() {
9
+ debugRouteCache.active++;
10
+ return () => {
11
+ var _a;
12
+ debugRouteCache.active--;
13
+ if (!debugRouteCache.active) {
14
+ (_a = debugRouteCache.refresh) === null || _a === void 0 ? void 0 : _a.call(debugRouteCache, (s) => s + 1);
15
+ }
16
+ };
17
+ }
18
+ export const DebugRouteSwitch = ({ paths, NotFound }) => {
19
+ const [_, triggerChange] = React.useState(0);
20
+ React.useEffect(() => {
21
+ debugRouteCache.refresh = triggerChange;
22
+ return () => {
23
+ debugRouteCache.refresh = undefined;
24
+ };
25
+ }, []);
26
+ if (!debugRouteCache.active) {
27
+ debugRouteCache.paths = paths;
28
+ }
29
+ return (React.createElement(Switch, null,
30
+ debugRouteCache.paths.map(({ path, Component }) => (React.createElement(Route, { exact: true, key: path, path: path, component: Component }))),
31
+ React.createElement(Route, { component: NotFound })));
32
+ };
33
+ //# sourceMappingURL=DebugRouteSwitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugRouteSwitch.js","sourceRoot":"","sources":["../src/DebugRouteSwitch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,eAAe,GAAG;IACtB,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,UAAU,kBAAkB;IAChC,eAAe,CAAC,MAAM,EAAE,CAAC;IAEzB,OAAO,GAAG,EAAE;;QACV,eAAe,CAAC,MAAM,EAAE,CAAC;QAEzB,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAC3B,MAAA,eAAe,CAAC,OAAO,+CAAvB,eAAe,EAAW,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACjD;IACH,CAAC,CAAC;AACJ,CAAC;AAUD,MAAM,CAAC,MAAM,gBAAgB,GAA+B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClF,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE7C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,eAAe,CAAC,OAAO,GAAG,aAAa,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,OAAO,GAAG,SAAS,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;QAC3B,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC;KAC/B;IAED,OAAO,CACL,oBAAC,MAAM;QACJ,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAClD,oBAAC,KAAK,IAAC,KAAK,QAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,GAAI,CAC7D,CAAC;QACF,oBAAC,KAAK,IAAC,SAAS,EAAE,QAAQ,GAAI,CACvB,CACV,CAAC;AACJ,CAAC,CAAC"}
package/esm/debug.js CHANGED
@@ -127,6 +127,16 @@ export function installPiralDebug(options) {
127
127
  } })));
128
128
  };
129
129
  const eventDispatcher = document.body.dispatchEvent;
130
+ const systemResolve = System.constructor.prototype.resolve;
131
+ const depMap = {};
132
+ System.constructor.prototype.resolve = function (...args) {
133
+ const [url, parent] = args;
134
+ if (parent) {
135
+ depMap[parent] = depMap[parent] || {};
136
+ depMap[parent][url] = true;
137
+ }
138
+ return systemResolve.call(this, ...args);
139
+ };
130
140
  const debugApi = {
131
141
  debug: debugApiVersion,
132
142
  instance: {
@@ -140,6 +150,22 @@ export function installPiralDebug(options) {
140
150
  compat: process.env.DEBUG_PIRAL,
141
151
  },
142
152
  };
153
+ const details = {
154
+ name: debugApi.instance.name,
155
+ version: debugApi.instance.version,
156
+ kind: debugApiVersion,
157
+ mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',
158
+ capabilities: [
159
+ 'events',
160
+ 'container',
161
+ 'routes',
162
+ 'pilets',
163
+ 'settings',
164
+ 'extensions',
165
+ 'dependencies',
166
+ 'dependency-map',
167
+ ],
168
+ };
143
169
  const start = () => {
144
170
  const container = decycle(getGlobalState());
145
171
  const routes = getRoutes().filter((r) => !excludedRoutes.includes(r));
@@ -151,14 +177,7 @@ export function installPiralDebug(options) {
151
177
  version: pilet.version,
152
178
  disabled: pilet.disabled,
153
179
  }));
154
- sendMessage({
155
- type: 'available',
156
- name: debugApi.instance.name,
157
- version: debugApi.instance.version,
158
- kind: debugApiVersion,
159
- mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',
160
- capabilities: ['events', 'container', 'routes', 'pilets', 'settings', 'extensions', 'dependencies'],
161
- state: {
180
+ sendMessage(Object.assign(Object.assign({ type: 'available' }, details), { state: {
162
181
  routes,
163
182
  pilets,
164
183
  container,
@@ -166,7 +185,42 @@ export function installPiralDebug(options) {
166
185
  events,
167
186
  extensions,
168
187
  dependencies,
169
- },
188
+ } }));
189
+ };
190
+ const check = () => {
191
+ sendMessage(Object.assign({ type: 'info' }, details));
192
+ };
193
+ const getDependencyMap = () => {
194
+ const dependencyMap = {};
195
+ const addDeps = (pilet, dependencies) => {
196
+ if (!(pilet in dependencyMap)) {
197
+ dependencyMap[pilet] = [];
198
+ }
199
+ dependencyMap[pilet].push(...dependencies);
200
+ };
201
+ const pilets = getPilets()
202
+ .map((pilet) => ({
203
+ name: pilet.name,
204
+ link: pilet.link,
205
+ base: pilet.base,
206
+ }))
207
+ .filter((m) => m.link);
208
+ Object.keys(depMap).forEach((url) => {
209
+ const dependencies = depMap[url];
210
+ const pilet = pilets.find((p) => p.link === url);
211
+ if (pilet) {
212
+ addDeps(pilet.name, dependencies);
213
+ }
214
+ else if (!pilet) {
215
+ const parent = pilets.find((p) => url.startsWith(p.base));
216
+ if (parent) {
217
+ addDeps(parent.name, dependencies);
218
+ }
219
+ }
220
+ });
221
+ sendMessage({
222
+ type: 'dependency-map',
223
+ dependencyMap,
170
224
  });
171
225
  };
172
226
  document.body.dispatchEvent = function (ev) {
@@ -202,6 +256,10 @@ export function installPiralDebug(options) {
202
256
  switch (content.type) {
203
257
  case 'init':
204
258
  return start();
259
+ case 'check-piral':
260
+ return check();
261
+ case 'get-dependency-map':
262
+ return getDependencyMap();
205
263
  case 'update-settings':
206
264
  return updateSettings(content.settings);
207
265
  case 'append-pilet':
package/esm/debug.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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"}
package/esm/emulator.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import type { PiletRequester } from 'piral-base';
2
2
  import type { EmulatorConnectorOptions } from './types';
3
- export declare function withEmulatorPilets(requestPilets: PiletRequester, options: EmulatorConnectorOptions): PiletRequester;
3
+ export declare function installPiletEmulator(requestPilets: PiletRequester, options: EmulatorConnectorOptions): void;
package/esm/emulator.js CHANGED
@@ -1,42 +1,65 @@
1
- export function withEmulatorPilets(requestPilets, options) {
2
- const { addPilet, removePilet, piletApiFallback = '/$pilet-api' } = options;
1
+ import { freezeRouteRefresh, DebugRouteSwitch } from './DebugRouteSwitch';
2
+ export function installPiletEmulator(requestPilets, options) {
3
+ const { addPilet, removePilet, integrate, piletApiFallback = '/$pilet-api' } = options;
3
4
  // check if pilets should be loaded
4
5
  const loadPilets = sessionStorage.getItem('dbg:load-pilets') === 'on';
5
6
  const noPilets = () => Promise.resolve([]);
6
7
  const requester = loadPilets ? requestPilets : noPilets;
7
- return () => {
8
- const promise = requester();
9
- // the window['dbg:pilet-api'] should point to an API address used as a proxy, fall back to '/$pilet-api' if unavailable
10
- const piletApi = window['dbg:pilet-api'] || piletApiFallback;
11
- // either take a full URI or make it an absolute path relative to the current origin
12
- const initialTarget = /^https?:/.test(piletApi)
13
- ? piletApi
14
- : `${location.origin}${piletApi[0] === '/' ? '' : '/'}${piletApi}`;
15
- const updateTarget = initialTarget.replace('http', 'ws');
16
- const ws = new WebSocket(updateTarget);
17
- const appendix = fetch(initialTarget)
18
- .then((res) => res.json())
19
- .then((item) => (Array.isArray(item) ? item : [item]));
20
- ws.onmessage = ({ data }) => {
21
- const hardRefresh = sessionStorage.getItem('dbg:hard-refresh') === 'on';
22
- if (!hardRefresh) {
23
- // standard setting is to just perform an inject
24
- const meta = JSON.parse(data);
25
- // tear down pilet
26
- removePilet(meta.name);
27
- // load and evaluate pilet
28
- addPilet(meta);
29
- }
30
- else {
31
- location.reload();
32
- }
33
- };
34
- return promise
35
- .catch((err) => {
36
- console.error(`Requesting the pilets failed. We'll continue loading without pilets (DEBUG only).`, err);
37
- return [];
38
- })
39
- .then((pilets) => appendix.then((debugPilets) => [...pilets, ...debugPilets]));
40
- };
8
+ integrate({
9
+ components: {
10
+ RouteSwitch: DebugRouteSwitch,
11
+ },
12
+ requester() {
13
+ const promise = requester();
14
+ // the window['dbg:pilet-api'] should point to an API address used as a proxy, fall back to '/$pilet-api' if unavailable
15
+ const piletApi = window['dbg:pilet-api'] || piletApiFallback;
16
+ // either take a full URI or make it an absolute path relative to the current origin
17
+ const initialTarget = /^https?:/.test(piletApi)
18
+ ? piletApi
19
+ : `${location.origin}${piletApi[0] === '/' ? '' : '/'}${piletApi}`;
20
+ const updateTarget = initialTarget.replace('http', 'ws');
21
+ const ws = new WebSocket(updateTarget);
22
+ const timeoutCache = {};
23
+ const timeout = 150;
24
+ const appendix = fetch(initialTarget)
25
+ .then((res) => res.json())
26
+ .then((item) => (Array.isArray(item) ? item : [item]));
27
+ ws.onmessage = ({ data }) => {
28
+ const hardRefresh = sessionStorage.getItem('dbg:hard-refresh') === 'on';
29
+ if (!hardRefresh) {
30
+ // standard setting is to just perform an inject
31
+ const meta = JSON.parse(data);
32
+ const name = meta.name;
33
+ // like a debounce; only one change of the current pilet should be actively processed
34
+ clearTimeout(timeoutCache[name]);
35
+ // some bundlers may have fired before writing to the disk
36
+ // so we give them a bit of time before actually loading the pilet
37
+ timeoutCache[name] = setTimeout(() => {
38
+ // we should make sure to only refresh the page / router if pilets have been loaded
39
+ const unfreeze = freezeRouteRefresh();
40
+ // tear down pilet
41
+ removePilet(meta.name)
42
+ // load and evaluate pilet
43
+ .then(() => addPilet(meta))
44
+ // then disable route cache, should be zero again and lead to route refresh
45
+ .then(unfreeze, unfreeze);
46
+ }, timeout);
47
+ }
48
+ else {
49
+ location.reload();
50
+ }
51
+ };
52
+ return promise
53
+ .catch((err) => {
54
+ console.error(`Requesting the pilets failed. We'll continue loading without pilets (DEBUG only).`, err);
55
+ return [];
56
+ })
57
+ .then((pilets) => appendix.then((debugPilets) => {
58
+ const debugPiletNames = debugPilets.map((m) => m.name);
59
+ const feedPilets = pilets.filter((m) => !debugPiletNames.includes(m.name));
60
+ return [...feedPilets, ...debugPilets];
61
+ }));
62
+ },
63
+ });
41
64
  }
42
65
  //# sourceMappingURL=emulator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emulator.js","sourceRoot":"","sources":["../src/emulator.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,kBAAkB,CAAC,aAA6B,EAAE,OAAiC;IACjG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IAE5E,mCAAmC;IACnC,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACtE,MAAM,QAAQ,GAAmB,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;IAExD,OAAO,GAAG,EAAE;QACV,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;QAE5B,wHAAwH;QACxH,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC;QAE7D,oFAAoF;QACpF,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC7C,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,EAAE,CAAC;QACrE,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC;aAClC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aACzB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEzD,EAAE,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAC1B,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;YAExE,IAAI,CAAC,WAAW,EAAE;gBAChB,gDAAgD;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE9B,kBAAkB;gBAClB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEvB,0BAA0B;gBAC1B,QAAQ,CAAC,IAAI,CAAC,CAAC;aAChB;iBAAM;gBACL,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC;QAEF,OAAO,OAAO;aACX,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,mFAAmF,EAAE,GAAG,CAAC,CAAC;YACxG,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"emulator.js","sourceRoot":"","sources":["../src/emulator.ts"],"names":[],"mappings":"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"}
package/esm/types.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import type { FC } from 'react';
2
- import type { Pilet, PiletEntry } from 'piral-base';
2
+ import type { Pilet, PiletEntry, PiletRequester } from 'piral-base';
3
3
  export interface EmulatorConnectorOptions {
4
- addPilet?(pilet: PiletEntry): void;
5
- removePilet?(name: string): void;
4
+ addPilet(pilet: PiletEntry): Promise<void>;
5
+ removePilet(name: string): Promise<void>;
6
6
  piletApiFallback?: string;
7
+ integrate(components: EmulatorComponents): void;
7
8
  }
8
9
  export interface ChangeSet {
9
10
  state?: boolean;
@@ -12,6 +13,10 @@ export interface ChangeSet {
12
13
  extensions?: boolean;
13
14
  dependencies?: boolean;
14
15
  }
16
+ export interface EmulatorComponents {
17
+ components: Record<string, FC>;
18
+ requester: PiletRequester;
19
+ }
15
20
  export interface DebugComponents {
16
21
  wrappers: Record<string, FC>;
17
22
  components: Record<string, FC>;
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ export declare function freezeRouteRefresh(): () => void;
3
+ export interface DebugRouteSwitch {
4
+ NotFound: React.ComponentType;
5
+ paths: Array<{
6
+ path: string;
7
+ Component: React.ComponentType;
8
+ }>;
9
+ }
10
+ export declare const DebugRouteSwitch: React.FC<DebugRouteSwitch>;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DebugRouteSwitch = exports.freezeRouteRefresh = void 0;
4
+ const React = require("react");
5
+ const react_router_1 = require("react-router");
6
+ const debugRouteCache = {
7
+ active: 0,
8
+ paths: [],
9
+ refresh: undefined,
10
+ };
11
+ function freezeRouteRefresh() {
12
+ debugRouteCache.active++;
13
+ return () => {
14
+ var _a;
15
+ debugRouteCache.active--;
16
+ if (!debugRouteCache.active) {
17
+ (_a = debugRouteCache.refresh) === null || _a === void 0 ? void 0 : _a.call(debugRouteCache, (s) => s + 1);
18
+ }
19
+ };
20
+ }
21
+ exports.freezeRouteRefresh = freezeRouteRefresh;
22
+ const DebugRouteSwitch = ({ paths, NotFound }) => {
23
+ const [_, triggerChange] = React.useState(0);
24
+ React.useEffect(() => {
25
+ debugRouteCache.refresh = triggerChange;
26
+ return () => {
27
+ debugRouteCache.refresh = undefined;
28
+ };
29
+ }, []);
30
+ if (!debugRouteCache.active) {
31
+ debugRouteCache.paths = paths;
32
+ }
33
+ return (React.createElement(react_router_1.Switch, null,
34
+ debugRouteCache.paths.map(({ path, Component }) => (React.createElement(react_router_1.Route, { exact: true, key: path, path: path, component: Component }))),
35
+ React.createElement(react_router_1.Route, { component: NotFound })));
36
+ };
37
+ exports.DebugRouteSwitch = DebugRouteSwitch;
38
+ //# sourceMappingURL=DebugRouteSwitch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugRouteSwitch.js","sourceRoot":"","sources":["../src/DebugRouteSwitch.tsx"],"names":[],"mappings":";;;AAAA,+BAA+B;AAC/B,+CAA6C;AAE7C,MAAM,eAAe,GAAG;IACtB,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,EAAE;IACT,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,SAAgB,kBAAkB;IAChC,eAAe,CAAC,MAAM,EAAE,CAAC;IAEzB,OAAO,GAAG,EAAE;;QACV,eAAe,CAAC,MAAM,EAAE,CAAC;QAEzB,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;YAC3B,MAAA,eAAe,CAAC,OAAO,+CAAvB,eAAe,EAAW,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACjD;IACH,CAAC,CAAC;AACJ,CAAC;AAVD,gDAUC;AAUM,MAAM,gBAAgB,GAA+B,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;IAClF,MAAM,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IAE7C,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,eAAe,CAAC,OAAO,GAAG,aAAa,CAAC;QACxC,OAAO,GAAG,EAAE;YACV,eAAe,CAAC,OAAO,GAAG,SAAS,CAAC;QACtC,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;QAC3B,eAAe,CAAC,KAAK,GAAG,KAAK,CAAC;KAC/B;IAED,OAAO,CACL,oBAAC,qBAAM;QACJ,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAClD,oBAAC,oBAAK,IAAC,KAAK,QAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,GAAI,CAC7D,CAAC;QACF,oBAAC,oBAAK,IAAC,SAAS,EAAE,QAAQ,GAAI,CACvB,CACV,CAAC;AACJ,CAAC,CAAC;AAtBW,QAAA,gBAAgB,oBAsB3B"}
package/lib/debug.js CHANGED
@@ -130,6 +130,16 @@ function installPiralDebug(options) {
130
130
  } })));
131
131
  };
132
132
  const eventDispatcher = document.body.dispatchEvent;
133
+ const systemResolve = System.constructor.prototype.resolve;
134
+ const depMap = {};
135
+ System.constructor.prototype.resolve = function (...args) {
136
+ const [url, parent] = args;
137
+ if (parent) {
138
+ depMap[parent] = depMap[parent] || {};
139
+ depMap[parent][url] = true;
140
+ }
141
+ return systemResolve.call(this, ...args);
142
+ };
133
143
  const debugApi = {
134
144
  debug: debugApiVersion,
135
145
  instance: {
@@ -143,6 +153,22 @@ function installPiralDebug(options) {
143
153
  compat: process.env.DEBUG_PIRAL,
144
154
  },
145
155
  };
156
+ const details = {
157
+ name: debugApi.instance.name,
158
+ version: debugApi.instance.version,
159
+ kind: debugApiVersion,
160
+ mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',
161
+ capabilities: [
162
+ 'events',
163
+ 'container',
164
+ 'routes',
165
+ 'pilets',
166
+ 'settings',
167
+ 'extensions',
168
+ 'dependencies',
169
+ 'dependency-map',
170
+ ],
171
+ };
146
172
  const start = () => {
147
173
  const container = (0, decycle_1.decycle)(getGlobalState());
148
174
  const routes = getRoutes().filter((r) => !excludedRoutes.includes(r));
@@ -154,14 +180,7 @@ function installPiralDebug(options) {
154
180
  version: pilet.version,
155
181
  disabled: pilet.disabled,
156
182
  }));
157
- sendMessage({
158
- type: 'available',
159
- name: debugApi.instance.name,
160
- version: debugApi.instance.version,
161
- kind: debugApiVersion,
162
- mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',
163
- capabilities: ['events', 'container', 'routes', 'pilets', 'settings', 'extensions', 'dependencies'],
164
- state: {
183
+ sendMessage(Object.assign(Object.assign({ type: 'available' }, details), { state: {
165
184
  routes,
166
185
  pilets,
167
186
  container,
@@ -169,7 +188,42 @@ function installPiralDebug(options) {
169
188
  events,
170
189
  extensions,
171
190
  dependencies,
172
- },
191
+ } }));
192
+ };
193
+ const check = () => {
194
+ sendMessage(Object.assign({ type: 'info' }, details));
195
+ };
196
+ const getDependencyMap = () => {
197
+ const dependencyMap = {};
198
+ const addDeps = (pilet, dependencies) => {
199
+ if (!(pilet in dependencyMap)) {
200
+ dependencyMap[pilet] = [];
201
+ }
202
+ dependencyMap[pilet].push(...dependencies);
203
+ };
204
+ const pilets = getPilets()
205
+ .map((pilet) => ({
206
+ name: pilet.name,
207
+ link: pilet.link,
208
+ base: pilet.base,
209
+ }))
210
+ .filter((m) => m.link);
211
+ Object.keys(depMap).forEach((url) => {
212
+ const dependencies = depMap[url];
213
+ const pilet = pilets.find((p) => p.link === url);
214
+ if (pilet) {
215
+ addDeps(pilet.name, dependencies);
216
+ }
217
+ else if (!pilet) {
218
+ const parent = pilets.find((p) => url.startsWith(p.base));
219
+ if (parent) {
220
+ addDeps(parent.name, dependencies);
221
+ }
222
+ }
223
+ });
224
+ sendMessage({
225
+ type: 'dependency-map',
226
+ dependencyMap,
173
227
  });
174
228
  };
175
229
  document.body.dispatchEvent = function (ev) {
@@ -205,6 +259,10 @@ function installPiralDebug(options) {
205
259
  switch (content.type) {
206
260
  case 'init':
207
261
  return start();
262
+ case 'check-piral':
263
+ return check();
264
+ case 'get-dependency-map':
265
+ return getDependencyMap();
208
266
  case 'update-settings':
209
267
  return updateSettings(content.settings);
210
268
  case 'append-pilet':
package/lib/debug.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":"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"}
package/lib/emulator.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import type { PiletRequester } from 'piral-base';
2
2
  import type { EmulatorConnectorOptions } from './types';
3
- export declare function withEmulatorPilets(requestPilets: PiletRequester, options: EmulatorConnectorOptions): PiletRequester;
3
+ export declare function installPiletEmulator(requestPilets: PiletRequester, options: EmulatorConnectorOptions): void;
package/lib/emulator.js CHANGED
@@ -1,46 +1,69 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withEmulatorPilets = void 0;
4
- function withEmulatorPilets(requestPilets, options) {
5
- const { addPilet, removePilet, piletApiFallback = '/$pilet-api' } = options;
3
+ exports.installPiletEmulator = void 0;
4
+ const DebugRouteSwitch_1 = require("./DebugRouteSwitch");
5
+ function installPiletEmulator(requestPilets, options) {
6
+ const { addPilet, removePilet, integrate, piletApiFallback = '/$pilet-api' } = options;
6
7
  // check if pilets should be loaded
7
8
  const loadPilets = sessionStorage.getItem('dbg:load-pilets') === 'on';
8
9
  const noPilets = () => Promise.resolve([]);
9
10
  const requester = loadPilets ? requestPilets : noPilets;
10
- return () => {
11
- const promise = requester();
12
- // the window['dbg:pilet-api'] should point to an API address used as a proxy, fall back to '/$pilet-api' if unavailable
13
- const piletApi = window['dbg:pilet-api'] || piletApiFallback;
14
- // either take a full URI or make it an absolute path relative to the current origin
15
- const initialTarget = /^https?:/.test(piletApi)
16
- ? piletApi
17
- : `${location.origin}${piletApi[0] === '/' ? '' : '/'}${piletApi}`;
18
- const updateTarget = initialTarget.replace('http', 'ws');
19
- const ws = new WebSocket(updateTarget);
20
- const appendix = fetch(initialTarget)
21
- .then((res) => res.json())
22
- .then((item) => (Array.isArray(item) ? item : [item]));
23
- ws.onmessage = ({ data }) => {
24
- const hardRefresh = sessionStorage.getItem('dbg:hard-refresh') === 'on';
25
- if (!hardRefresh) {
26
- // standard setting is to just perform an inject
27
- const meta = JSON.parse(data);
28
- // tear down pilet
29
- removePilet(meta.name);
30
- // load and evaluate pilet
31
- addPilet(meta);
32
- }
33
- else {
34
- location.reload();
35
- }
36
- };
37
- return promise
38
- .catch((err) => {
39
- console.error(`Requesting the pilets failed. We'll continue loading without pilets (DEBUG only).`, err);
40
- return [];
41
- })
42
- .then((pilets) => appendix.then((debugPilets) => [...pilets, ...debugPilets]));
43
- };
11
+ integrate({
12
+ components: {
13
+ RouteSwitch: DebugRouteSwitch_1.DebugRouteSwitch,
14
+ },
15
+ requester() {
16
+ const promise = requester();
17
+ // the window['dbg:pilet-api'] should point to an API address used as a proxy, fall back to '/$pilet-api' if unavailable
18
+ const piletApi = window['dbg:pilet-api'] || piletApiFallback;
19
+ // either take a full URI or make it an absolute path relative to the current origin
20
+ const initialTarget = /^https?:/.test(piletApi)
21
+ ? piletApi
22
+ : `${location.origin}${piletApi[0] === '/' ? '' : '/'}${piletApi}`;
23
+ const updateTarget = initialTarget.replace('http', 'ws');
24
+ const ws = new WebSocket(updateTarget);
25
+ const timeoutCache = {};
26
+ const timeout = 150;
27
+ const appendix = fetch(initialTarget)
28
+ .then((res) => res.json())
29
+ .then((item) => (Array.isArray(item) ? item : [item]));
30
+ ws.onmessage = ({ data }) => {
31
+ const hardRefresh = sessionStorage.getItem('dbg:hard-refresh') === 'on';
32
+ if (!hardRefresh) {
33
+ // standard setting is to just perform an inject
34
+ const meta = JSON.parse(data);
35
+ const name = meta.name;
36
+ // like a debounce; only one change of the current pilet should be actively processed
37
+ clearTimeout(timeoutCache[name]);
38
+ // some bundlers may have fired before writing to the disk
39
+ // so we give them a bit of time before actually loading the pilet
40
+ timeoutCache[name] = setTimeout(() => {
41
+ // we should make sure to only refresh the page / router if pilets have been loaded
42
+ const unfreeze = (0, DebugRouteSwitch_1.freezeRouteRefresh)();
43
+ // tear down pilet
44
+ removePilet(meta.name)
45
+ // load and evaluate pilet
46
+ .then(() => addPilet(meta))
47
+ // then disable route cache, should be zero again and lead to route refresh
48
+ .then(unfreeze, unfreeze);
49
+ }, timeout);
50
+ }
51
+ else {
52
+ location.reload();
53
+ }
54
+ };
55
+ return promise
56
+ .catch((err) => {
57
+ console.error(`Requesting the pilets failed. We'll continue loading without pilets (DEBUG only).`, err);
58
+ return [];
59
+ })
60
+ .then((pilets) => appendix.then((debugPilets) => {
61
+ const debugPiletNames = debugPilets.map((m) => m.name);
62
+ const feedPilets = pilets.filter((m) => !debugPiletNames.includes(m.name));
63
+ return [...feedPilets, ...debugPilets];
64
+ }));
65
+ },
66
+ });
44
67
  }
45
- exports.withEmulatorPilets = withEmulatorPilets;
68
+ exports.installPiletEmulator = installPiletEmulator;
46
69
  //# sourceMappingURL=emulator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"emulator.js","sourceRoot":"","sources":["../src/emulator.ts"],"names":[],"mappings":";;;AAGA,SAAgB,kBAAkB,CAAC,aAA6B,EAAE,OAAiC;IACjG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IAE5E,mCAAmC;IACnC,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACtE,MAAM,QAAQ,GAAmB,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;IAExD,OAAO,GAAG,EAAE;QACV,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;QAE5B,wHAAwH;QACxH,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC;QAE7D,oFAAoF;QACpF,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC7C,CAAC,CAAC,QAAQ;YACV,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,EAAE,CAAC;QACrE,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACzD,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;QAEvC,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC;aAClC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aACzB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEzD,EAAE,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;YAC1B,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;YAExE,IAAI,CAAC,WAAW,EAAE;gBAChB,gDAAgD;gBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE9B,kBAAkB;gBAClB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAEvB,0BAA0B;gBAC1B,QAAQ,CAAC,IAAI,CAAC,CAAC;aAChB;iBAAM;gBACL,QAAQ,CAAC,MAAM,EAAE,CAAC;aACnB;QACH,CAAC,CAAC;QAEF,OAAO,OAAO;aACX,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACb,OAAO,CAAC,KAAK,CAAC,mFAAmF,EAAE,GAAG,CAAC,CAAC;YACxG,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,GAAG,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IACnF,CAAC,CAAC;AACJ,CAAC;AAjDD,gDAiDC"}
1
+ {"version":3,"file":"emulator.js","sourceRoot":"","sources":["../src/emulator.ts"],"names":[],"mappings":";;;AAAA,yDAA0E;AAI1E,SAAgB,oBAAoB,CAAC,aAA6B,EAAE,OAAiC;IACnG,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;IAEvF,mCAAmC;IACnC,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IACtE,MAAM,QAAQ,GAAmB,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC;IAExD,SAAS,CAAC;QACR,UAAU,EAAE;YACV,WAAW,EAAE,mCAAgB;SAC9B;QACD,SAAS;YACP,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;YAE5B,wHAAwH;YACxH,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,gBAAgB,CAAC;YAE7D,oFAAoF;YACpF,MAAM,aAAa,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC7C,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,EAAE,CAAC;YACrE,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACzD,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;YACvC,MAAM,YAAY,GAAG,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,GAAG,CAAC;YAEpB,MAAM,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC;iBAClC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;iBACzB,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAEzD,EAAE,CAAC,SAAS,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE;gBAC1B,MAAM,WAAW,GAAG,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,IAAI,CAAC;gBAExE,IAAI,CAAC,WAAW,EAAE;oBAChB,gDAAgD;oBAChD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;oBAEvB,qFAAqF;oBACrF,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;oBAEjC,0DAA0D;oBAC1D,kEAAkE;oBAClE,YAAY,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;wBACnC,mFAAmF;wBACnF,MAAM,QAAQ,GAAG,IAAA,qCAAkB,GAAE,CAAC;wBAEtC,kBAAkB;wBAClB,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC;4BACpB,0BAA0B;6BACzB,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;4BAC3B,2EAA2E;6BAC1E,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;oBAC9B,CAAC,EAAE,OAAO,CAAC,CAAC;iBACb;qBAAM;oBACL,QAAQ,CAAC,MAAM,EAAE,CAAC;iBACnB;YACH,CAAC,CAAC;YAEF,OAAO,OAAO;iBACX,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,mFAAmF,EAAE,GAAG,CAAC,CAAC;gBACxG,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;iBACD,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CACf,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,EAAE;gBAC5B,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACvD,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC3E,OAAO,CAAC,GAAG,UAAU,EAAE,GAAG,WAAW,CAAC,CAAC;YACzC,CAAC,CAAC,CACH,CAAC;QACN,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AA1ED,oDA0EC"}
package/lib/types.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  import type { FC } from 'react';
2
- import type { Pilet, PiletEntry } from 'piral-base';
2
+ import type { Pilet, PiletEntry, PiletRequester } from 'piral-base';
3
3
  export interface EmulatorConnectorOptions {
4
- addPilet?(pilet: PiletEntry): void;
5
- removePilet?(name: string): void;
4
+ addPilet(pilet: PiletEntry): Promise<void>;
5
+ removePilet(name: string): Promise<void>;
6
6
  piletApiFallback?: string;
7
+ integrate(components: EmulatorComponents): void;
7
8
  }
8
9
  export interface ChangeSet {
9
10
  state?: boolean;
@@ -12,6 +13,10 @@ export interface ChangeSet {
12
13
  extensions?: boolean;
13
14
  dependencies?: boolean;
14
15
  }
16
+ export interface EmulatorComponents {
17
+ components: Record<string, FC>;
18
+ requester: PiletRequester;
19
+ }
15
20
  export interface DebugComponents {
16
21
  wrappers: Record<string, FC>;
17
22
  components: Record<string, FC>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "piral-debug-utils",
3
- "version": "0.15.0-alpha.3719",
3
+ "version": "0.15.0-alpha.3784",
4
4
  "description": "Utilities for debugging Piral instances.",
5
5
  "keywords": [
6
6
  "piral",
@@ -39,11 +39,11 @@
39
39
  "test": "echo \"Error: run tests from root\" && exit 1"
40
40
  },
41
41
  "devDependencies": {
42
- "piral-base": "0.15.0-alpha.3719"
42
+ "piral-base": "0.15.0-alpha.3784"
43
43
  },
44
44
  "peerDependencies": {
45
45
  "react": ">=16.8.0",
46
46
  "react-router": ">=5.0.0"
47
47
  },
48
- "gitHead": "f40561b82bfc877ef475493779c4378ed67ebaa2"
48
+ "gitHead": "e2dc030bd7e656d349caf5353740e45329e471f1"
49
49
  }
@@ -0,0 +1,52 @@
1
+ import * as React from 'react';
2
+ import { Switch, Route } from 'react-router';
3
+
4
+ const debugRouteCache = {
5
+ active: 0,
6
+ paths: [],
7
+ refresh: undefined,
8
+ };
9
+
10
+ export function freezeRouteRefresh() {
11
+ debugRouteCache.active++;
12
+
13
+ return () => {
14
+ debugRouteCache.active--;
15
+
16
+ if (!debugRouteCache.active) {
17
+ debugRouteCache.refresh?.((s: number) => s + 1);
18
+ }
19
+ };
20
+ }
21
+
22
+ export interface DebugRouteSwitch {
23
+ NotFound: React.ComponentType;
24
+ paths: Array<{
25
+ path: string;
26
+ Component: React.ComponentType;
27
+ }>;
28
+ }
29
+
30
+ export const DebugRouteSwitch: React.FC<DebugRouteSwitch> = ({ paths, NotFound }) => {
31
+ const [_, triggerChange] = React.useState(0);
32
+
33
+ React.useEffect(() => {
34
+ debugRouteCache.refresh = triggerChange;
35
+ return () => {
36
+ debugRouteCache.refresh = undefined;
37
+ };
38
+ }, []);
39
+
40
+ if (!debugRouteCache.active) {
41
+ debugRouteCache.paths = paths;
42
+ }
43
+
44
+ return (
45
+ <Switch>
46
+ {debugRouteCache.paths.map(({ path, Component }) => (
47
+ <Route exact key={path} path={path} component={Component} />
48
+ ))}
49
+ <Route component={NotFound} />
50
+ </Switch>
51
+ );
52
+ };
package/src/debug.ts CHANGED
@@ -182,6 +182,20 @@ export function installPiralDebug(options: DebuggerOptions) {
182
182
 
183
183
  const eventDispatcher = document.body.dispatchEvent;
184
184
 
185
+ const systemResolve = System.constructor.prototype.resolve;
186
+ const depMap = {};
187
+
188
+ System.constructor.prototype.resolve = function (...args) {
189
+ const [url, parent] = args;
190
+
191
+ if (parent) {
192
+ depMap[parent] = depMap[parent] || {};
193
+ depMap[parent][url] = true;
194
+ }
195
+
196
+ return systemResolve.call(this, ...args);
197
+ };
198
+
185
199
  const debugApi = {
186
200
  debug: debugApiVersion,
187
201
  instance: {
@@ -196,6 +210,23 @@ export function installPiralDebug(options: DebuggerOptions) {
196
210
  },
197
211
  };
198
212
 
213
+ const details = {
214
+ name: debugApi.instance.name,
215
+ version: debugApi.instance.version,
216
+ kind: debugApiVersion,
217
+ mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',
218
+ capabilities: [
219
+ 'events',
220
+ 'container',
221
+ 'routes',
222
+ 'pilets',
223
+ 'settings',
224
+ 'extensions',
225
+ 'dependencies',
226
+ 'dependency-map',
227
+ ],
228
+ };
229
+
199
230
  const start = () => {
200
231
  const container = decycle(getGlobalState());
201
232
  const routes = getRoutes().filter((r) => !excludedRoutes.includes(r));
@@ -210,11 +241,7 @@ export function installPiralDebug(options: DebuggerOptions) {
210
241
 
211
242
  sendMessage({
212
243
  type: 'available',
213
- name: debugApi.instance.name,
214
- version: debugApi.instance.version,
215
- kind: debugApiVersion,
216
- mode: process.env.NODE_ENV === 'production' ? 'production' : 'development',
217
- capabilities: ['events', 'container', 'routes', 'pilets', 'settings', 'extensions', 'dependencies'],
244
+ ...details,
218
245
  state: {
219
246
  routes,
220
247
  pilets,
@@ -227,6 +254,51 @@ export function installPiralDebug(options: DebuggerOptions) {
227
254
  });
228
255
  };
229
256
 
257
+ const check = () => {
258
+ sendMessage({
259
+ type: 'info',
260
+ ...details,
261
+ });
262
+ };
263
+
264
+ const getDependencyMap = () => {
265
+ const dependencyMap: Record<string, Array<string>> = {};
266
+ const addDeps = (pilet: string, dependencies: Array<string>) => {
267
+ if (!(pilet in dependencyMap)) {
268
+ dependencyMap[pilet] = [];
269
+ }
270
+
271
+ dependencyMap[pilet].push(...dependencies);
272
+ };
273
+ const pilets = getPilets()
274
+ .map((pilet: any) => ({
275
+ name: pilet.name,
276
+ link: pilet.link,
277
+ base: pilet.base,
278
+ }))
279
+ .filter((m) => m.link);
280
+
281
+ Object.keys(depMap).forEach((url) => {
282
+ const dependencies = depMap[url];
283
+ const pilet = pilets.find((p) => p.link === url);
284
+
285
+ if (pilet) {
286
+ addDeps(pilet.name, dependencies);
287
+ } else if (!pilet) {
288
+ const parent = pilets.find((p) => url.startsWith(p.base));
289
+
290
+ if (parent) {
291
+ addDeps(parent.name, dependencies);
292
+ }
293
+ }
294
+ });
295
+
296
+ sendMessage({
297
+ type: 'dependency-map',
298
+ dependencyMap,
299
+ });
300
+ };
301
+
230
302
  document.body.dispatchEvent = function (ev: CustomEvent) {
231
303
  if (ev.type.startsWith('piral-')) {
232
304
  events.unshift({
@@ -265,6 +337,10 @@ export function installPiralDebug(options: DebuggerOptions) {
265
337
  switch (content.type) {
266
338
  case 'init':
267
339
  return start();
340
+ case 'check-piral':
341
+ return check();
342
+ case 'get-dependency-map':
343
+ return getDependencyMap();
268
344
  case 'update-settings':
269
345
  return updateSettings(content.settings);
270
346
  case 'append-pilet':
package/src/emulator.ts CHANGED
@@ -1,53 +1,79 @@
1
+ import { freezeRouteRefresh, DebugRouteSwitch } from './DebugRouteSwitch';
1
2
  import type { PiletRequester } from 'piral-base';
2
3
  import type { EmulatorConnectorOptions } from './types';
3
4
 
4
- export function withEmulatorPilets(requestPilets: PiletRequester, options: EmulatorConnectorOptions): PiletRequester {
5
- const { addPilet, removePilet, piletApiFallback = '/$pilet-api' } = options;
5
+ export function installPiletEmulator(requestPilets: PiletRequester, options: EmulatorConnectorOptions) {
6
+ const { addPilet, removePilet, integrate, piletApiFallback = '/$pilet-api' } = options;
6
7
 
7
8
  // check if pilets should be loaded
8
9
  const loadPilets = sessionStorage.getItem('dbg:load-pilets') === 'on';
9
10
  const noPilets: PiletRequester = () => Promise.resolve([]);
10
11
  const requester = loadPilets ? requestPilets : noPilets;
11
12
 
12
- return () => {
13
- const promise = requester();
14
-
15
- // the window['dbg:pilet-api'] should point to an API address used as a proxy, fall back to '/$pilet-api' if unavailable
16
- const piletApi = window['dbg:pilet-api'] || piletApiFallback;
17
-
18
- // either take a full URI or make it an absolute path relative to the current origin
19
- const initialTarget = /^https?:/.test(piletApi)
20
- ? piletApi
21
- : `${location.origin}${piletApi[0] === '/' ? '' : '/'}${piletApi}`;
22
- const updateTarget = initialTarget.replace('http', 'ws');
23
- const ws = new WebSocket(updateTarget);
24
-
25
- const appendix = fetch(initialTarget)
26
- .then((res) => res.json())
27
- .then((item) => (Array.isArray(item) ? item : [item]));
28
-
29
- ws.onmessage = ({ data }) => {
30
- const hardRefresh = sessionStorage.getItem('dbg:hard-refresh') === 'on';
31
-
32
- if (!hardRefresh) {
33
- // standard setting is to just perform an inject
34
- const meta = JSON.parse(data);
35
-
36
- // tear down pilet
37
- removePilet(meta.name);
38
-
39
- // load and evaluate pilet
40
- addPilet(meta);
41
- } else {
42
- location.reload();
43
- }
44
- };
45
-
46
- return promise
47
- .catch((err) => {
48
- console.error(`Requesting the pilets failed. We'll continue loading without pilets (DEBUG only).`, err);
49
- return [];
50
- })
51
- .then((pilets) => appendix.then((debugPilets) => [...pilets, ...debugPilets]));
52
- };
13
+ integrate({
14
+ components: {
15
+ RouteSwitch: DebugRouteSwitch,
16
+ },
17
+ requester() {
18
+ const promise = requester();
19
+
20
+ // the window['dbg:pilet-api'] should point to an API address used as a proxy, fall back to '/$pilet-api' if unavailable
21
+ const piletApi = window['dbg:pilet-api'] || piletApiFallback;
22
+
23
+ // either take a full URI or make it an absolute path relative to the current origin
24
+ const initialTarget = /^https?:/.test(piletApi)
25
+ ? piletApi
26
+ : `${location.origin}${piletApi[0] === '/' ? '' : '/'}${piletApi}`;
27
+ const updateTarget = initialTarget.replace('http', 'ws');
28
+ const ws = new WebSocket(updateTarget);
29
+ const timeoutCache = {};
30
+ const timeout = 150;
31
+
32
+ const appendix = fetch(initialTarget)
33
+ .then((res) => res.json())
34
+ .then((item) => (Array.isArray(item) ? item : [item]));
35
+
36
+ ws.onmessage = ({ data }) => {
37
+ const hardRefresh = sessionStorage.getItem('dbg:hard-refresh') === 'on';
38
+
39
+ if (!hardRefresh) {
40
+ // standard setting is to just perform an inject
41
+ const meta = JSON.parse(data);
42
+ const name = meta.name;
43
+
44
+ // like a debounce; only one change of the current pilet should be actively processed
45
+ clearTimeout(timeoutCache[name]);
46
+
47
+ // some bundlers may have fired before writing to the disk
48
+ // so we give them a bit of time before actually loading the pilet
49
+ timeoutCache[name] = setTimeout(() => {
50
+ // we should make sure to only refresh the page / router if pilets have been loaded
51
+ const unfreeze = freezeRouteRefresh();
52
+
53
+ // tear down pilet
54
+ removePilet(meta.name)
55
+ // load and evaluate pilet
56
+ .then(() => addPilet(meta))
57
+ // then disable route cache, should be zero again and lead to route refresh
58
+ .then(unfreeze, unfreeze);
59
+ }, timeout);
60
+ } else {
61
+ location.reload();
62
+ }
63
+ };
64
+
65
+ return promise
66
+ .catch((err) => {
67
+ console.error(`Requesting the pilets failed. We'll continue loading without pilets (DEBUG only).`, err);
68
+ return [];
69
+ })
70
+ .then((pilets) =>
71
+ appendix.then((debugPilets) => {
72
+ const debugPiletNames = debugPilets.map((m) => m.name);
73
+ const feedPilets = pilets.filter((m) => !debugPiletNames.includes(m.name));
74
+ return [...feedPilets, ...debugPilets];
75
+ }),
76
+ );
77
+ },
78
+ });
53
79
  }
package/src/types.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import type { FC } from 'react';
2
- import type { Pilet, PiletEntry } from 'piral-base';
2
+ import type { Pilet, PiletEntry, PiletRequester } from 'piral-base';
3
3
 
4
4
  export interface EmulatorConnectorOptions {
5
- addPilet?(pilet: PiletEntry): void;
6
- removePilet?(name: string): void;
5
+ addPilet(pilet: PiletEntry): Promise<void>;
6
+ removePilet(name: string): Promise<void>;
7
7
  piletApiFallback?: string;
8
+ integrate(components: EmulatorComponents): void;
8
9
  }
9
10
 
10
11
  export interface ChangeSet {
@@ -15,6 +16,11 @@ export interface ChangeSet {
15
16
  dependencies?: boolean;
16
17
  }
17
18
 
19
+ export interface EmulatorComponents {
20
+ components: Record<string, FC>;
21
+ requester: PiletRequester;
22
+ }
23
+
18
24
  export interface DebugComponents {
19
25
  wrappers: Record<string, FC>;
20
26
  components: Record<string, FC>;