@antelopejs/interface-core 0.1.1 → 0.2.0
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/dist/caller-binding.d.ts +11 -0
- package/dist/caller-binding.js +97 -0
- package/dist/caller-binding.js.map +1 -0
- package/dist/config.d.ts +15 -1
- package/dist/config.js.map +1 -1
- package/dist/internal.d.ts +8 -10
- package/dist/internal.js +1 -2
- package/dist/internal.js.map +1 -1
- package/dist/modules.d.ts +7 -0
- package/dist/modules.js +14 -2
- package/dist/modules.js.map +1 -1
- package/dist/proxies.d.ts +17 -16
- package/dist/proxies.js +86 -169
- package/dist/proxies.js.map +1 -1
- package/dist/tests/caller-context.test.js +139 -0
- package/dist/tests/caller-context.test.js.map +1 -0
- package/dist/tests/generation-cleanup.test.js +0 -2
- package/dist/tests/generation-cleanup.test.js.map +1 -1
- package/dist/tests/provider-context.test.js +0 -8
- package/dist/tests/provider-context.test.js.map +1 -1
- package/dist/tests/release-owner.test.d.ts +1 -0
- package/dist/tests/release-owner.test.js +34 -0
- package/dist/tests/release-owner.test.js.map +1 -0
- package/dist/tests/responsible-module.test.js +2 -2
- package/dist/tests/responsible-module.test.js.map +1 -1
- package/dist/tests/runtime-protocol.test.js +8 -11
- package/dist/tests/runtime-protocol.test.js.map +1 -1
- package/dist/tests/single-provider.test.d.ts +1 -0
- package/dist/tests/single-provider.test.js +55 -0
- package/dist/tests/single-provider.test.js.map +1 -0
- package/docs/2.proxies.md +18 -5
- package/docs/5.modules.md +1 -3
- package/docs/7.configuration.md +10 -7
- package/package.json +2 -2
- package/dist/tests/provider-routing.test.js +0 -78
- package/dist/tests/provider-routing.test.js.map +0 -1
- /package/dist/tests/{provider-routing.test.d.ts → caller-context.test.d.ts} +0 -0
package/dist/proxies.js
CHANGED
|
@@ -8,10 +8,11 @@ exports.RunWithResponsibleModule = RunWithResponsibleModule;
|
|
|
8
8
|
exports.InterfaceFunction = InterfaceFunction;
|
|
9
9
|
exports.GetResponsibleModule = GetResponsibleModule;
|
|
10
10
|
const responsible_module_1 = require("./responsible-module");
|
|
11
|
+
const caller_binding_1 = require("./caller-binding");
|
|
11
12
|
const errors_1 = require("./errors");
|
|
12
13
|
const internal_1 = require("./internal");
|
|
13
14
|
const PROXY_BRAND = Symbol.for("@antelopejs/interface-core/proxy");
|
|
14
|
-
const
|
|
15
|
+
const DEFAULT_OWNER = "@antelopejs/interface-core/default-provider";
|
|
15
16
|
function createIdentity(kind, identity) {
|
|
16
17
|
if (identity) {
|
|
17
18
|
return `${kind}:${identity}`;
|
|
@@ -19,18 +20,6 @@ function createIdentity(kind, identity) {
|
|
|
19
20
|
const nextIdentity = internal_1.internal.nextProxyIdentity++;
|
|
20
21
|
return `${kind}:anonymous:${nextIdentity}`;
|
|
21
22
|
}
|
|
22
|
-
function getProxyState(brand, create) {
|
|
23
|
-
const existing = internal_1.internal.proxyStates.get(brand.identity);
|
|
24
|
-
if (existing && existing.kind !== brand.kind) {
|
|
25
|
-
throw new Error(`Proxy identity ${brand.identity} has conflicting kinds.`);
|
|
26
|
-
}
|
|
27
|
-
if (existing) {
|
|
28
|
-
return existing.value;
|
|
29
|
-
}
|
|
30
|
-
const value = create();
|
|
31
|
-
internal_1.internal.proxyStates.set(brand.identity, { kind: brand.kind, value });
|
|
32
|
-
return value;
|
|
33
|
-
}
|
|
34
23
|
function createBrand(kind, identity) {
|
|
35
24
|
return Object.freeze({
|
|
36
25
|
protocol: internal_1.RUNTIME_PROTOCOL_VERSION,
|
|
@@ -53,19 +42,17 @@ function IsInterfaceProxy(value, kind) {
|
|
|
53
42
|
const brand = readBrand(value);
|
|
54
43
|
return Boolean(brand && (!kind || brand.kind === kind));
|
|
55
44
|
}
|
|
56
|
-
/** Returns the
|
|
45
|
+
/** Returns the identity a proxy was declared with, for diagnostics. */
|
|
57
46
|
function GetInterfaceProxyIdentity(value) {
|
|
58
47
|
return readBrand(value)?.identity;
|
|
59
48
|
}
|
|
60
|
-
function
|
|
49
|
+
function getAttachmentOwner(manualDetach) {
|
|
61
50
|
const context = (0, internal_1.getModuleContext)();
|
|
62
51
|
const responsible = manualDetach || context?.module ? undefined : GetResponsibleModule();
|
|
63
|
-
|
|
64
|
-
return { owner, provider: context?.provider ?? owner };
|
|
52
|
+
return context?.owner ?? context?.module ?? responsible ?? DEFAULT_OWNER;
|
|
65
53
|
}
|
|
66
|
-
function
|
|
67
|
-
|
|
68
|
-
return context?.providerRoutes?.[proxyIdentity] ?? context?.provider;
|
|
54
|
+
function createLease(owner) {
|
|
55
|
+
return { owner, generation: internal_1.internal.nextLeaseGeneration++ };
|
|
69
56
|
}
|
|
70
57
|
function bindProviderCallback(callback) {
|
|
71
58
|
const context = (0, internal_1.captureModuleContext)();
|
|
@@ -82,19 +69,6 @@ function getExecutionOwnership() {
|
|
|
82
69
|
const module = GetResponsibleModule();
|
|
83
70
|
return { module, owner: module };
|
|
84
71
|
}
|
|
85
|
-
function selectProvider(callbacks, proxyIdentity, requested) {
|
|
86
|
-
if (requested) {
|
|
87
|
-
const callback = callbacks.get(requested);
|
|
88
|
-
if (!callback && callbacks.size > 0) {
|
|
89
|
-
throw new errors_1.MissingProviderError(`Interface proxy ${proxyIdentity} has no provider for route ${requested}.`);
|
|
90
|
-
}
|
|
91
|
-
return callback;
|
|
92
|
-
}
|
|
93
|
-
if (callbacks.size <= 1) {
|
|
94
|
-
return callbacks.values().next().value;
|
|
95
|
-
}
|
|
96
|
-
throw new errors_1.AmbiguousProviderError(proxyIdentity, [...callbacks.keys()]);
|
|
97
|
-
}
|
|
98
72
|
function reportRuntimeError(error, operation, proxyIdentity, module, registrationId) {
|
|
99
73
|
internal_1.internal.runtimeErrorReporter?.(error, {
|
|
100
74
|
operation,
|
|
@@ -115,68 +89,53 @@ function InvalidateResponsibleModule(module) {
|
|
|
115
89
|
function RunWithResponsibleModule(module, callback) {
|
|
116
90
|
return (0, internal_1.runWithModuleContext)({ module }, callback);
|
|
117
91
|
}
|
|
118
|
-
/** Proxy for an asynchronous interface function. */
|
|
92
|
+
/** Proxy for an asynchronous interface function, served by a single provider. */
|
|
119
93
|
class AsyncProxy {
|
|
120
94
|
[PROXY_BRAND];
|
|
121
|
-
|
|
95
|
+
attachment;
|
|
96
|
+
queue = [];
|
|
122
97
|
constructor(identity) {
|
|
123
98
|
this[PROXY_BRAND] = createBrand("async", identity);
|
|
124
|
-
this.state = getProxyState(this[PROXY_BRAND], () => ({
|
|
125
|
-
callbacks: new Map(),
|
|
126
|
-
queue: [],
|
|
127
|
-
}));
|
|
128
99
|
}
|
|
129
|
-
/** Attaches
|
|
100
|
+
/** Attaches the provider callback, replacing any previous one, and replays queued calls. */
|
|
130
101
|
onCall(callback, manualDetach) {
|
|
131
|
-
const
|
|
132
|
-
const lease = { ...route, generation: internal_1.internal.nextLeaseGeneration++ };
|
|
102
|
+
const lease = createLease(getAttachmentOwner(manualDetach));
|
|
133
103
|
const providerCallback = bindProviderCallback(callback);
|
|
134
|
-
this.
|
|
135
|
-
callback: providerCallback,
|
|
136
|
-
...lease,
|
|
137
|
-
});
|
|
104
|
+
this.attachment = { callback: providerCallback, ...lease };
|
|
138
105
|
if (!manualDetach) {
|
|
139
|
-
internal_1.internal.addAsyncProxy(
|
|
106
|
+
internal_1.internal.addAsyncProxy(lease.owner, {
|
|
140
107
|
cleanup: () => this.detach(lease),
|
|
141
108
|
});
|
|
142
109
|
}
|
|
143
|
-
this.replayQueue(
|
|
110
|
+
this.replayQueue(providerCallback);
|
|
144
111
|
return lease;
|
|
145
112
|
}
|
|
146
|
-
/** Detaches
|
|
113
|
+
/** Detaches the leased attachment, or the current one when called without a lease. */
|
|
147
114
|
detach(lease) {
|
|
148
|
-
if (!lease) {
|
|
149
|
-
this.
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
const current = this.state.callbacks.get(lease.provider);
|
|
153
|
-
if (current?.generation === lease.generation &&
|
|
154
|
-
current.owner === lease.owner) {
|
|
155
|
-
this.state.callbacks.delete(lease.provider);
|
|
115
|
+
if (!lease || matchesLease(this.attachment, lease)) {
|
|
116
|
+
this.attachment = undefined;
|
|
156
117
|
}
|
|
157
118
|
}
|
|
158
|
-
/** Calls the provider
|
|
119
|
+
/** Calls the provider, or queues the call until a provider attaches. */
|
|
159
120
|
call(...args) {
|
|
160
|
-
let
|
|
161
|
-
let attachment;
|
|
121
|
+
let callerArgs;
|
|
162
122
|
try {
|
|
163
|
-
|
|
164
|
-
attachment = selectProvider(this.state.callbacks, this[PROXY_BRAND].identity, requested);
|
|
123
|
+
callerArgs = (0, caller_binding_1.bindCallerArguments)(args);
|
|
165
124
|
}
|
|
166
125
|
catch (error) {
|
|
167
126
|
return Promise.reject(error);
|
|
168
127
|
}
|
|
169
|
-
if (attachment) {
|
|
170
|
-
return this.invoke(attachment.callback,
|
|
128
|
+
if (this.attachment) {
|
|
129
|
+
return this.invoke(this.attachment.callback, callerArgs);
|
|
171
130
|
}
|
|
172
131
|
if (internal_1.internal.testStubMode) {
|
|
173
132
|
return Promise.reject(new errors_1.MissingProviderError());
|
|
174
133
|
}
|
|
175
|
-
if (this.
|
|
134
|
+
if (this.queue.length >= internal_1.internal.maxPendingOperations) {
|
|
176
135
|
return Promise.reject(new errors_1.ProviderQueueFullError(this[PROXY_BRAND].identity, internal_1.internal.maxPendingOperations));
|
|
177
136
|
}
|
|
178
137
|
return new Promise((resolve, reject) => {
|
|
179
|
-
this.
|
|
138
|
+
this.queue.push({ args: callerArgs, resolve, reject });
|
|
180
139
|
});
|
|
181
140
|
}
|
|
182
141
|
invoke(callback, args) {
|
|
@@ -187,16 +146,12 @@ class AsyncProxy {
|
|
|
187
146
|
return Promise.reject(error);
|
|
188
147
|
}
|
|
189
148
|
}
|
|
190
|
-
replayQueue(
|
|
191
|
-
const
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
continue;
|
|
196
|
-
}
|
|
197
|
-
this.invoke(callback, pending.args).then(pending.resolve, pending.reject);
|
|
149
|
+
replayQueue(callback) {
|
|
150
|
+
const pending = this.queue;
|
|
151
|
+
this.queue = [];
|
|
152
|
+
for (const call of pending) {
|
|
153
|
+
this.invoke(callback, call.args).then(call.resolve, call.reject);
|
|
198
154
|
}
|
|
199
|
-
this.state.queue = remaining;
|
|
200
155
|
}
|
|
201
156
|
}
|
|
202
157
|
exports.AsyncProxy = AsyncProxy;
|
|
@@ -207,104 +162,81 @@ function InterfaceFunction(identity) {
|
|
|
207
162
|
func.proxy = proxy;
|
|
208
163
|
return func;
|
|
209
164
|
}
|
|
210
|
-
/** Proxy for
|
|
165
|
+
/** Proxy for register and unregister handlers, served by a single provider. */
|
|
211
166
|
class RegisteringProxy {
|
|
212
167
|
[PROXY_BRAND];
|
|
213
|
-
|
|
168
|
+
handlers = {};
|
|
169
|
+
registered = new Map();
|
|
214
170
|
constructor(identity) {
|
|
215
171
|
this[PROXY_BRAND] = createBrand("registering", identity);
|
|
216
|
-
this.state = getProxyState(this[PROXY_BRAND], () => ({
|
|
217
|
-
callbacks: new Map(),
|
|
218
|
-
registered: new Map(),
|
|
219
|
-
}));
|
|
220
172
|
internal_1.internal.registeringProxies.add(this);
|
|
221
173
|
}
|
|
222
174
|
/** Attaches a register callback. */
|
|
223
175
|
onRegister(callback, manualDetach) {
|
|
224
|
-
|
|
225
|
-
|
|
176
|
+
return this.attachRegister(bindProviderCallback(callback), {
|
|
177
|
+
owner: getAttachmentOwner(manualDetach),
|
|
178
|
+
manualDetach: Boolean(manualDetach),
|
|
179
|
+
});
|
|
226
180
|
}
|
|
227
|
-
/** Attaches an unregister callback
|
|
181
|
+
/** Attaches an unregister callback, sharing the register callback's owner when it is the caller's. */
|
|
228
182
|
onUnregister(callback) {
|
|
229
183
|
const context = (0, internal_1.getModuleContext)();
|
|
230
|
-
const requested = context?.provider ?? context?.module;
|
|
231
|
-
const current = selectProvider(this.state.callbacks, this[PROXY_BRAND].identity, requested);
|
|
232
184
|
const contextOwner = context?.owner ?? context?.module;
|
|
233
|
-
const attachments = [
|
|
185
|
+
const attachments = [this.handlers.unregister, this.handlers.register];
|
|
234
186
|
const sibling = contextOwner
|
|
235
187
|
? attachments.find((attachment) => attachment?.owner === contextOwner)
|
|
236
188
|
: attachments.find((attachment) => Boolean(attachment));
|
|
237
|
-
const
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
route: { owner: sibling.owner, provider: current.provider },
|
|
241
|
-
manualDetach: sibling.manualDetach,
|
|
242
|
-
}
|
|
243
|
-
: { route: getAttachmentRoute(), manualDetach: false };
|
|
189
|
+
const options = sibling
|
|
190
|
+
? { owner: sibling.owner, manualDetach: sibling.manualDetach }
|
|
191
|
+
: { owner: getAttachmentOwner(), manualDetach: false };
|
|
244
192
|
return this.attachUnregister(bindProviderCallback(callback), options);
|
|
245
193
|
}
|
|
246
194
|
/** Atomically attaches both registration handlers. */
|
|
247
195
|
onHandlers(register, unregister, manualDetach) {
|
|
248
|
-
const
|
|
249
|
-
const lease = this.createLease(route);
|
|
196
|
+
const lease = createLease(getAttachmentOwner(manualDetach));
|
|
250
197
|
const boundRegister = bindProviderCallback(register);
|
|
251
198
|
const boundUnregister = bindProviderCallback(unregister);
|
|
252
|
-
this.
|
|
253
|
-
provider: route.provider,
|
|
199
|
+
this.handlers = {
|
|
254
200
|
register: this.createAttachment(boundRegister, lease, manualDetach),
|
|
255
201
|
unregister: this.createAttachment(boundUnregister, lease, manualDetach),
|
|
256
|
-
}
|
|
202
|
+
};
|
|
257
203
|
this.trackAttachment(lease, Boolean(manualDetach));
|
|
258
|
-
this.replayRegistrations(
|
|
204
|
+
this.replayRegistrations(boundRegister);
|
|
259
205
|
return lease;
|
|
260
206
|
}
|
|
261
|
-
/** Detaches
|
|
207
|
+
/** Detaches the leased handlers, or both handlers when called without a lease. */
|
|
262
208
|
detach(lease) {
|
|
263
209
|
if (!lease) {
|
|
264
|
-
this.
|
|
210
|
+
this.handlers = {};
|
|
265
211
|
return;
|
|
266
212
|
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
return;
|
|
270
|
-
}
|
|
271
|
-
if (matchesLease(current.register, lease)) {
|
|
272
|
-
current.register = undefined;
|
|
273
|
-
}
|
|
274
|
-
if (matchesLease(current.unregister, lease)) {
|
|
275
|
-
current.unregister = undefined;
|
|
213
|
+
if (matchesLease(this.handlers.register, lease)) {
|
|
214
|
+
this.handlers.register = undefined;
|
|
276
215
|
}
|
|
277
|
-
if (
|
|
278
|
-
this.
|
|
216
|
+
if (matchesLease(this.handlers.unregister, lease)) {
|
|
217
|
+
this.handlers.unregister = undefined;
|
|
279
218
|
}
|
|
280
219
|
}
|
|
281
|
-
/** Registers an entry with the
|
|
220
|
+
/** Registers an entry with the provider and keeps it for replay on (re)attach. */
|
|
282
221
|
register(id, ...args) {
|
|
283
|
-
const
|
|
284
|
-
const callback =
|
|
222
|
+
const callerArgs = (0, caller_binding_1.bindCallerArguments)(args);
|
|
223
|
+
const callback = this.handlers.register;
|
|
285
224
|
if (!callback && internal_1.internal.testStubMode) {
|
|
286
225
|
throw new errors_1.MissingProviderError();
|
|
287
226
|
}
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
...ownership,
|
|
291
|
-
provider: requested ?? callback?.provider,
|
|
292
|
-
args,
|
|
293
|
-
});
|
|
294
|
-
callback?.register?.callback(id, ...args);
|
|
227
|
+
this.registered.set(id, { ...getExecutionOwnership(), args: callerArgs });
|
|
228
|
+
callback?.callback(id, ...callerArgs);
|
|
295
229
|
}
|
|
296
|
-
/** Unregisters an entry from the provider
|
|
230
|
+
/** Unregisters an entry from the provider. */
|
|
297
231
|
unregister(id) {
|
|
298
|
-
|
|
299
|
-
if (!entry) {
|
|
232
|
+
if (!this.registered.has(id)) {
|
|
300
233
|
return;
|
|
301
234
|
}
|
|
302
|
-
const callback = selectProvider(this.state.callbacks, this[PROXY_BRAND].identity, entry.provider);
|
|
303
235
|
try {
|
|
304
|
-
|
|
236
|
+
this.handlers.unregister?.callback(id);
|
|
305
237
|
}
|
|
306
238
|
finally {
|
|
307
|
-
this.
|
|
239
|
+
this.registered.delete(id);
|
|
308
240
|
}
|
|
309
241
|
}
|
|
310
242
|
/** Unregisters every entry owned by a destroyed module. */
|
|
@@ -316,7 +248,7 @@ class RegisteringProxy {
|
|
|
316
248
|
this.unregisterMatching((entry) => entry.owner === owner, owner);
|
|
317
249
|
}
|
|
318
250
|
unregisterMatching(matches, owner) {
|
|
319
|
-
for (const [id, entry] of this.
|
|
251
|
+
for (const [id, entry] of this.registered) {
|
|
320
252
|
if (!matches(entry)) {
|
|
321
253
|
continue;
|
|
322
254
|
}
|
|
@@ -327,32 +259,21 @@ class RegisteringProxy {
|
|
|
327
259
|
reportRuntimeError(error, "unregister", this[PROXY_BRAND].identity, owner, id);
|
|
328
260
|
}
|
|
329
261
|
finally {
|
|
330
|
-
this.
|
|
262
|
+
this.registered.delete(id);
|
|
331
263
|
}
|
|
332
264
|
}
|
|
333
265
|
}
|
|
334
|
-
attachRegister(callback,
|
|
335
|
-
const lease =
|
|
336
|
-
|
|
337
|
-
this.
|
|
338
|
-
|
|
339
|
-
register: this.createAttachment(callback, lease, manualDetach),
|
|
340
|
-
unregister: current?.unregister,
|
|
341
|
-
});
|
|
342
|
-
this.trackAttachment(lease, manualDetach);
|
|
343
|
-
this.replayRegistrations(route.provider, callback);
|
|
266
|
+
attachRegister(callback, options) {
|
|
267
|
+
const lease = createLease(options.owner);
|
|
268
|
+
this.handlers.register = this.createAttachment(callback, lease, options.manualDetach);
|
|
269
|
+
this.trackAttachment(lease, options.manualDetach);
|
|
270
|
+
this.replayRegistrations(callback);
|
|
344
271
|
return lease;
|
|
345
272
|
}
|
|
346
273
|
attachUnregister(callback, options) {
|
|
347
|
-
const
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
this.state.callbacks.set(route.provider, {
|
|
351
|
-
provider: route.provider,
|
|
352
|
-
register: current?.register,
|
|
353
|
-
unregister: this.createAttachment(callback, lease, manualDetach),
|
|
354
|
-
});
|
|
355
|
-
this.trackAttachment(lease, manualDetach);
|
|
274
|
+
const lease = createLease(options.owner);
|
|
275
|
+
this.handlers.unregister = this.createAttachment(callback, lease, options.manualDetach);
|
|
276
|
+
this.trackAttachment(lease, options.manualDetach);
|
|
356
277
|
return lease;
|
|
357
278
|
}
|
|
358
279
|
trackAttachment(lease, manualDetach) {
|
|
@@ -363,20 +284,13 @@ class RegisteringProxy {
|
|
|
363
284
|
});
|
|
364
285
|
}
|
|
365
286
|
}
|
|
366
|
-
createLease(route) {
|
|
367
|
-
return { ...route, generation: internal_1.internal.nextLeaseGeneration++ };
|
|
368
|
-
}
|
|
369
287
|
createAttachment(callback, lease, manualDetach) {
|
|
370
288
|
return { callback, ...lease, manualDetach: Boolean(manualDetach) };
|
|
371
289
|
}
|
|
372
|
-
replayRegistrations(
|
|
373
|
-
for (const [id, entry] of this.
|
|
374
|
-
if (entry.provider && entry.provider !== provider) {
|
|
375
|
-
continue;
|
|
376
|
-
}
|
|
290
|
+
replayRegistrations(callback) {
|
|
291
|
+
for (const [id, entry] of this.registered) {
|
|
377
292
|
try {
|
|
378
293
|
callback(id, ...entry.args);
|
|
379
|
-
entry.provider = provider;
|
|
380
294
|
}
|
|
381
295
|
catch (error) {
|
|
382
296
|
internal_1.internal.replayErrorReporter?.(id, error);
|
|
@@ -386,20 +300,19 @@ class RegisteringProxy {
|
|
|
386
300
|
}
|
|
387
301
|
}
|
|
388
302
|
exports.RegisteringProxy = RegisteringProxy;
|
|
389
|
-
/** Module-aware event handler collection. */
|
|
303
|
+
/** Module-aware event handler collection; each handler runs in its registrant's context. */
|
|
390
304
|
class EventProxy {
|
|
391
305
|
[PROXY_BRAND];
|
|
392
|
-
|
|
306
|
+
registered = [];
|
|
393
307
|
constructor(identity) {
|
|
394
308
|
this[PROXY_BRAND] = createBrand("event", identity);
|
|
395
|
-
this.state = getProxyState(this[PROXY_BRAND], () => ({ registered: [] }));
|
|
396
309
|
internal_1.internal.knownEvents.add(this);
|
|
397
310
|
}
|
|
398
311
|
/** Emits to every handler, reporting failures without aborting later handlers. */
|
|
399
312
|
emit(...args) {
|
|
400
|
-
for (const {
|
|
313
|
+
for (const { handler, module } of this.registered) {
|
|
401
314
|
try {
|
|
402
|
-
|
|
315
|
+
handler(...args);
|
|
403
316
|
}
|
|
404
317
|
catch (error) {
|
|
405
318
|
reportRuntimeError(error, "event-emit", this[PROXY_BRAND].identity, module);
|
|
@@ -408,22 +321,26 @@ class EventProxy {
|
|
|
408
321
|
}
|
|
409
322
|
/** Registers a handler once. */
|
|
410
323
|
register(func) {
|
|
411
|
-
if (this.
|
|
324
|
+
if (this.registered.some((existing) => existing.func === func)) {
|
|
412
325
|
return;
|
|
413
326
|
}
|
|
414
|
-
this.
|
|
327
|
+
this.registered.push({
|
|
328
|
+
...getExecutionOwnership(),
|
|
329
|
+
func,
|
|
330
|
+
handler: (0, caller_binding_1.bindCallerFunction)(func),
|
|
331
|
+
});
|
|
415
332
|
}
|
|
416
333
|
/** Unregisters a handler. */
|
|
417
334
|
unregister(fn) {
|
|
418
|
-
this.
|
|
335
|
+
this.registered = this.registered.filter(({ func }) => func !== fn);
|
|
419
336
|
}
|
|
420
337
|
/** Unregisters handlers owned by a destroyed module. */
|
|
421
338
|
unregisterModule(module) {
|
|
422
|
-
this.
|
|
339
|
+
this.registered = this.registered.filter((entry) => entry.module !== module);
|
|
423
340
|
}
|
|
424
341
|
/** Unregisters handlers owned by a destroyed module generation. */
|
|
425
342
|
unregisterOwner(owner) {
|
|
426
|
-
this.
|
|
343
|
+
this.registered = this.registered.filter((entry) => entry.owner !== owner);
|
|
427
344
|
}
|
|
428
345
|
}
|
|
429
346
|
exports.EventProxy = EventProxy;
|
package/dist/proxies.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"proxies.js","sourceRoot":"","sources":["../src/proxies.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"proxies.js","sourceRoot":"","sources":["../src/proxies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chai_1 = require("chai");
|
|
4
|
+
const modules_1 = require("../modules");
|
|
5
|
+
const __1 = require("..");
|
|
6
|
+
function currentModule() {
|
|
7
|
+
return (0, modules_1.GetModuleContext)()?.module;
|
|
8
|
+
}
|
|
9
|
+
describe("caller functions keep their caller's context", () => {
|
|
10
|
+
it("runs an event handler in the context of the module that registered it", () => {
|
|
11
|
+
const event = new __1.EventProxy();
|
|
12
|
+
const seen = [];
|
|
13
|
+
(0, modules_1.RunWithModuleContext)({ module: "consumer" }, () => {
|
|
14
|
+
event.register(() => seen.push(currentModule()));
|
|
15
|
+
});
|
|
16
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider" }, () => event.emit());
|
|
17
|
+
(0, chai_1.expect)(seen).to.deep.equal(["consumer"]);
|
|
18
|
+
});
|
|
19
|
+
it("unregisters an event handler by the function that was registered", () => {
|
|
20
|
+
const event = new __1.EventProxy();
|
|
21
|
+
let calls = 0;
|
|
22
|
+
const handler = () => {
|
|
23
|
+
calls += 1;
|
|
24
|
+
};
|
|
25
|
+
(0, modules_1.RunWithModuleContext)({ module: "consumer" }, () => {
|
|
26
|
+
event.register(handler);
|
|
27
|
+
event.unregister(handler);
|
|
28
|
+
});
|
|
29
|
+
event.emit();
|
|
30
|
+
(0, chai_1.expect)(calls).to.equal(0);
|
|
31
|
+
});
|
|
32
|
+
it("runs a function passed to an interface call in the caller's context", async () => {
|
|
33
|
+
const proxy = new __1.AsyncProxy();
|
|
34
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider" }, () => {
|
|
35
|
+
proxy.onCall((callback) => callback());
|
|
36
|
+
});
|
|
37
|
+
const result = await (0, modules_1.RunWithModuleContext)({ module: "consumer" }, () => proxy.call(currentModule));
|
|
38
|
+
(0, chai_1.expect)(result).to.equal("consumer");
|
|
39
|
+
});
|
|
40
|
+
it("runs a function held in a plain object passed to register in the registrant's context", () => {
|
|
41
|
+
const proxy = new __1.RegisteringProxy();
|
|
42
|
+
const seen = [];
|
|
43
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider" }, () => {
|
|
44
|
+
proxy.onHandlers((_id, options) => seen.push(options.handler()), () => undefined);
|
|
45
|
+
});
|
|
46
|
+
(0, modules_1.RunWithModuleContext)({ module: "consumer" }, () => {
|
|
47
|
+
proxy.register("route", { handler: currentModule });
|
|
48
|
+
});
|
|
49
|
+
(0, chai_1.expect)(seen).to.deep.equal(["consumer"]);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
describe("values crossing a proxy call", () => {
|
|
53
|
+
it("passes plain data, cyclic data and class instances through unchanged", async () => {
|
|
54
|
+
class Instance {
|
|
55
|
+
callback = currentModule;
|
|
56
|
+
}
|
|
57
|
+
const cyclic = { value: 1 };
|
|
58
|
+
cyclic.self = cyclic;
|
|
59
|
+
const data = { list: [1, 2], nested: { value: "x" } };
|
|
60
|
+
const instance = new Instance();
|
|
61
|
+
const received = [];
|
|
62
|
+
const proxy = new __1.AsyncProxy();
|
|
63
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider" }, () => {
|
|
64
|
+
proxy.onCall((...values) => {
|
|
65
|
+
received.push(...values);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
await (0, modules_1.RunWithModuleContext)({ module: "consumer" }, () => proxy.call(data, cyclic, instance));
|
|
69
|
+
(0, chai_1.expect)(received[0]).to.equal(data);
|
|
70
|
+
(0, chai_1.expect)(received[1]).to.equal(cyclic);
|
|
71
|
+
(0, chai_1.expect)(received[2]).to.equal(instance);
|
|
72
|
+
});
|
|
73
|
+
it("hands the provider one binding for a function passed twice, so later calls can pair it", () => {
|
|
74
|
+
const proxy = new __1.RegisteringProxy();
|
|
75
|
+
const received = [];
|
|
76
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider" }, () => {
|
|
77
|
+
proxy.onHandlers((_id, callback) => received.push(callback), () => undefined);
|
|
78
|
+
});
|
|
79
|
+
(0, modules_1.RunWithModuleContext)({ module: "consumer" }, () => {
|
|
80
|
+
proxy.register("first", currentModule);
|
|
81
|
+
proxy.register("second", currentModule);
|
|
82
|
+
});
|
|
83
|
+
(0, chai_1.expect)(received[0]).to.equal(received[1]);
|
|
84
|
+
});
|
|
85
|
+
it("keeps a function's first caller context when another module passes it on", async () => {
|
|
86
|
+
const outer = new __1.AsyncProxy();
|
|
87
|
+
const inner = new __1.AsyncProxy();
|
|
88
|
+
(0, modules_1.RunWithModuleContext)({ module: "inner-provider" }, () => {
|
|
89
|
+
inner.onCall((callback) => callback());
|
|
90
|
+
});
|
|
91
|
+
(0, modules_1.RunWithModuleContext)({ module: "outer-provider" }, () => {
|
|
92
|
+
outer.onCall((callback) => inner.call(callback));
|
|
93
|
+
});
|
|
94
|
+
const result = await (0, modules_1.RunWithModuleContext)({ module: "consumer" }, () => outer.call(currentModule));
|
|
95
|
+
(0, chai_1.expect)(result).to.equal("consumer");
|
|
96
|
+
});
|
|
97
|
+
it("refuses to run a caller function once its module generation is destroyed", async () => {
|
|
98
|
+
const proxy = new __1.AsyncProxy();
|
|
99
|
+
let kept;
|
|
100
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider" }, () => {
|
|
101
|
+
proxy.onCall((callback) => {
|
|
102
|
+
kept = callback;
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
await (0, modules_1.RunWithModuleContext)({ module: "consumer", owner: "consumer#1" }, () => proxy.call(currentModule));
|
|
106
|
+
(0, modules_1.RunWithModuleContext)({ module: "consumer", owner: "consumer#1" }, () => {
|
|
107
|
+
modules_1.Events.ModuleDestroyed.emit("consumer");
|
|
108
|
+
});
|
|
109
|
+
(0, chai_1.expect)(() => kept?.()).to.throw(__1.ModuleContextInvalidatedError);
|
|
110
|
+
});
|
|
111
|
+
});
|
|
112
|
+
describe("calls from a destroyed generation", () => {
|
|
113
|
+
it("reject instead of throwing synchronously", async () => {
|
|
114
|
+
const proxy = new __1.AsyncProxy();
|
|
115
|
+
let thrown;
|
|
116
|
+
let result;
|
|
117
|
+
const fired = new Promise((resolve) => {
|
|
118
|
+
(0, modules_1.RunWithModuleContext)({ module: "late", owner: "late#1" }, () => {
|
|
119
|
+
setTimeout(() => {
|
|
120
|
+
try {
|
|
121
|
+
result = proxy.call(currentModule);
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
thrown = error;
|
|
125
|
+
}
|
|
126
|
+
resolve();
|
|
127
|
+
}, 5);
|
|
128
|
+
});
|
|
129
|
+
});
|
|
130
|
+
(0, modules_1.RunWithModuleContext)({ module: "late", owner: "late#1" }, () => {
|
|
131
|
+
modules_1.Events.ModuleDestroyed.emit("late");
|
|
132
|
+
});
|
|
133
|
+
await fired;
|
|
134
|
+
(0, chai_1.expect)(thrown).to.equal(undefined);
|
|
135
|
+
const error = await result?.then(() => undefined, (reason) => reason);
|
|
136
|
+
(0, chai_1.expect)(error).to.be.instanceOf(__1.ModuleContextInvalidatedError);
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
//# sourceMappingURL=caller-context.test.js.map
|