@metapages/metapage 1.8.25 → 1.8.27
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/README.md +13 -12
- package/dist/index.js +859 -841
- package/dist/index.js.map +1 -1
- package/dist/metapage/Constants.d.ts.map +1 -1
- package/dist/metapage/Metaframe.d.ts +8 -8
- package/dist/metapage/Metaframe.d.ts.map +1 -1
- package/dist/metapage/Metapage.d.ts +5 -5
- package/dist/metapage/Metapage.d.ts.map +1 -1
- package/dist/metapage/MetapageIFrameRpcClient.d.ts +8 -8
- package/dist/metapage/MetapageIFrameRpcClient.d.ts.map +1 -1
- package/dist/metapage/MetapageTools.d.ts +4 -4
- package/dist/metapage/MetapageTools.d.ts.map +1 -1
- package/dist/metapage/Shared.d.ts +4 -4
- package/dist/metapage/core.d.ts +2 -1
- package/dist/metapage/core.d.ts.map +1 -1
- package/dist/metapage/data.d.ts.map +1 -1
- package/dist/metapage/errors/MissingMetaframeJson.d.ts.map +1 -1
- package/dist/metapage/errors/RootMetapageError.d.ts.map +1 -1
- package/dist/metapage/jsonrpc.d.ts +4 -4
- package/dist/metapage/jsonrpc.d.ts.map +1 -1
- package/dist/metapage/metapageRenderer.d.ts +16 -2
- package/dist/metapage/metapageRenderer.d.ts.map +1 -1
- package/dist/metapage/v0_1_0/all.d.ts +1 -1
- package/dist/metapage/v0_1_0/all.d.ts.map +1 -1
- package/dist/metapage/v0_2/all.d.ts +1 -1
- package/dist/metapage/v0_2/all.d.ts.map +1 -1
- package/dist/metapage/v0_3/JsonRpcMethods.d.ts +3 -3
- package/dist/metapage/v0_3/JsonRpcMethods.d.ts.map +1 -1
- package/dist/metapage/v0_3/all.d.ts +2 -2
- package/dist/metapage/v0_3/all.d.ts.map +1 -1
- package/dist/metapage/v0_4/metaframe.d.ts +3 -3
- package/dist/metapage/v0_4/metaframe.d.ts.map +1 -1
- package/dist/metapage/v0_4/metapage.d.ts +3 -3
- package/dist/metapage/v0_4/metapage.d.ts.map +1 -1
- package/dist/metapage/v1/metaframe.d.ts +3 -3
- package/dist/metapage/v1/metapage.d.ts +3 -3
- package/dist/metapage/v2/metaframe.d.ts +3 -3
- package/dist/metapage/v2/metapage.d.ts +3 -3
- package/dist/metapage/versions.d.ts.map +1 -1
- package/package.json +2 -1
- package/src/metapage/Constants.ts +5 -6
- package/src/metapage/Metaframe.ts +54 -62
- package/src/metapage/Metapage.ts +41 -41
- package/src/metapage/MetapageIFrameRpcClient.ts +20 -20
- package/src/metapage/MetapageTools.ts +15 -18
- package/src/metapage/README.md +5 -5
- package/src/metapage/Shared.ts +5 -5
- package/src/metapage/conversions-metaframe.ts +35 -35
- package/src/metapage/conversions-metapage.ts +25 -25
- package/src/metapage/core.ts +2 -1
- package/src/metapage/data.ts +38 -48
- package/src/metapage/errors/MissingMetaframeJson.ts +11 -12
- package/src/metapage/errors/RootMetapageError.ts +11 -12
- package/src/metapage/jsonrpc.ts +6 -12
- package/src/metapage/metapageRenderer.ts +110 -66
- package/src/metapage/metapageRendererExample.ts +1 -1
- package/src/metapage/util.ts +6 -6
- package/src/metapage/v0_1_0/all.ts +6 -6
- package/src/metapage/v0_2/all.ts +15 -13
- package/src/metapage/v0_3/JsonRpcMethods.ts +6 -10
- package/src/metapage/v0_3/all.ts +7 -10
- package/src/metapage/v0_4/README.md +1 -0
- package/src/metapage/v0_4/index.ts +0 -1
- package/src/metapage/v0_4/metaframe.ts +3 -6
- package/src/metapage/v0_4/metapage.ts +3 -6
- package/src/metapage/v1/index.ts +0 -1
- package/src/metapage/v1/metaframe.ts +3 -4
- package/src/metapage/v1/metapage.ts +3 -3
- package/src/metapage/v2/index.ts +0 -1
- package/src/metapage/v2/metaframe.ts +3 -4
- package/src/metapage/v2/metapage.ts +3 -3
- package/src/metapage/versions.ts +11 -4
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
EventEmitter,
|
|
3
|
-
ListenerFn,
|
|
4
|
-
} from 'eventemitter3';
|
|
1
|
+
import { EventEmitter, ListenerFn } from "eventemitter3";
|
|
5
2
|
|
|
6
3
|
import {
|
|
7
4
|
getHashParamFromWindow,
|
|
@@ -16,35 +13,28 @@ import {
|
|
|
16
13
|
setHashParamValueFloatInWindow,
|
|
17
14
|
setHashParamValueIntInWindow,
|
|
18
15
|
setHashParamValueJsonInWindow,
|
|
19
|
-
} from
|
|
16
|
+
} from "@metapages/hash-query";
|
|
20
17
|
|
|
21
|
-
import { VERSION_METAFRAME } from
|
|
22
|
-
import {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
MetapageId,
|
|
26
|
-
} from './core';
|
|
27
|
-
import {
|
|
28
|
-
deserializeInputs,
|
|
29
|
-
serializeInputs,
|
|
30
|
-
} from './data';
|
|
31
|
-
import { MetapageEventUrlHashUpdate } from './events';
|
|
18
|
+
import { VERSION_METAFRAME } from "./Constants";
|
|
19
|
+
import { Disposer, MetaframeId, MetaframePipeId, MetapageId } from "./core";
|
|
20
|
+
import { deserializeInputs, serializeInputs } from "./data";
|
|
21
|
+
import { MetapageEventUrlHashUpdate } from "./events";
|
|
32
22
|
import {
|
|
33
23
|
JsonRpcMethodsFromChild,
|
|
34
24
|
JsonRpcMethodsFromParent,
|
|
35
25
|
MinimumClientMessage,
|
|
36
26
|
SetupIframeServerResponseData,
|
|
37
|
-
} from
|
|
27
|
+
} from "./jsonrpc";
|
|
38
28
|
import {
|
|
39
29
|
isDebugFromUrlsParams,
|
|
40
30
|
log as MetapageToolsLog,
|
|
41
31
|
merge,
|
|
42
32
|
pageLoaded,
|
|
43
33
|
stringToRgb,
|
|
44
|
-
} from
|
|
45
|
-
import { isIframe } from
|
|
46
|
-
import { MetaframeInputMap } from
|
|
47
|
-
import { VersionsMetapage } from
|
|
34
|
+
} from "./MetapageTools";
|
|
35
|
+
import { isIframe } from "./Shared";
|
|
36
|
+
import { MetaframeInputMap } from "./v0_4";
|
|
37
|
+
import { VersionsMetapage } from "./versions";
|
|
48
38
|
|
|
49
39
|
// TODO combine/unify MetaframeEvents and MetaframeLoadingState
|
|
50
40
|
export enum MetaframeLoadingState {
|
|
@@ -120,17 +110,17 @@ export class Metaframe extends EventEmitter<
|
|
|
120
110
|
this.setInput = this.setInput.bind(this);
|
|
121
111
|
this.setInputs = this.setInputs.bind(this);
|
|
122
112
|
this.setInternalInputsAndNotify =
|
|
123
|
-
|
|
113
|
+
this.setInternalInputsAndNotify.bind(this);
|
|
124
114
|
this.setOutput = this.setOutput.bind(this);
|
|
125
115
|
this.setOutputs = this.setOutputs.bind(this);
|
|
126
116
|
this.warn = this.warn.bind(this);
|
|
127
117
|
this._resolveSetupIframeServerResponse =
|
|
128
|
-
|
|
118
|
+
this._resolveSetupIframeServerResponse.bind(this);
|
|
129
119
|
this.addListenerReturnDisposer = this.addListenerReturnDisposer.bind(this);
|
|
130
120
|
this.connected = this.connected.bind(this);
|
|
131
121
|
this.isConnected = this.isConnected.bind(this);
|
|
132
122
|
this.disableNotifyOnHashUrlChange =
|
|
133
|
-
|
|
123
|
+
this.disableNotifyOnHashUrlChange.bind(this);
|
|
134
124
|
this._onHashUrlChange = this._onHashUrlChange.bind(this);
|
|
135
125
|
|
|
136
126
|
this.setParameter = this.setParameter.bind(this);
|
|
@@ -147,7 +137,6 @@ export class Metaframe extends EventEmitter<
|
|
|
147
137
|
this.getParameterInt = this.getParameterInt.bind(this);
|
|
148
138
|
this.deleteParameter = this.deleteParameter.bind(this);
|
|
149
139
|
|
|
150
|
-
|
|
151
140
|
if (!this._isIframe) {
|
|
152
141
|
//Don't add any of the machinery, it only works if we're iframes.
|
|
153
142
|
//This will never return
|
|
@@ -180,7 +169,6 @@ export class Metaframe extends EventEmitter<
|
|
|
180
169
|
}
|
|
181
170
|
|
|
182
171
|
(async () => {
|
|
183
|
-
|
|
184
172
|
if (!this._parentId) {
|
|
185
173
|
this._parentVersion = params.version;
|
|
186
174
|
this.color = stringToRgb(this.id);
|
|
@@ -188,13 +176,14 @@ export class Metaframe extends EventEmitter<
|
|
|
188
176
|
this.log(
|
|
189
177
|
`metapage[${this._parentId}](v${
|
|
190
178
|
this._parentVersion ? this._parentVersion : "unknown"
|
|
191
|
-
}) registered
|
|
179
|
+
}) registered`,
|
|
192
180
|
);
|
|
193
181
|
|
|
194
|
-
|
|
195
182
|
if (params.state && params.state.inputs) {
|
|
196
183
|
if (this.isInputOutputBlobSerialization) {
|
|
197
|
-
this._inputPipeValues = await deserializeInputs(
|
|
184
|
+
this._inputPipeValues = await deserializeInputs(
|
|
185
|
+
params.state.inputs,
|
|
186
|
+
);
|
|
198
187
|
} else {
|
|
199
188
|
this._inputPipeValues = params.state.inputs;
|
|
200
189
|
}
|
|
@@ -226,8 +215,8 @@ export class Metaframe extends EventEmitter<
|
|
|
226
215
|
this.emit(
|
|
227
216
|
MetaframeEvents.Input,
|
|
228
217
|
pipeId,
|
|
229
|
-
this._inputPipeValues[pipeId]
|
|
230
|
-
)
|
|
218
|
+
this._inputPipeValues[pipeId],
|
|
219
|
+
),
|
|
231
220
|
);
|
|
232
221
|
}
|
|
233
222
|
}
|
|
@@ -243,11 +232,13 @@ export class Metaframe extends EventEmitter<
|
|
|
243
232
|
this.emit(MetaframeEvents.Connected);
|
|
244
233
|
|
|
245
234
|
// Send the initial outputs to the parent, we have been accumulating them
|
|
246
|
-
this.sendRpc(
|
|
247
|
-
|
|
235
|
+
this.sendRpc(
|
|
236
|
+
JsonRpcMethodsFromChild.OutputsUpdate,
|
|
237
|
+
this._outputPipeValues,
|
|
238
|
+
);
|
|
248
239
|
} else {
|
|
249
240
|
this.log(
|
|
250
|
-
"Got JsonRpcMethods.SetupIframeServerResponse but already resolved"
|
|
241
|
+
"Got JsonRpcMethods.SetupIframeServerResponse but already resolved",
|
|
251
242
|
);
|
|
252
243
|
}
|
|
253
244
|
})();
|
|
@@ -263,21 +254,21 @@ export class Metaframe extends EventEmitter<
|
|
|
263
254
|
resolve();
|
|
264
255
|
return;
|
|
265
256
|
}
|
|
266
|
-
let disposer:
|
|
257
|
+
let disposer: Disposer;
|
|
267
258
|
disposer = this.addListenerReturnDisposer(
|
|
268
259
|
MetaframeEvents.Connected,
|
|
269
260
|
() => {
|
|
270
261
|
resolve();
|
|
271
262
|
disposer();
|
|
272
|
-
}
|
|
263
|
+
},
|
|
273
264
|
);
|
|
274
265
|
});
|
|
275
266
|
}
|
|
276
267
|
|
|
277
268
|
addListenerReturnDisposer(
|
|
278
269
|
event: MetaframeEvents | JsonRpcMethodsFromChild,
|
|
279
|
-
listener: ListenerFn<any[]
|
|
280
|
-
):
|
|
270
|
+
listener: ListenerFn<any[]>,
|
|
271
|
+
): Disposer {
|
|
281
272
|
super.addListener(event, listener);
|
|
282
273
|
const disposer = () => {
|
|
283
274
|
super.removeListener(event, listener);
|
|
@@ -331,7 +322,7 @@ export class Metaframe extends EventEmitter<
|
|
|
331
322
|
|
|
332
323
|
public addListener(
|
|
333
324
|
event: MetaframeEvents | JsonRpcMethodsFromChild,
|
|
334
|
-
listener: ListenerFn<any[]
|
|
325
|
+
listener: ListenerFn<any[]>,
|
|
335
326
|
) {
|
|
336
327
|
super.addListener(event, listener);
|
|
337
328
|
|
|
@@ -348,21 +339,21 @@ export class Metaframe extends EventEmitter<
|
|
|
348
339
|
return this;
|
|
349
340
|
}
|
|
350
341
|
|
|
351
|
-
public onInput(pipeId: MetaframePipeId, listener: any):
|
|
342
|
+
public onInput(pipeId: MetaframePipeId, listener: any): Disposer {
|
|
352
343
|
return this.addListenerReturnDisposer(
|
|
353
344
|
MetaframeEvents.Input,
|
|
354
345
|
(pipe: MetaframePipeId, value: any) => {
|
|
355
346
|
if (pipeId === pipe) {
|
|
356
347
|
listener(value);
|
|
357
348
|
}
|
|
358
|
-
}
|
|
349
|
+
},
|
|
359
350
|
);
|
|
360
351
|
}
|
|
361
352
|
|
|
362
|
-
public onInputs(listener: (m: MetaframeInputMap) => void):
|
|
353
|
+
public onInputs(listener: (m: MetaframeInputMap) => void): Disposer {
|
|
363
354
|
const disposer = this.addListenerReturnDisposer(
|
|
364
355
|
MetaframeEvents.Inputs,
|
|
365
|
-
listener
|
|
356
|
+
listener,
|
|
366
357
|
);
|
|
367
358
|
return disposer;
|
|
368
359
|
}
|
|
@@ -408,16 +399,19 @@ export class Metaframe extends EventEmitter<
|
|
|
408
399
|
Object.keys(inputs).forEach((pipeId) => {
|
|
409
400
|
try {
|
|
410
401
|
// if we don't actually need this event, we should remove it
|
|
411
|
-
this.emit(MetaframeEvents.Input, pipeId, inputs[pipeId])
|
|
412
|
-
} catch(err) {
|
|
413
|
-
console.error(`Error emitting input ${pipeId}: ${err}`)
|
|
414
|
-
this.emit(
|
|
402
|
+
this.emit(MetaframeEvents.Input, pipeId, inputs[pipeId]);
|
|
403
|
+
} catch (err) {
|
|
404
|
+
console.error(`Error emitting input ${pipeId}: ${err}`);
|
|
405
|
+
this.emit(
|
|
406
|
+
MetaframeEvents.Error,
|
|
407
|
+
`Error emitting input ${pipeId}: ${err}`,
|
|
408
|
+
);
|
|
415
409
|
}
|
|
416
410
|
});
|
|
417
411
|
try {
|
|
418
412
|
this.emit(MetaframeEvents.Inputs, inputs);
|
|
419
|
-
} catch(err) {
|
|
420
|
-
console.error(`Error emitting inputs: ${err}`)
|
|
413
|
+
} catch (err) {
|
|
414
|
+
console.error(`Error emitting inputs: ${err}`);
|
|
421
415
|
this.emit(MetaframeEvents.Error, `Error emitting inputs: ${err}`);
|
|
422
416
|
}
|
|
423
417
|
}
|
|
@@ -475,8 +469,6 @@ export class Metaframe extends EventEmitter<
|
|
|
475
469
|
// window.removeEventListener("hashchange", this._onHashUrlChange);
|
|
476
470
|
// }
|
|
477
471
|
|
|
478
|
-
|
|
479
|
-
|
|
480
472
|
/** Tell the parent metapage our hash params changed */
|
|
481
473
|
_onHashUrlChange(_: any): void {
|
|
482
474
|
const payload: MetapageEventUrlHashUpdate = {
|
|
@@ -501,7 +493,7 @@ export class Metaframe extends EventEmitter<
|
|
|
501
493
|
}
|
|
502
494
|
} else {
|
|
503
495
|
this.log(
|
|
504
|
-
"Cannot send JSON-RPC window message: there is no window.parent which means we are not an iframe"
|
|
496
|
+
"Cannot send JSON-RPC window message: there is no window.parent which means we are not an iframe",
|
|
505
497
|
);
|
|
506
498
|
}
|
|
507
499
|
}
|
|
@@ -519,7 +511,7 @@ export class Metaframe extends EventEmitter<
|
|
|
519
511
|
)
|
|
520
512
|
) {
|
|
521
513
|
this.log(
|
|
522
|
-
`window.message: received message (method=${method}) but jsonrpc.parentId=${jsonrpc.parentId} _parentId=${this._parentId} jsonrpc.iframeId=${jsonrpc.iframeId} id=${this.id}
|
|
514
|
+
`window.message: received message (method=${method}) but jsonrpc.parentId=${jsonrpc.parentId} _parentId=${this._parentId} jsonrpc.iframeId=${jsonrpc.iframeId} id=${this.id}`,
|
|
523
515
|
);
|
|
524
516
|
return;
|
|
525
517
|
}
|
|
@@ -541,8 +533,8 @@ export class Metaframe extends EventEmitter<
|
|
|
541
533
|
if (this.debug)
|
|
542
534
|
this.log(
|
|
543
535
|
`window.message: unknown JSON-RPC method: ${JSON.stringify(
|
|
544
|
-
jsonrpc
|
|
545
|
-
)}
|
|
536
|
+
jsonrpc,
|
|
537
|
+
)}`,
|
|
546
538
|
);
|
|
547
539
|
break;
|
|
548
540
|
}
|
|
@@ -558,7 +550,7 @@ export class Metaframe extends EventEmitter<
|
|
|
558
550
|
setHashParamInWindow(key, value);
|
|
559
551
|
}
|
|
560
552
|
|
|
561
|
-
getParameter(key: string)
|
|
553
|
+
getParameter(key: string): string | undefined {
|
|
562
554
|
return getHashParamFromWindow(key);
|
|
563
555
|
}
|
|
564
556
|
|
|
@@ -566,7 +558,7 @@ export class Metaframe extends EventEmitter<
|
|
|
566
558
|
setHashParamValueBooleanInWindow(key, value);
|
|
567
559
|
}
|
|
568
560
|
|
|
569
|
-
getParameterBoolean(key: string)
|
|
561
|
+
getParameterBoolean(key: string): boolean | undefined {
|
|
570
562
|
return getHashParamValueBooleanFromWindow(key);
|
|
571
563
|
}
|
|
572
564
|
|
|
@@ -574,7 +566,7 @@ export class Metaframe extends EventEmitter<
|
|
|
574
566
|
setHashParamValueJsonInWindow(key, value);
|
|
575
567
|
}
|
|
576
568
|
|
|
577
|
-
getParameterJson<T>(key: string)
|
|
569
|
+
getParameterJson<T>(key: string): T | undefined {
|
|
578
570
|
return getHashParamValueJsonFromWindow<T>(key);
|
|
579
571
|
}
|
|
580
572
|
|
|
@@ -582,7 +574,7 @@ export class Metaframe extends EventEmitter<
|
|
|
582
574
|
setHashParamValueBase64EncodedInWindow(key, value);
|
|
583
575
|
}
|
|
584
576
|
|
|
585
|
-
getParameterBase64(key: string)
|
|
577
|
+
getParameterBase64(key: string): string | undefined {
|
|
586
578
|
return getHashParamValueBase64DecodedFromWindow(key);
|
|
587
579
|
}
|
|
588
580
|
|
|
@@ -590,7 +582,7 @@ export class Metaframe extends EventEmitter<
|
|
|
590
582
|
setHashParamValueFloatInWindow(key, value);
|
|
591
583
|
}
|
|
592
584
|
|
|
593
|
-
getParameterFloat(key: string)
|
|
585
|
+
getParameterFloat(key: string): number | undefined {
|
|
594
586
|
return getHashParamValueFloatFromWindow(key);
|
|
595
587
|
}
|
|
596
588
|
|
|
@@ -598,11 +590,11 @@ export class Metaframe extends EventEmitter<
|
|
|
598
590
|
setHashParamValueIntInWindow(key, value);
|
|
599
591
|
}
|
|
600
592
|
|
|
601
|
-
getParameterInt(key: string)
|
|
593
|
+
getParameterInt(key: string): number | undefined {
|
|
602
594
|
return getHashParamValueIntFromWindow(key);
|
|
603
595
|
}
|
|
604
596
|
|
|
605
597
|
deleteParameter(key: string) {
|
|
606
598
|
setHashParamInWindow(key, undefined);
|
|
607
599
|
}
|
|
608
|
-
}
|
|
600
|
+
}
|
package/src/metapage/Metapage.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
convertMetapageDefinitionToCurrentVersion,
|
|
8
8
|
getMatchingMetapageVersion,
|
|
9
9
|
} from "./conversions-metapage";
|
|
10
|
-
import { MetaframeId, MetaframePipeId, MetapageId } from "./core";
|
|
10
|
+
import { Disposer, MetaframeId, MetaframePipeId, MetapageId } from "./core";
|
|
11
11
|
import { deserializeInputs, serializeInputs } from "./data";
|
|
12
12
|
import {
|
|
13
13
|
MetapageEventDefinition,
|
|
@@ -54,11 +54,11 @@ const emptyState: MetapageState = create<MetapageState>(
|
|
|
54
54
|
outputs: {},
|
|
55
55
|
},
|
|
56
56
|
},
|
|
57
|
-
(draft) => draft
|
|
57
|
+
(draft) => draft,
|
|
58
58
|
);
|
|
59
59
|
|
|
60
60
|
export const getLibraryVersionMatching = (
|
|
61
|
-
version: string
|
|
61
|
+
version: string,
|
|
62
62
|
): VersionsMetapage => {
|
|
63
63
|
return getMatchingMetapageVersion(version);
|
|
64
64
|
};
|
|
@@ -157,7 +157,7 @@ export class Metapage extends MetapageShared {
|
|
|
157
157
|
// for caching input lookups
|
|
158
158
|
_cachedInputLookupMap: CachedInputLookupMap = create<CachedInputLookupMap>(
|
|
159
159
|
{},
|
|
160
|
-
(draft) => draft
|
|
160
|
+
(draft) => draft,
|
|
161
161
|
);
|
|
162
162
|
_inputMap: {
|
|
163
163
|
[key: string]: PipeInput[];
|
|
@@ -260,8 +260,8 @@ export class Metapage extends MetapageShared {
|
|
|
260
260
|
|
|
261
261
|
addListenerReturnDisposer(
|
|
262
262
|
event: MetapageEvents,
|
|
263
|
-
listener: ListenerFn<any[]
|
|
264
|
-
):
|
|
263
|
+
listener: ListenerFn<any[]>,
|
|
264
|
+
): Disposer {
|
|
265
265
|
super.addListener(event, listener);
|
|
266
266
|
const disposer = () => {
|
|
267
267
|
super.removeListener(event, listener);
|
|
@@ -269,15 +269,15 @@ export class Metapage extends MetapageShared {
|
|
|
269
269
|
return disposer;
|
|
270
270
|
}
|
|
271
271
|
|
|
272
|
-
onInputs(cb: (inputs: MetapageInstanceInputs) =>
|
|
272
|
+
onInputs(cb: (inputs: MetapageInstanceInputs) => void): Disposer {
|
|
273
273
|
return this.addListenerReturnDisposer(MetapageEvents.Inputs, cb);
|
|
274
274
|
}
|
|
275
275
|
|
|
276
|
-
onOutputs(cb: (outputs: MetapageInstanceInputs) => void) {
|
|
276
|
+
onOutputs(cb: (outputs: MetapageInstanceInputs) => void): Disposer {
|
|
277
277
|
return this.addListenerReturnDisposer(MetapageEvents.Outputs, cb);
|
|
278
278
|
}
|
|
279
279
|
|
|
280
|
-
onState(cb: (state: MetapageState) => void) {
|
|
280
|
+
onState(cb: (state: MetapageState) => void): Disposer {
|
|
281
281
|
return this.addListenerReturnDisposer(MetapageEvents.State, cb);
|
|
282
282
|
}
|
|
283
283
|
|
|
@@ -301,10 +301,10 @@ export class Metapage extends MetapageShared {
|
|
|
301
301
|
this._state = create<MetapageState>(newState, (draft) => draft);
|
|
302
302
|
this.getMetaframeIds().forEach((metaframeId) => {
|
|
303
303
|
this.getMetaframe(metaframeId)?.setInputs(
|
|
304
|
-
this._state.metaframes.inputs[metaframeId]
|
|
304
|
+
this._state.metaframes.inputs[metaframeId],
|
|
305
305
|
);
|
|
306
306
|
this.getMetaframe(metaframeId)?.setOutputs(
|
|
307
|
-
this._state.metaframes.outputs[metaframeId]
|
|
307
|
+
this._state.metaframes.outputs[metaframeId],
|
|
308
308
|
);
|
|
309
309
|
});
|
|
310
310
|
|
|
@@ -326,7 +326,7 @@ export class Metapage extends MetapageShared {
|
|
|
326
326
|
|
|
327
327
|
public async setDefinition(
|
|
328
328
|
def: any,
|
|
329
|
-
state?: MetapageState
|
|
329
|
+
state?: MetapageState,
|
|
330
330
|
): Promise<Metapage> {
|
|
331
331
|
// Some validation
|
|
332
332
|
if (!def.version) {
|
|
@@ -351,7 +351,7 @@ export class Metapage extends MetapageShared {
|
|
|
351
351
|
|
|
352
352
|
if (!metaframeDefinition.url) {
|
|
353
353
|
this.emitErrorMessage(
|
|
354
|
-
`Metaframe "${metaframeId}" missing field: url
|
|
354
|
+
`Metaframe "${metaframeId}" missing field: url`,
|
|
355
355
|
);
|
|
356
356
|
throw `Metaframe "${metaframeId}" missing field: url`;
|
|
357
357
|
}
|
|
@@ -485,7 +485,7 @@ export class Metapage extends MetapageShared {
|
|
|
485
485
|
// to add/remove
|
|
486
486
|
removeAll(): void {
|
|
487
487
|
Object.keys(this._metaframes).forEach((id) =>
|
|
488
|
-
this._metaframes[id].dispose()
|
|
488
|
+
this._metaframes[id].dispose(),
|
|
489
489
|
);
|
|
490
490
|
this._metaframes = create({}, (draft) => draft);
|
|
491
491
|
this._state = emptyState;
|
|
@@ -518,7 +518,7 @@ export class Metapage extends MetapageShared {
|
|
|
518
518
|
// do not expose, change definition instead
|
|
519
519
|
addMetaframe(
|
|
520
520
|
metaframeId: MetaframeId,
|
|
521
|
-
definition: MetaframeInstance
|
|
521
|
+
definition: MetaframeInstance,
|
|
522
522
|
): MetapageIFrameRpcClient {
|
|
523
523
|
if (!metaframeId) {
|
|
524
524
|
throw "addMetaframe missing metaframeId";
|
|
@@ -535,7 +535,7 @@ export class Metapage extends MetapageShared {
|
|
|
535
535
|
|
|
536
536
|
if (!definition.url) {
|
|
537
537
|
this.emitErrorMessage(
|
|
538
|
-
`Metaframe definition missing url id=${metaframeId}
|
|
538
|
+
`Metaframe definition missing url id=${metaframeId}`,
|
|
539
539
|
);
|
|
540
540
|
throw `Metaframe definition missing url id=${metaframeId}`;
|
|
541
541
|
}
|
|
@@ -546,13 +546,13 @@ export class Metapage extends MetapageShared {
|
|
|
546
546
|
metaframeId,
|
|
547
547
|
this._id,
|
|
548
548
|
this._consoleBackgroundColor,
|
|
549
|
-
this.debug
|
|
549
|
+
this.debug,
|
|
550
550
|
).setMetapage(this);
|
|
551
551
|
this._metaframes = create<MetaframeClients>(
|
|
552
552
|
this._metaframes,
|
|
553
553
|
(draft: MetaframeClients) => {
|
|
554
554
|
draft[metaframeId] = iframeClient;
|
|
555
|
-
}
|
|
555
|
+
},
|
|
556
556
|
);
|
|
557
557
|
|
|
558
558
|
iframeClient.addListener(MetapageEvents.Error, (err) => {
|
|
@@ -581,7 +581,7 @@ export class Metapage extends MetapageShared {
|
|
|
581
581
|
window.removeEventListener("message", this.onMessage);
|
|
582
582
|
if (this._metaframes) {
|
|
583
583
|
Object.keys(this._metaframes).forEach((metaframeId) =>
|
|
584
|
-
this._metaframes[metaframeId].dispose()
|
|
584
|
+
this._metaframes[metaframeId].dispose(),
|
|
585
585
|
);
|
|
586
586
|
}
|
|
587
587
|
|
|
@@ -618,7 +618,7 @@ export class Metapage extends MetapageShared {
|
|
|
618
618
|
getInputsFromOutput(
|
|
619
619
|
source: MetaframeId,
|
|
620
620
|
// the pipe id is simply the name of the output file/object/thing
|
|
621
|
-
outputPipeId: MetaframePipeId
|
|
621
|
+
outputPipeId: MetaframePipeId,
|
|
622
622
|
): MetaframeInputTargetsFromOutput[] {
|
|
623
623
|
// Do all the cache checking
|
|
624
624
|
if (!this._cachedInputLookupMap[source]) {
|
|
@@ -626,7 +626,7 @@ export class Metapage extends MetapageShared {
|
|
|
626
626
|
this._cachedInputLookupMap,
|
|
627
627
|
(draft: CachedInputLookupMap) => {
|
|
628
628
|
draft[source] = create({}, (__) => __);
|
|
629
|
-
}
|
|
629
|
+
},
|
|
630
630
|
);
|
|
631
631
|
}
|
|
632
632
|
|
|
@@ -668,7 +668,7 @@ export class Metapage extends MetapageShared {
|
|
|
668
668
|
}
|
|
669
669
|
});
|
|
670
670
|
});
|
|
671
|
-
}
|
|
671
|
+
},
|
|
672
672
|
);
|
|
673
673
|
}
|
|
674
674
|
|
|
@@ -718,7 +718,7 @@ export class Metapage extends MetapageShared {
|
|
|
718
718
|
public setInput(
|
|
719
719
|
iframeId: MetaframeId | MetapageInstanceInputs,
|
|
720
720
|
inputPipeId?: MetaframePipeId | MetaframeInputMap,
|
|
721
|
-
value?: PipeUpdateBlob
|
|
721
|
+
value?: PipeUpdateBlob,
|
|
722
722
|
) {
|
|
723
723
|
if (typeof iframeId === "object") {
|
|
724
724
|
this.setInputStateOnlyMetapageInstanceInputs(iframeId);
|
|
@@ -731,7 +731,7 @@ export class Metapage extends MetapageShared {
|
|
|
731
731
|
this.setMetaframeClientInputAndSentClientEvent(
|
|
732
732
|
iframeId,
|
|
733
733
|
inputPipeId,
|
|
734
|
-
value
|
|
734
|
+
value,
|
|
735
735
|
);
|
|
736
736
|
// finally send the main events
|
|
737
737
|
if (
|
|
@@ -748,7 +748,7 @@ export class Metapage extends MetapageShared {
|
|
|
748
748
|
setMetaframeClientInputAndSentClientEvent(
|
|
749
749
|
iframeId: MetaframeId | MetapageInstanceInputs,
|
|
750
750
|
inputPipeId?: MetaframePipeId | MetaframeInputMap,
|
|
751
|
-
value?: PipeUpdateBlob
|
|
751
|
+
value?: PipeUpdateBlob,
|
|
752
752
|
) {
|
|
753
753
|
if (typeof iframeId === "object") {
|
|
754
754
|
if (inputPipeId || value) {
|
|
@@ -788,13 +788,13 @@ export class Metapage extends MetapageShared {
|
|
|
788
788
|
public setInputs(
|
|
789
789
|
iframeId: MetaframeId | MetapageInstanceInputs,
|
|
790
790
|
inputPipeId?: MetaframePipeId | MetaframeInputMap,
|
|
791
|
-
value?: PipeUpdateBlob
|
|
791
|
+
value?: PipeUpdateBlob,
|
|
792
792
|
) {
|
|
793
793
|
this.setInput(iframeId, inputPipeId, value);
|
|
794
794
|
}
|
|
795
795
|
|
|
796
796
|
setOutputStateOnlyMetapageInstanceInputs(
|
|
797
|
-
metapageInputs: MetapageInstanceInputs
|
|
797
|
+
metapageInputs: MetapageInstanceInputs,
|
|
798
798
|
) {
|
|
799
799
|
this._setStateOnlyMetaframes(false, metapageInputs);
|
|
800
800
|
}
|
|
@@ -802,25 +802,25 @@ export class Metapage extends MetapageShared {
|
|
|
802
802
|
setOutputStateOnlyMetaframeInputValue(
|
|
803
803
|
metaframeId: MetaframeId,
|
|
804
804
|
inputPipeId: MetaframePipeId,
|
|
805
|
-
value?: PipeUpdateBlob
|
|
805
|
+
value?: PipeUpdateBlob,
|
|
806
806
|
) {
|
|
807
807
|
this._setStateOnlyMetaframeInputValue(
|
|
808
808
|
false,
|
|
809
809
|
metaframeId,
|
|
810
810
|
inputPipeId,
|
|
811
|
-
value
|
|
811
|
+
value,
|
|
812
812
|
);
|
|
813
813
|
}
|
|
814
814
|
|
|
815
815
|
setOutputStateOnlyMetaframeInputMap(
|
|
816
816
|
metaframeId: MetaframeId,
|
|
817
|
-
metaframeValuesNew: MetaframeInputMap
|
|
817
|
+
metaframeValuesNew: MetaframeInputMap,
|
|
818
818
|
) {
|
|
819
819
|
this._setStateOnlyMetaframeInputMap(false, metaframeId, metaframeValuesNew);
|
|
820
820
|
}
|
|
821
821
|
|
|
822
822
|
setInputStateOnlyMetapageInstanceInputs(
|
|
823
|
-
metapageInputs: MetapageInstanceInputs
|
|
823
|
+
metapageInputs: MetapageInstanceInputs,
|
|
824
824
|
) {
|
|
825
825
|
this._setStateOnlyMetaframes(true, metapageInputs);
|
|
826
826
|
}
|
|
@@ -828,19 +828,19 @@ export class Metapage extends MetapageShared {
|
|
|
828
828
|
setInputStateOnlyMetaframeInputValue(
|
|
829
829
|
metaframeId: MetaframeId,
|
|
830
830
|
inputPipeId: MetaframePipeId,
|
|
831
|
-
value?: PipeUpdateBlob
|
|
831
|
+
value?: PipeUpdateBlob,
|
|
832
832
|
) {
|
|
833
833
|
this._setStateOnlyMetaframeInputValue(
|
|
834
834
|
true,
|
|
835
835
|
metaframeId,
|
|
836
836
|
inputPipeId,
|
|
837
|
-
value
|
|
837
|
+
value,
|
|
838
838
|
);
|
|
839
839
|
}
|
|
840
840
|
|
|
841
841
|
setInputStateOnlyMetaframeInputMap(
|
|
842
842
|
metaframeId: MetaframeId,
|
|
843
|
-
metaframeValuesNew: MetaframeInputMap
|
|
843
|
+
metaframeValuesNew: MetaframeInputMap,
|
|
844
844
|
) {
|
|
845
845
|
this._setStateOnlyMetaframeInputMap(true, metaframeId, metaframeValuesNew);
|
|
846
846
|
}
|
|
@@ -849,7 +849,7 @@ export class Metapage extends MetapageShared {
|
|
|
849
849
|
isInputs: boolean,
|
|
850
850
|
metaframeId: MetaframeId,
|
|
851
851
|
metaframePipeId: MetaframePipeId,
|
|
852
|
-
value?: PipeUpdateBlob
|
|
852
|
+
value?: PipeUpdateBlob,
|
|
853
853
|
): void {
|
|
854
854
|
this._state = create(this._state, (draft: MetapageState) => {
|
|
855
855
|
const isMetaframe = this._metaframes.hasOwnProperty(metaframeId);
|
|
@@ -893,7 +893,7 @@ export class Metapage extends MetapageShared {
|
|
|
893
893
|
_setStateOnlyMetaframeInputMap(
|
|
894
894
|
isInputs: boolean,
|
|
895
895
|
metaframeId: MetaframeId,
|
|
896
|
-
metaframeValuesNew: MetaframeInputMap
|
|
896
|
+
metaframeValuesNew: MetaframeInputMap,
|
|
897
897
|
): void {
|
|
898
898
|
if (!metaframeValuesNew || Object.keys(metaframeValuesNew).length === 0) {
|
|
899
899
|
return;
|
|
@@ -929,7 +929,7 @@ export class Metapage extends MetapageShared {
|
|
|
929
929
|
|
|
930
930
|
_setStateOnlyMetaframes(
|
|
931
931
|
isInputs: boolean,
|
|
932
|
-
inputsMetaframesNew: MetapageInstanceInputs
|
|
932
|
+
inputsMetaframesNew: MetapageInstanceInputs,
|
|
933
933
|
): void {
|
|
934
934
|
if (!inputsMetaframesNew || Object.keys(inputsMetaframesNew).length === 0) {
|
|
935
935
|
return;
|
|
@@ -1045,7 +1045,7 @@ export class Metapage extends MetapageShared {
|
|
|
1045
1045
|
|
|
1046
1046
|
if (this.debug) {
|
|
1047
1047
|
this.log(
|
|
1048
|
-
`processing ${JSON.stringify(jsonrpc, null, " ").substring(0, 500)}
|
|
1048
|
+
`processing ${JSON.stringify(jsonrpc, null, " ").substring(0, 500)}`,
|
|
1049
1049
|
);
|
|
1050
1050
|
}
|
|
1051
1051
|
|
|
@@ -1107,7 +1107,7 @@ export class Metapage extends MetapageShared {
|
|
|
1107
1107
|
this.setInputStateOnlyMetapageInstanceInputs(collectedOutputs);
|
|
1108
1108
|
Object.keys(collectedOutputs).forEach((metaframeId) => {
|
|
1109
1109
|
this._metaframes[metaframeId].setInputs(
|
|
1110
|
-
collectedOutputs[metaframeId]
|
|
1110
|
+
collectedOutputs[metaframeId],
|
|
1111
1111
|
// then actually set the inputs once collected
|
|
1112
1112
|
);
|
|
1113
1113
|
});
|
|
@@ -1157,7 +1157,7 @@ export class Metapage extends MetapageShared {
|
|
|
1157
1157
|
}
|
|
1158
1158
|
} else {
|
|
1159
1159
|
console.error(
|
|
1160
|
-
`InputsUpdate failed no metaframe id: "${metaframeId}"
|
|
1160
|
+
`InputsUpdate failed no metaframe id: "${metaframeId}"`,
|
|
1161
1161
|
);
|
|
1162
1162
|
this.error(`InputsUpdate failed no metaframe id: "${metaframeId}"`);
|
|
1163
1163
|
}
|
|
@@ -1187,7 +1187,7 @@ export class Metapage extends MetapageShared {
|
|
|
1187
1187
|
(draft) => {
|
|
1188
1188
|
draft.metaframes[hashParamsUpdatePayload.metaframe].url =
|
|
1189
1189
|
url.href;
|
|
1190
|
-
}
|
|
1190
|
+
},
|
|
1191
1191
|
);
|
|
1192
1192
|
|
|
1193
1193
|
this._emitDefinitionEvent();
|