@antelopejs/interface-core 0.1.0 → 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/errors.d.ts +1 -1
- package/dist/errors.js +1 -1
- package/dist/errors.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 -174
- 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/queue-and-cleanup.test.js +20 -5
- package/dist/tests/queue-and-cleanup.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 +20 -7
- 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
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"caller-context.test.js","sourceRoot":"","sources":["../../src/tests/caller-context.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,6 @@ describe("generation-owned cleanup", () => {
|
|
|
10
10
|
});
|
|
11
11
|
it("keeps a same-module and provider replacement after stale cleanup", async () => {
|
|
12
12
|
const proxy = new __1.AsyncProxy("generation.async");
|
|
13
|
-
const identity = (0, __1.GetInterfaceProxyIdentity)(proxy);
|
|
14
13
|
let oldLease;
|
|
15
14
|
(0, modules_1.RunWithModuleContext)({ module: "shared", owner: "shared#old", provider: "shared" }, () => {
|
|
16
15
|
oldLease = proxy.onCall(() => "old");
|
|
@@ -26,7 +25,6 @@ describe("generation-owned cleanup", () => {
|
|
|
26
25
|
(0, chai_1.expect)(await (0, modules_1.RunWithModuleContext)({
|
|
27
26
|
module: "consumer",
|
|
28
27
|
owner: "consumer#1",
|
|
29
|
-
providerRoutes: { [identity]: "shared" },
|
|
30
28
|
}, () => proxy.call())).to.equal("new");
|
|
31
29
|
});
|
|
32
30
|
it("keeps registering replacements after old automatic cleanup", () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generation-cleanup.test.js","sourceRoot":"","sources":["../../src/tests/generation-cleanup.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,0CAAuC;AACvC,wCAA0D;AAC1D,
|
|
1
|
+
{"version":3,"file":"generation-cleanup.test.js","sourceRoot":"","sources":["../../src/tests/generation-cleanup.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,14 +15,11 @@ describe("provider callback context", () => {
|
|
|
15
15
|
it("restores async provider context across awaits and nested calls", async () => {
|
|
16
16
|
const nested = new __1.AsyncProxy("context.nested");
|
|
17
17
|
const outer = new __1.AsyncProxy("context.outer");
|
|
18
|
-
const nestedIdentity = (0, __1.GetInterfaceProxyIdentity)(nested);
|
|
19
|
-
const outerIdentity = (0, __1.GetInterfaceProxyIdentity)(outer);
|
|
20
18
|
(0, modules_1.RunWithModuleContext)({ module: "nested-owner", owner: "nested#1", provider: "nested" }, () => nested.onCall(() => `${observeContext().owner}:value`));
|
|
21
19
|
(0, modules_1.RunWithModuleContext)({
|
|
22
20
|
module: "provider-owner",
|
|
23
21
|
owner: "provider-owner#1",
|
|
24
22
|
provider: "provider-a",
|
|
25
|
-
providerRoutes: { [nestedIdentity]: "nested" },
|
|
26
23
|
}, () => outer.onCall(async () => {
|
|
27
24
|
const beforeAwait = observeContext();
|
|
28
25
|
await Promise.resolve();
|
|
@@ -33,7 +30,6 @@ describe("provider callback context", () => {
|
|
|
33
30
|
const observations = await (0, modules_1.RunWithModuleContext)({
|
|
34
31
|
module: "consumer",
|
|
35
32
|
owner: "consumer#1",
|
|
36
|
-
providerRoutes: { [outerIdentity]: "provider-a" },
|
|
37
33
|
}, () => outer.call());
|
|
38
34
|
(0, chai_1.expect)(observations).to.deep.equal(Array.from({ length: 3 }, () => ({
|
|
39
35
|
module: "provider-owner",
|
|
@@ -43,7 +39,6 @@ describe("provider callback context", () => {
|
|
|
43
39
|
});
|
|
44
40
|
it("restores registering context for replay, register and unregister", () => {
|
|
45
41
|
const proxy = new __1.RegisteringProxy("context.registering");
|
|
46
|
-
const identity = (0, __1.GetInterfaceProxyIdentity)(proxy);
|
|
47
42
|
const observations = [];
|
|
48
43
|
(0, modules_1.RunWithModuleContext)({ module: "consumer", owner: "consumer#1" }, () => {
|
|
49
44
|
proxy.register("queued");
|
|
@@ -60,7 +55,6 @@ describe("provider callback context", () => {
|
|
|
60
55
|
(0, modules_1.RunWithModuleContext)({
|
|
61
56
|
module: "consumer",
|
|
62
57
|
owner: "consumer#1",
|
|
63
|
-
providerRoutes: { [identity]: "provider" },
|
|
64
58
|
}, () => {
|
|
65
59
|
proxy.register("direct");
|
|
66
60
|
proxy.unregister("queued");
|
|
@@ -89,7 +83,6 @@ describe("provider callback context", () => {
|
|
|
89
83
|
});
|
|
90
84
|
it("rejects callbacks captured from an invalidated owner", async () => {
|
|
91
85
|
const proxy = new __1.AsyncProxy("context.invalidated");
|
|
92
|
-
const identity = (0, __1.GetInterfaceProxyIdentity)(proxy);
|
|
93
86
|
(0, modules_1.RunWithModuleContext)({ module: "provider", owner: "provider-old#1", provider: "provider" }, () => {
|
|
94
87
|
proxy.onCall(() => "stale", true);
|
|
95
88
|
modules_1.Events.ModuleDestroyed.emit("provider");
|
|
@@ -97,7 +90,6 @@ describe("provider callback context", () => {
|
|
|
97
90
|
const error = await (0, modules_1.RunWithModuleContext)({
|
|
98
91
|
module: "consumer",
|
|
99
92
|
owner: "consumer#1",
|
|
100
|
-
providerRoutes: { [identity]: "provider" },
|
|
101
93
|
}, () => proxy.call().then(() => undefined, (reason) => reason));
|
|
102
94
|
(0, chai_1.expect)(error).to.be.instanceOf(__1.ModuleContextInvalidatedError);
|
|
103
95
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider-context.test.js","sourceRoot":"","sources":["../../src/tests/provider-context.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,wCAA4E;AAC5E,
|
|
1
|
+
{"version":3,"file":"provider-context.test.js","sourceRoot":"","sources":["../../src/tests/provider-context.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,11 +24,26 @@ describe("bounded queues and resilient cleanup", () => {
|
|
|
24
24
|
proxy.onCall((value) => value * 2, true);
|
|
25
25
|
(0, chai_1.expect)(await Promise.all([first, second])).to.deep.equal([2, 4]);
|
|
26
26
|
});
|
|
27
|
-
it("
|
|
28
|
-
internal_1.internal.maxPendingOperations =
|
|
29
|
-
const proxy = new __1.RegisteringProxy("test.registration-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
it("keeps registrations beyond the pending limit and replays them on attach", () => {
|
|
28
|
+
internal_1.internal.maxPendingOperations = 2;
|
|
29
|
+
const proxy = new __1.RegisteringProxy("test.registration-unbounded");
|
|
30
|
+
const ids = ["first", "second", "third", "fourth", "fifth"];
|
|
31
|
+
for (const id of ids) {
|
|
32
|
+
(0, chai_1.expect)(() => proxy.register(id)).not.to.throw();
|
|
33
|
+
}
|
|
34
|
+
const replayed = [];
|
|
35
|
+
proxy.onRegister((id) => replayed.push(id), true);
|
|
36
|
+
(0, chai_1.expect)(replayed).to.deep.equal(ids);
|
|
37
|
+
});
|
|
38
|
+
it("keeps more registrations than the default pending limit", () => {
|
|
39
|
+
const proxy = new __1.RegisteringProxy("test.registration-default-limit");
|
|
40
|
+
const count = internal_1.internal.maxPendingOperations + 1;
|
|
41
|
+
for (let id = 0; id < count; id++) {
|
|
42
|
+
proxy.register(id);
|
|
43
|
+
}
|
|
44
|
+
const replayed = [];
|
|
45
|
+
proxy.onRegister((id) => replayed.push(id), true);
|
|
46
|
+
(0, chai_1.expect)(replayed).to.have.length(count);
|
|
32
47
|
});
|
|
33
48
|
it("continues registration cleanup after an unregister callback throws", () => {
|
|
34
49
|
const proxy = new __1.RegisteringProxy("test.cleanup-errors");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue-and-cleanup.test.js","sourceRoot":"","sources":["../../src/tests/queue-and-cleanup.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,wCAA0D;AAC1D,0CAAiE;AACjE,0BAKY;AAEZ,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,MAAM,kBAAkB,GAAG,mBAAQ,CAAC,oBAAoB,CAAC;IACzD,IAAI,gBAAsD,CAAC;IAE3D,UAAU,CAAC,GAAG,EAAE;QACd,gBAAgB,GAAG,mBAAQ,CAAC,oBAAoB,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,mBAAQ,CAAC,oBAAoB,GAAG,kBAAkB,CAAC;QACnD,mBAAQ,CAAC,oBAAoB,GAAG,gBAAgB,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QAC3F,mBAAQ,CAAC,oBAAoB,GAAG,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,cAAU,CAA4B,iBAAiB,CAAC,CAAC;QAC3E,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7B,MAAM,KAAK,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CACpC,GAAG,EAAE,CAAC,SAAS,EACf,CAAC,MAAe,EAAE,EAAE,CAAC,MAAM,CAC5B,CAAC;QACF,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,0BAAsB,CAAC,CAAC;QACvD,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,CAAC;QAEzC,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"queue-and-cleanup.test.js","sourceRoot":"","sources":["../../src/tests/queue-and-cleanup.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
describe("ReleaseOwner", () => {
|
|
7
|
+
it("releases what an owner attached and registered, as a module destruction does", async () => {
|
|
8
|
+
const proxy = new __1.AsyncProxy();
|
|
9
|
+
const registry = new __1.RegisteringProxy();
|
|
10
|
+
const event = new __1.EventProxy();
|
|
11
|
+
const unregistered = [];
|
|
12
|
+
let handled = 0;
|
|
13
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider" }, () => {
|
|
14
|
+
registry.onHandlers(() => undefined, (id) => unregistered.push(id));
|
|
15
|
+
});
|
|
16
|
+
(0, modules_1.RunWithModuleContext)({ module: "instance", owner: "instance#instance" }, () => {
|
|
17
|
+
proxy.onCall(() => "served");
|
|
18
|
+
registry.register("entry");
|
|
19
|
+
event.register(() => {
|
|
20
|
+
handled += 1;
|
|
21
|
+
});
|
|
22
|
+
});
|
|
23
|
+
(0, modules_1.ReleaseOwner)("instance#instance");
|
|
24
|
+
event.emit();
|
|
25
|
+
const pending = await Promise.race([
|
|
26
|
+
proxy.call(),
|
|
27
|
+
new Promise((resolve) => setTimeout(() => resolve("unattached"), 20)),
|
|
28
|
+
]);
|
|
29
|
+
(0, chai_1.expect)(pending).to.equal("unattached");
|
|
30
|
+
(0, chai_1.expect)(unregistered).to.deep.equal(["entry"]);
|
|
31
|
+
(0, chai_1.expect)(handled).to.equal(0);
|
|
32
|
+
});
|
|
33
|
+
});
|
|
34
|
+
//# sourceMappingURL=release-owner.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"release-owner.test.js","sourceRoot":"","sources":["../../src/tests/release-owner.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,wCAAgE;AAChE,0BAA8D;AAE9D,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;IAC5B,EAAE,CAAC,8EAA8E,EAAE,KAAK,IAAI,EAAE;QAC5F,MAAM,KAAK,GAAG,IAAI,cAAU,EAAgB,CAAC;QAC7C,MAAM,QAAQ,GAAG,IAAI,oBAAgB,EAAwB,CAAC;QAC9D,MAAM,KAAK,GAAG,IAAI,cAAU,EAAc,CAAC;QAC3C,MAAM,YAAY,GAAa,EAAE,CAAC;QAClC,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,IAAA,8BAAoB,EAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE;YAChD,QAAQ,CAAC,UAAU,CACjB,GAAG,EAAE,CAAC,SAAS,EACf,CAAC,EAAE,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAC9B,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,mBAAmB,EAAE,EAClD,GAAG,EAAE;YACH,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC7B,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3B,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE;gBAClB,OAAO,IAAI,CAAC,CAAC;YACf,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QAEF,IAAA,sBAAY,EAAC,mBAAmB,CAAC,CAAC;QAElC,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YACjC,KAAK,CAAC,IAAI,EAAE;YACZ,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;SACtE,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACvC,IAAA,aAAM,EAAC,YAAY,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QAC9C,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -69,12 +69,12 @@ describe("findResponsibleFile", () => {
|
|
|
69
69
|
{ id: "local", dir: "/home/user/app" },
|
|
70
70
|
{
|
|
71
71
|
id: "dms",
|
|
72
|
-
dir: "/home/user/app/.antelope/cache/@antelopejs
|
|
72
|
+
dir: "/home/user/app/.antelope/cache/@antelopejs/dms",
|
|
73
73
|
isImplementor: true,
|
|
74
74
|
},
|
|
75
75
|
];
|
|
76
76
|
const trace = [
|
|
77
|
-
frame("/home/user/app/.antelope/cache/@antelopejs
|
|
77
|
+
frame("/home/user/app/.antelope/cache/@antelopejs/dms/dist/interfaces/dms/page.js"),
|
|
78
78
|
frame("/home/user/app/dist/pages/skins.js"),
|
|
79
79
|
];
|
|
80
80
|
(0, chai_1.expect)((0, responsible_module_1.findResponsibleFile)(trace, entries).module).to.equal("local");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responsible-module.test.js","sourceRoot":"","sources":["../../src/tests/responsible-module.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAE9B,8DAG+B;AAI/B,SAAS,KAAK,CACZ,QAAuB,EACvB,OAAmE,EAAE;IAErE,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ;QAC3B,eAAe,EAAE,GAAG,EAAE,CACpB,cAAc,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QAC7D,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI;KAClB,CAAC;AAC3B,CAAC;AAED,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,OAAO,GAAwB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG;YACZ,KAAK,CAAC,8DAA8D,CAAC;YACrE,KAAK,CAAC,0BAA0B,CAAC;SAClC,CAAC;QAEF,IAAA,aAAM,EAAC,IAAA,wCAAmB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,OAAO,GAAwB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG;YACZ,KAAK,CAAC,sBAAsB,CAAC;YAC7B,KAAK,CAAC,mCAAmC,CAAC;YAC1C,KAAK,CAAC,oBAAoB,CAAC;SAC5B,CAAC;QAEF,IAAA,aAAM,EAAC,IAAA,wCAAmB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,GAAG,EAAE;QAC1F,MAAM,OAAO,GAAwB;YACnC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE;YACvD,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,yBAAyB,EAAE;SACrD,CAAC;QACF,MAAM,KAAK,GAAG;YACZ,KAAK,CAAC,0CAA0C,CAAC;YACjD,KAAK,CAAC,0CAA0C,CAAC;YACjD,KAAK,CAAC,wDAAwD,CAAC;SAChE,CAAC;QAEF,IAAA,aAAM,EAAC,IAAA,wCAAmB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAClF,MAAM,OAAO,GAAwB;YACnC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE;SACxD,CAAC;QACF,MAAM,KAAK,GAAG;YACZ,KAAK,CAAC,0CAA0C,CAAC;YACjD,KAAK,CAAC,gDAAgD,CAAC;SACxD,CAAC;QAEF,IAAA,aAAM,EAAC,IAAA,wCAAmB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,OAAO,GAAwB,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACpE,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAE1E,IAAA,aAAM,EAAC,IAAA,wCAAmB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,OAAO,GAAwB;YACnC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,aAAa,EAAE,IAAI,EAAE;YACvD,EAAE,EAAE,EAAE,YAAY,EAAE,GAAG,EAAE,yBAAyB,EAAE;SACrD,CAAC;QACF,MAAM,KAAK,GAAG;YACZ,KAAK,CAAC,wDAAwD,CAAC;SAChE,CAAC;QAEF,IAAA,aAAM,EAAC,IAAA,wCAAmB,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QACjF,MAAM,OAAO,GAAwB;YACnC,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,EAAE;YACtC;gBACE,EAAE,EAAE,KAAK;gBACT,GAAG,EAAE,
|
|
1
|
+
{"version":3,"file":"responsible-module.test.js","sourceRoot":"","sources":["../../src/tests/responsible-module.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,24 +14,21 @@ describe("global runtime protocol", () => {
|
|
|
14
14
|
copyPath = undefined;
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
|
-
it("
|
|
17
|
+
it("keeps each physical copy's proxies apart, while sharing module ownership", async () => {
|
|
18
18
|
const temporary = (0, node_fs_1.mkdtempSync)((0, node_path_1.join)(process.cwd(), ".interface-core-copy-"));
|
|
19
19
|
copyPath = (0, node_path_1.join)(temporary, "dist");
|
|
20
20
|
(0, node_fs_1.cpSync)((0, node_path_1.join)(__dirname, ".."), copyPath, { recursive: true });
|
|
21
21
|
const foreign = require((0, node_path_1.join)(copyPath, "index.js"));
|
|
22
|
-
const foreignModules = require((0, node_path_1.join)(copyPath, "modules.js"));
|
|
23
22
|
const localProxy = new __1.AsyncProxy("test.cross-copy");
|
|
24
23
|
const foreignProxy = new foreign.AsyncProxy("test.cross-copy");
|
|
25
|
-
(0, chai_1.expect)(foreignProxy).not.to.be.instanceOf(__1.AsyncProxy);
|
|
26
24
|
(0, chai_1.expect)((0, __1.RunWithResponsibleModule)("shared-owner", () => foreign.GetResponsibleModule())).to.equal("shared-owner");
|
|
27
|
-
(0, modules_1.RunWithModuleContext)({ module: "provider"
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}, () => foreignProxy.call())).to.equal("provider#copy");
|
|
25
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider" }, () => foreign.ImplementInterface({ proxy: localProxy }, { proxy: () => "local" }));
|
|
26
|
+
(0, chai_1.expect)(await localProxy.call()).to.equal("local");
|
|
27
|
+
const foreignResult = await Promise.race([
|
|
28
|
+
foreignProxy.call(),
|
|
29
|
+
new Promise((resolve) => setTimeout(() => resolve("unattached"), 20)),
|
|
30
|
+
]);
|
|
31
|
+
(0, chai_1.expect)(foreignResult).to.equal("unattached");
|
|
35
32
|
});
|
|
36
33
|
it("fails clearly when a realm already contains an incompatible protocol", () => {
|
|
37
34
|
const internalPath = (0, node_path_1.join)(__dirname, "..", "internal.js");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-protocol.test.js","sourceRoot":"","sources":["../../src/tests/runtime-protocol.test.ts"],"names":[],"mappings":";;AAAA,+BAA8B;AAC9B,yCAA0C;AAC1C,2DAA+C;AAC/C,qCAAsD;AAEtD,wCAAkD;AAClD,0BAA0D;
|
|
1
|
+
{"version":3,"file":"runtime-protocol.test.js","sourceRoot":"","sources":["../../src/tests/runtime-protocol.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,55 @@
|
|
|
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
|
+
describe("single-provider proxies", () => {
|
|
7
|
+
it("queues calls until its provider attaches, then replays them", async () => {
|
|
8
|
+
const proxy = new __1.AsyncProxy();
|
|
9
|
+
const pending = proxy.call("queued");
|
|
10
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider" }, () => {
|
|
11
|
+
proxy.onCall((value) => `served ${value}`);
|
|
12
|
+
});
|
|
13
|
+
(0, chai_1.expect)(await pending).to.equal("served queued");
|
|
14
|
+
});
|
|
15
|
+
it("keeps its state on the proxy, apart from another proxy declared with the same identity", async () => {
|
|
16
|
+
const first = new __1.AsyncProxy("test.same-identity");
|
|
17
|
+
const second = new __1.AsyncProxy("test.same-identity");
|
|
18
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider-a" }, () => {
|
|
19
|
+
first.onCall(() => "a");
|
|
20
|
+
});
|
|
21
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider-b" }, () => {
|
|
22
|
+
second.onCall(() => "b");
|
|
23
|
+
});
|
|
24
|
+
(0, chai_1.expect)(await Promise.all([first.call(), second.call()])).to.deep.equal([
|
|
25
|
+
"a",
|
|
26
|
+
"b",
|
|
27
|
+
]);
|
|
28
|
+
});
|
|
29
|
+
it("serves calls from the provider's newest generation once the old one is destroyed", async () => {
|
|
30
|
+
const proxy = new __1.AsyncProxy();
|
|
31
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider", owner: "provider#1" }, () => {
|
|
32
|
+
proxy.onCall(() => "old");
|
|
33
|
+
});
|
|
34
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider", owner: "provider#2" }, () => {
|
|
35
|
+
proxy.onCall(() => "new");
|
|
36
|
+
});
|
|
37
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider", owner: "provider#1" }, () => {
|
|
38
|
+
modules_1.Events.ModuleDestroyed.emit("provider");
|
|
39
|
+
});
|
|
40
|
+
(0, chai_1.expect)(await (0, modules_1.RunWithModuleContext)({ module: "consumer" }, () => proxy.call())).to.equal("new");
|
|
41
|
+
});
|
|
42
|
+
it("registers and unregisters through its provider's handlers", () => {
|
|
43
|
+
const proxy = new __1.RegisteringProxy();
|
|
44
|
+
const calls = [];
|
|
45
|
+
(0, modules_1.RunWithModuleContext)({ module: "provider" }, () => {
|
|
46
|
+
proxy.onHandlers((id) => calls.push(`register:${id}`), (id) => calls.push(`unregister:${id}`));
|
|
47
|
+
});
|
|
48
|
+
(0, modules_1.RunWithModuleContext)({ module: "consumer" }, () => {
|
|
49
|
+
proxy.register("item");
|
|
50
|
+
proxy.unregister("item");
|
|
51
|
+
});
|
|
52
|
+
(0, chai_1.expect)(calls).to.deep.equal(["register:item", "unregister:item"]);
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
//# sourceMappingURL=single-provider.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-provider.test.js","sourceRoot":"","sources":["../../src/tests/single-provider.test.ts"],"names":[],"mappings":"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"}
|