@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
|
@@ -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":";;AAAA,+BAA8B;AAE9B,0CAAuC;AACvC,wCAA0D;AAC1D,0BAA8D;AAE9D,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,SAAS,CAAC,GAAG,EAAE;QACb,mBAAQ,CAAC,YAAY,GAAG,KAAK,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kEAAkE,EAAE,KAAK,IAAI,EAAE;QAChF,MAAM,KAAK,GAAG,IAAI,cAAU,CAAe,kBAAkB,CAAC,CAAC;QAC/D,IAAI,QAAqD,CAAC;QAC1D,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC7D,GAAG,EAAE;YACH,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC,CACF,CAAC;QACF,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC7D,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAChC,CAAC;QAEF,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC7D,GAAG,EAAE;YACH,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CACF,CAAC;QAEF,IAAA,aAAM,EAAC,mBAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC9D,IAAA,aAAM,EAAC,mBAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7D,IAAA,aAAM,EACJ,MAAM,IAAA,8BAAoB,EACxB;YACE,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,YAAY;SACpB,EACD,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CACnB,CACF,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG,IAAI,oBAAgB,CAChC,wBAAwB,CACzB,CAAC;QACF,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACtE,GAAG,EAAE,CACH,KAAK,CAAC,UAAU,CACd,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,EAC/B,GAAG,EAAE,CAAC,SAAS,CAChB,CACJ,CAAC;QACF,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACtE,GAAG,EAAE,CACH,KAAK,CAAC,UAAU,CACd,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,EAC/B,GAAG,EAAE,CAAC,SAAS,CAChB,CACJ,CAAC;QACF,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACtE,GAAG,EAAE,CAAC,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAC5C,CAAC;QAEF,IAAA,aAAM,EAAC,mBAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3E,IAAA,aAAM,EAAC,mBAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1E,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEvB,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QACpE,MAAM,KAAK,GAAG,IAAI,oBAAgB,CAChC,8BAA8B,CAC/B,CAAC;QACF,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC5D,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CACjE,CAAC;QACF,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC5D,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CACrE,CAAC;QACF,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEvB,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAEnD,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC5D,GAAG,EAAE;YACH,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CACF,CAAC;QACF,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAEzB,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC,CAAC;QAC1E,IAAA,aAAM,EAAC,mBAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjE,IAAA,aAAM,EAAC,mBAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEhE,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC5D,GAAG,EAAE;YACH,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CACF,CAAC;QACF,mBAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;QAE7B,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACpD,IAAA,aAAM,EAAC,mBAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,KAAK,GAAG,IAAI,oBAAgB,CAChC,sCAAsC,CACvC,CAAC;QACF,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC9D,GAAG,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CACrE,CAAC;QACF,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC9D,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CACjE,CAAC;QACF,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzB,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC3B,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAE3B,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;YAC1B,qBAAqB;YACrB,uBAAuB;YACvB,uBAAuB;SACxB,CAAC,CAAC;QAEH,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC9D,GAAG,EAAE;YACH,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CACF,CAAC;QACF,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC7B,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAE9B,IAAA,aAAM,EAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC1D,IAAA,aAAM,EAAC,mBAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACnE,IAAA,aAAM,EAAC,mBAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAElE,IAAA,8BAAoB,EAClB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAC9D,GAAG,EAAE;YACH,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxC,CAAC,CACF,CAAC;QACF,mBAAQ,CAAC,YAAY,GAAG,IAAI,CAAC;QAE7B,IAAA,aAAM,EAAC,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QACpD,IAAA,aAAM,EAAC,mBAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACvE,MAAM,aAAa,GAAG,IAAI,oBAAgB,CACxC,iCAAiC,CAClC,CAAC;QACF,MAAM,KAAK,GAAG,IAAI,cAAU,CAAa,2BAA2B,CAAC,CAAC;QACtE,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,aAAa,CAAC,UAAU,CACtB,GAAG,EAAE,CAAC,SAAS,EACf,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,EAClC,IAAI,CACL,CAAC;QACF,IAAA,8BAAoB,EAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE;YACvE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9B,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,IAAA,8BAAoB,EAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE;YACvE,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9B,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QACH,IAAA,8BAAoB,EAAC,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,GAAG,EAAE;YACvE,gBAAM,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC;IAC3D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -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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"}
|
|
@@ -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":"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
|
|
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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"}
|
package/docs/2.proxies.md
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
Proxies are the backbone of cross-module communication in AntelopeJS. They provide module-aware abstractions for function calls, event handling, and registration patterns. Each proxy type automatically tracks the module that attaches callbacks and detaches them when that module is unloaded, preventing memory leaks and dangling references.
|
|
6
6
|
|
|
7
|
+
A proxy has a single provider and keeps its state on the proxy object itself. When a project has several providers of one interface, the core evaluates a separate instance of the interface package for each provider, so each instance's proxies reach exactly one provider; no call selects a provider at run time.
|
|
8
|
+
|
|
7
9
|
## `AsyncProxy`
|
|
8
10
|
|
|
9
11
|
`AsyncProxy` wraps asynchronous function calls. It queues invocations when no callback is attached and flushes the queue once a callback becomes available. The queue holds at most 1,000 pending calls: once it is full, further calls reject with `ProviderQueueFullError` until a callback attaches.
|
|
@@ -29,9 +31,9 @@ const greeting = await proxy.call("Bob"); // "Hello, Bob!"
|
|
|
29
31
|
|
|
30
32
|
### `onCall(callback, manualDetach?)`
|
|
31
33
|
|
|
32
|
-
Attaches
|
|
34
|
+
Attaches the provider's callback to the proxy, replacing any callback attached before, so a provider's new generation takes over from the old one. The proxy automatically tracks the calling module and detaches the callback when that module is unloaded; releasing an older generation never detaches a newer one. Pass `manualDetach: true` to disable automatic cleanup.
|
|
33
35
|
|
|
34
|
-
When attachment occurs inside `RunWithModuleContext`, calls execute in the captured provider context rather than the consumer context. The captured module
|
|
36
|
+
When attachment occurs inside `RunWithModuleContext`, calls execute in the captured provider context rather than the consumer context. The captured module and owner generation remain available across nested calls and `await`. Calls reject with `ModuleContextInvalidatedError` if the captured owner has been destroyed.
|
|
35
37
|
|
|
36
38
|
```ts
|
|
37
39
|
// Automatic cleanup (default) - detaches when the module unloads
|
|
@@ -88,7 +90,7 @@ onUserCreated.emit("u-1", "Alice");
|
|
|
88
90
|
|
|
89
91
|
### `register(func)`
|
|
90
92
|
|
|
91
|
-
Registers a handler for the event. Duplicate handlers (same function reference) are ignored. The proxy tracks the calling module and removes the handler when that module is unloaded.
|
|
93
|
+
Registers a handler for the event. Duplicate handlers (same function reference) are ignored. The proxy tracks the calling module and removes the handler when that module is unloaded. The handler runs in the context of the module that registered it, whichever module emits the event.
|
|
92
94
|
|
|
93
95
|
### `emit(...args)`
|
|
94
96
|
|
|
@@ -152,6 +154,15 @@ Removes the entry with the given identifier and calls the unregister callback if
|
|
|
152
154
|
|
|
153
155
|
Manually removes both the register and unregister callbacks. Registered entries remain stored.
|
|
154
156
|
|
|
157
|
+
## Functions passed through a proxy
|
|
158
|
+
|
|
159
|
+
A function a module hands to a proxy runs as that module's work, whoever invokes it later:
|
|
160
|
+
|
|
161
|
+
- an event handler runs in the context of the module that registered it;
|
|
162
|
+
- a function passed as an argument to `AsyncProxy.call` or `RegisteringProxy.register`, or held in a plain object or array passed that way, runs in the context of the module that made the call.
|
|
163
|
+
|
|
164
|
+
Inside such a function, `GetModuleContext` and `GetResponsibleModule` report the module that passed it, and what it registers is owned by that module. Once that module's generation is destroyed, invoking the function throws `ModuleContextInvalidatedError`. Plain data, class instances and proxies cross unchanged; a function passed twice reaches the provider as the same value, and a function passed on by another module keeps its original context.
|
|
165
|
+
|
|
155
166
|
## `ImplementInterface`
|
|
156
167
|
|
|
157
168
|
`ImplementInterface` connects an interface declaration to its implementation. It iterates over the declaration object and wires up each proxy to the corresponding implementation function.
|
|
@@ -228,17 +239,19 @@ const connections = GetInterfaceInstances("database");
|
|
|
228
239
|
const primary = GetInterfaceInstance("database", "primary");
|
|
229
240
|
```
|
|
230
241
|
|
|
231
|
-
Each `InterfaceConnection` includes the provider module ID and whether
|
|
242
|
+
Each `InterfaceConnection` includes the path to `require()` for the interface instance bound to that connection, the provider module ID (absent for a connection to a self-hosted interface), and whether it is the connection a plain import reaches:
|
|
232
243
|
|
|
233
244
|
```ts
|
|
234
245
|
interface InterfaceConnection {
|
|
235
246
|
id?: string;
|
|
236
247
|
path: string;
|
|
237
|
-
provider
|
|
248
|
+
provider?: string;
|
|
238
249
|
selected: boolean;
|
|
239
250
|
}
|
|
240
251
|
```
|
|
241
252
|
|
|
253
|
+
Requiring a connection's `path` (or a subpath of it) gives the interface bound to that connection's provider, and the objects built from it stay bound to that provider wherever they are used.
|
|
254
|
+
|
|
242
255
|
## `GetResponsibleModule`
|
|
243
256
|
|
|
244
257
|
`GetResponsibleModule` inspects the call stack to determine which module is responsible for the current execution. The proxy classes use this internally for automatic cleanup tracking.
|
package/docs/5.modules.md
CHANGED
|
@@ -37,7 +37,7 @@ loaded -> constructed -> active -> constructed -> loaded
|
|
|
37
37
|
|
|
38
38
|
## Module execution context
|
|
39
39
|
|
|
40
|
-
`RunWithModuleContext` propagates module ownership
|
|
40
|
+
`RunWithModuleContext` propagates module ownership through synchronous and asynchronous work:
|
|
41
41
|
|
|
42
42
|
```ts
|
|
43
43
|
import { RunWithModuleContext } from "@antelopejs/interface-core/modules";
|
|
@@ -46,8 +46,6 @@ await RunWithModuleContext(
|
|
|
46
46
|
{
|
|
47
47
|
module: "search-provider",
|
|
48
48
|
owner: "search-provider#42",
|
|
49
|
-
provider: "search-provider",
|
|
50
|
-
providerRoutes: routes,
|
|
51
49
|
},
|
|
52
50
|
() => constructModule(),
|
|
53
51
|
);
|
package/docs/7.configuration.md
CHANGED
|
@@ -154,13 +154,16 @@ Like the local source, `local-folder` also accepts an optional `reloadCommand` t
|
|
|
154
154
|
|
|
155
155
|
Full module configuration within the project config.
|
|
156
156
|
|
|
157
|
-
| Property | Type | Description
|
|
158
|
-
| ----------------- | -------------------------------------------- |
|
|
159
|
-
| `version` | `string` | Optional version constraint
|
|
160
|
-
| `source` | `ModuleSource*` | Source definition (local, git, package, local-folder)
|
|
161
|
-
| `config` | `unknown` | Optional runtime configuration
|
|
162
|
-
| `importOverrides` | `ImportOverride[] \| Record<string, string>` | Optional
|
|
163
|
-
| `disabledExports` | `string[]` | Optional list of exports to disable
|
|
157
|
+
| Property | Type | Description |
|
|
158
|
+
| ----------------- | -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ |
|
|
159
|
+
| `version` | `string` | Optional version constraint |
|
|
160
|
+
| `source` | `ModuleSource*` | Source definition (local, git, package, local-folder) |
|
|
161
|
+
| `config` | `unknown` | Optional runtime configuration |
|
|
162
|
+
| `importOverrides` | `ImportOverride[] \| Record<string, string>` | Optional providers pinned for the interfaces the module uses, and named connections |
|
|
163
|
+
| `disabledExports` | `string[]` | Optional list of exports to disable |
|
|
164
|
+
| `exportPriority` | `Record<string, number>` | Optional priority of this module as the default provider of each interface it implements (default 0; highest wins) |
|
|
165
|
+
|
|
166
|
+
An `ImportOverride` is `{ interface, source?, id? }`. The first entry for an interface pins it to the `source` module; further entries are connections reached through `GetInterfaceInstance(interface, id)`. An entry for a standalone interface may omit `source`, declaring a connection to that self-hosted interface.
|
|
164
167
|
|
|
165
168
|
## `AntelopeLogging`
|
|
166
169
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@antelopejs/interface-core",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "AntelopeJS core interface primitives - proxies, decorators, interface functions, and logging",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"antelopejs",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"reflect-metadata": "^0.2.2"
|
|
91
91
|
},
|
|
92
92
|
"devDependencies": {
|
|
93
|
-
"@antelopejs/tooling-configs": "^0.0.
|
|
93
|
+
"@antelopejs/tooling-configs": "^0.0.6",
|
|
94
94
|
"@types/chai": "^4.3.20",
|
|
95
95
|
"@types/mocha": "^10.0.10",
|
|
96
96
|
"@types/node": "^22.19.15",
|
|
@@ -1,78 +0,0 @@
|
|
|
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("provider routing and leases", () => {
|
|
7
|
-
it("routes providers through async module execution context", async () => {
|
|
8
|
-
const proxy = new __1.AsyncProxy("test.provider-routing");
|
|
9
|
-
(0, modules_1.RunWithModuleContext)({ module: "owner-a", provider: "provider-a" }, () => {
|
|
10
|
-
proxy.onCall(() => "a");
|
|
11
|
-
});
|
|
12
|
-
(0, modules_1.RunWithModuleContext)({ module: "owner-b", provider: "provider-b" }, () => {
|
|
13
|
-
proxy.onCall(() => "b");
|
|
14
|
-
});
|
|
15
|
-
(0, chai_1.expect)(await (0, modules_1.RunWithModuleContext)({ module: "consumer", provider: "provider-a" }, () => proxy.call())).to.equal("a");
|
|
16
|
-
(0, chai_1.expect)(await (0, modules_1.RunWithModuleContext)({ module: "consumer", provider: "provider-b" }, () => proxy.call())).to.equal("b");
|
|
17
|
-
const error = await proxy.call().then(() => undefined, (reason) => reason);
|
|
18
|
-
(0, chai_1.expect)(error).to.be.instanceOf(__1.AmbiguousProviderError);
|
|
19
|
-
});
|
|
20
|
-
it("rejects an explicit route that has no attached provider", async () => {
|
|
21
|
-
const proxy = new __1.AsyncProxy("test.missing-route");
|
|
22
|
-
(0, modules_1.RunWithModuleContext)({ module: "owner", provider: "available" }, () => {
|
|
23
|
-
proxy.onCall(() => "ok");
|
|
24
|
-
});
|
|
25
|
-
const result = (0, modules_1.RunWithModuleContext)({ module: "consumer", provider: "missing" }, () => proxy.call());
|
|
26
|
-
const error = await result.then(() => undefined, (reason) => reason);
|
|
27
|
-
(0, chai_1.expect)(error).to.be.instanceOf(__1.MissingProviderError);
|
|
28
|
-
});
|
|
29
|
-
it("supports per-proxy provider bindings in one module context", async () => {
|
|
30
|
-
const first = new __1.AsyncProxy("test.route-map.first");
|
|
31
|
-
const second = new __1.AsyncProxy("test.route-map.second");
|
|
32
|
-
(0, modules_1.RunWithModuleContext)({ module: "owner-a", provider: "provider-a" }, () => {
|
|
33
|
-
first.onCall(() => "first-a");
|
|
34
|
-
second.onCall(() => "second-a");
|
|
35
|
-
});
|
|
36
|
-
(0, modules_1.RunWithModuleContext)({ module: "owner-b", provider: "provider-b" }, () => {
|
|
37
|
-
first.onCall(() => "first-b");
|
|
38
|
-
second.onCall(() => "second-b");
|
|
39
|
-
});
|
|
40
|
-
const firstIdentity = (0, __1.GetInterfaceProxyIdentity)(first);
|
|
41
|
-
const secondIdentity = (0, __1.GetInterfaceProxyIdentity)(second);
|
|
42
|
-
const values = await (0, modules_1.RunWithModuleContext)({
|
|
43
|
-
module: "consumer",
|
|
44
|
-
providerRoutes: {
|
|
45
|
-
[firstIdentity]: "provider-a",
|
|
46
|
-
[secondIdentity]: "provider-b",
|
|
47
|
-
},
|
|
48
|
-
}, () => Promise.all([first.call(), second.call()]));
|
|
49
|
-
(0, chai_1.expect)(values).to.deep.equal(["first-a", "second-b"]);
|
|
50
|
-
});
|
|
51
|
-
it("routes registrations and unregisters to the bound provider", () => {
|
|
52
|
-
const proxy = new __1.RegisteringProxy("test.registering-routes");
|
|
53
|
-
const calls = [];
|
|
54
|
-
(0, modules_1.RunWithModuleContext)({ module: "owner-a", provider: "provider-a" }, () => {
|
|
55
|
-
proxy.onHandlers((id) => calls.push(`register-a:${id}`), (id) => calls.push(`unregister-a:${id}`));
|
|
56
|
-
});
|
|
57
|
-
(0, modules_1.RunWithModuleContext)({ module: "owner-b", provider: "provider-b" }, () => {
|
|
58
|
-
proxy.onHandlers((id) => calls.push(`register-b:${id}`), (id) => calls.push(`unregister-b:${id}`));
|
|
59
|
-
});
|
|
60
|
-
(0, modules_1.RunWithModuleContext)({ module: "consumer", provider: "provider-b" }, () => {
|
|
61
|
-
proxy.register("item");
|
|
62
|
-
proxy.unregister("item");
|
|
63
|
-
});
|
|
64
|
-
(0, chai_1.expect)(calls).to.deep.equal(["register-b:item", "unregister-b:item"]);
|
|
65
|
-
});
|
|
66
|
-
it("does not let an old owner lease detach a newer provider generation", async () => {
|
|
67
|
-
const proxy = new __1.AsyncProxy("test.provider-lease");
|
|
68
|
-
(0, modules_1.RunWithModuleContext)({ module: "owner-a", provider: "shared" }, () => {
|
|
69
|
-
proxy.onCall(() => "old");
|
|
70
|
-
});
|
|
71
|
-
(0, modules_1.RunWithModuleContext)({ module: "owner-b", provider: "shared" }, () => {
|
|
72
|
-
proxy.onCall(() => "new");
|
|
73
|
-
});
|
|
74
|
-
modules_1.Events.ModuleDestroyed.emit("owner-a");
|
|
75
|
-
(0, chai_1.expect)(await (0, modules_1.RunWithModuleContext)({ module: "consumer", provider: "shared" }, () => proxy.call())).to.equal("new");
|
|
76
|
-
});
|
|
77
|
-
});
|
|
78
|
-
//# sourceMappingURL=provider-routing.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider-routing.test.js","sourceRoot":"","sources":["../../src/tests/provider-routing.test.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|