@codefast/di 0.7.0 → 0.8.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/CHANGELOG.md +33 -0
- package/README.md +1 -1
- package/dist/ambient/active-container.d.ts +4 -0
- package/dist/ambient/active-container.d.ts.map +1 -1
- package/dist/ambient/active-container.js +4 -0
- package/dist/ambient/active-container.js.map +1 -1
- package/dist/container/binding-builders.d.ts.map +1 -1
- package/dist/container/binding-builders.js +4 -5
- package/dist/container/binding-builders.js.map +1 -1
- package/dist/container/container.d.ts +6 -0
- package/dist/container/container.d.ts.map +1 -1
- package/dist/container/container.js +5 -4
- package/dist/container/container.js.map +1 -1
- package/dist/core/binding.d.ts +15 -2
- package/dist/core/binding.d.ts.map +1 -1
- package/dist/core/binding.js +29 -4
- package/dist/core/binding.js.map +1 -1
- package/dist/core/module.d.ts +16 -0
- package/dist/core/module.d.ts.map +1 -1
- package/dist/core/module.js +8 -0
- package/dist/core/module.js.map +1 -1
- package/dist/core/registry.d.ts +2 -3
- package/dist/core/registry.d.ts.map +1 -1
- package/dist/core/registry.js +16 -61
- package/dist/core/registry.js.map +1 -1
- package/dist/core/tag.d.ts +26 -0
- package/dist/core/tag.d.ts.map +1 -1
- package/dist/core/tag.js +54 -11
- package/dist/core/tag.js.map +1 -1
- package/dist/core/token.d.ts +6 -0
- package/dist/core/token.d.ts.map +1 -1
- package/dist/core/token.js +4 -0
- package/dist/core/token.js.map +1 -1
- package/dist/core/types.d.ts +20 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/decorators/inject.d.ts +2 -0
- package/dist/decorators/inject.d.ts.map +1 -1
- package/dist/decorators/inject.js +2 -0
- package/dist/decorators/inject.js.map +1 -1
- package/dist/decorators/injectable.d.ts +6 -0
- package/dist/decorators/injectable.d.ts.map +1 -1
- package/dist/decorators/injectable.js +4 -0
- package/dist/decorators/injectable.js.map +1 -1
- package/dist/decorators/lifecycle-decorators.d.ts +4 -0
- package/dist/decorators/lifecycle-decorators.d.ts.map +1 -1
- package/dist/decorators/lifecycle-decorators.js +4 -0
- package/dist/decorators/lifecycle-decorators.js.map +1 -1
- package/dist/errors/errors.d.ts +34 -0
- package/dist/errors/errors.d.ts.map +1 -1
- package/dist/errors/errors.js +60 -3
- package/dist/errors/errors.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/injection/descriptor.d.ts +12 -0
- package/dist/injection/descriptor.d.ts.map +1 -1
- package/dist/injection/descriptor.js +8 -0
- package/dist/injection/descriptor.js.map +1 -1
- package/dist/injection/resolve-options.d.ts +17 -12
- package/dist/injection/resolve-options.d.ts.map +1 -1
- package/dist/injection/resolve-options.js +69 -15
- package/dist/injection/resolve-options.js.map +1 -1
- package/dist/introspection/dependency-graph.d.ts +6 -0
- package/dist/introspection/dependency-graph.d.ts.map +1 -1
- package/dist/introspection/dependency-graph.js +24 -9
- package/dist/introspection/dependency-graph.js.map +1 -1
- package/dist/introspection/graph-adapters/cytoscape.d.ts +8 -0
- package/dist/introspection/graph-adapters/cytoscape.d.ts.map +1 -1
- package/dist/introspection/graph-adapters/cytoscape.js +2 -0
- package/dist/introspection/graph-adapters/cytoscape.js.map +1 -1
- package/dist/introspection/graph-adapters/dot.d.ts +2 -0
- package/dist/introspection/graph-adapters/dot.d.ts.map +1 -1
- package/dist/introspection/graph-adapters/dot.js +2 -0
- package/dist/introspection/graph-adapters/dot.js.map +1 -1
- package/dist/introspection/graph-adapters/reactflow.d.ts +8 -0
- package/dist/introspection/graph-adapters/reactflow.d.ts.map +1 -1
- package/dist/introspection/graph-adapters/reactflow.js +2 -0
- package/dist/introspection/graph-adapters/reactflow.js.map +1 -1
- package/dist/introspection/inspector.d.ts +6 -0
- package/dist/introspection/inspector.d.ts.map +1 -1
- package/dist/introspection/inspector.js +2 -0
- package/dist/introspection/inspector.js.map +1 -1
- package/dist/lifecycle/lifecycle-manager.d.ts +2 -0
- package/dist/lifecycle/lifecycle-manager.d.ts.map +1 -1
- package/dist/lifecycle/lifecycle-manager.js +2 -0
- package/dist/lifecycle/lifecycle-manager.js.map +1 -1
- package/dist/lifecycle/scope-manager.d.ts +2 -0
- package/dist/lifecycle/scope-manager.d.ts.map +1 -1
- package/dist/lifecycle/scope-manager.js +2 -0
- package/dist/lifecycle/scope-manager.js.map +1 -1
- package/dist/metadata/metadata-keys.d.ts +6 -0
- package/dist/metadata/metadata-keys.d.ts.map +1 -1
- package/dist/metadata/metadata-keys.js +6 -0
- package/dist/metadata/metadata-keys.js.map +1 -1
- package/dist/metadata/metadata-reader-token.d.ts +2 -0
- package/dist/metadata/metadata-reader-token.d.ts.map +1 -1
- package/dist/metadata/metadata-reader-token.js +2 -0
- package/dist/metadata/metadata-reader-token.js.map +1 -1
- package/dist/metadata/metadata-types.d.ts +6 -0
- package/dist/metadata/metadata-types.d.ts.map +1 -1
- package/dist/metadata/symbol-metadata-reader.d.ts +4 -0
- package/dist/metadata/symbol-metadata-reader.d.ts.map +1 -1
- package/dist/metadata/symbol-metadata-reader.js +4 -0
- package/dist/metadata/symbol-metadata-reader.js.map +1 -1
- package/dist/resolution/cache/activation-need.d.ts +2 -0
- package/dist/resolution/cache/activation-need.d.ts.map +1 -1
- package/dist/resolution/cache/activation-need.js +2 -0
- package/dist/resolution/cache/activation-need.js.map +1 -1
- package/dist/resolution/cache/binding-lookup-cache.d.ts +2 -2
- package/dist/resolution/cache/binding-lookup-cache.d.ts.map +1 -1
- package/dist/resolution/cache/binding-lookup-cache.js +2 -37
- package/dist/resolution/cache/binding-lookup-cache.js.map +1 -1
- package/dist/resolution/cache/class-introspector.d.ts +2 -0
- package/dist/resolution/cache/class-introspector.d.ts.map +1 -1
- package/dist/resolution/cache/class-introspector.js +2 -0
- package/dist/resolution/cache/class-introspector.js.map +1 -1
- package/dist/resolution/context.d.ts +6 -0
- package/dist/resolution/context.d.ts.map +1 -1
- package/dist/resolution/context.js +4 -0
- package/dist/resolution/context.js.map +1 -1
- package/dist/resolution/plan/instantiation-plan.d.ts +6 -12
- package/dist/resolution/plan/instantiation-plan.d.ts.map +1 -1
- package/dist/resolution/plan/instantiation-plan.js +11 -27
- package/dist/resolution/plan/instantiation-plan.js.map +1 -1
- package/dist/resolution/resolver.d.ts +14 -5
- package/dist/resolution/resolver.d.ts.map +1 -1
- package/dist/resolution/resolver.js +108 -141
- package/dist/resolution/resolver.js.map +1 -1
- package/dist/resolution/select/binding-select.d.ts +4 -5
- package/dist/resolution/select/binding-select.d.ts.map +1 -1
- package/dist/resolution/select/binding-select.js +18 -20
- package/dist/resolution/select/binding-select.js.map +1 -1
- package/dist/resolution/select/constraints.d.ts +16 -0
- package/dist/resolution/select/constraints.d.ts.map +1 -1
- package/dist/resolution/select/constraints.js +16 -0
- package/dist/resolution/select/constraints.js.map +1 -1
- package/package.json +13 -6
- package/src/ambient/active-container.ts +4 -0
- package/src/container/binding-builders.ts +10 -5
- package/src/container/container.ts +9 -4
- package/src/core/binding.ts +33 -5
- package/src/core/module.ts +16 -0
- package/src/core/registry.ts +16 -66
- package/src/core/tag.ts +71 -17
- package/src/core/token.ts +6 -0
- package/src/core/types.ts +20 -0
- package/src/decorators/inject.ts +2 -0
- package/src/decorators/injectable.ts +8 -0
- package/src/decorators/lifecycle-decorators.ts +4 -0
- package/src/errors/errors.ts +62 -5
- package/src/index.ts +1 -1
- package/src/injection/descriptor.ts +12 -0
- package/src/injection/resolve-options.ts +75 -18
- package/src/introspection/dependency-graph.ts +29 -9
- package/src/introspection/graph-adapters/cytoscape.ts +8 -0
- package/src/introspection/graph-adapters/dot.ts +2 -0
- package/src/introspection/graph-adapters/reactflow.ts +8 -0
- package/src/introspection/inspector.ts +6 -0
- package/src/lifecycle/lifecycle-manager.ts +2 -0
- package/src/lifecycle/scope-manager.ts +2 -0
- package/src/metadata/metadata-keys.ts +6 -0
- package/src/metadata/metadata-reader-token.ts +2 -0
- package/src/metadata/metadata-types.ts +6 -0
- package/src/metadata/symbol-metadata-reader.ts +4 -0
- package/src/resolution/cache/activation-need.ts +2 -0
- package/src/resolution/cache/binding-lookup-cache.ts +2 -40
- package/src/resolution/cache/class-introspector.ts +2 -0
- package/src/resolution/context.ts +6 -0
- package/src/resolution/plan/instantiation-plan.ts +15 -38
- package/src/resolution/resolver.ts +122 -141
- package/src/resolution/select/binding-select.ts +18 -21
- package/src/resolution/select/constraints.ts +16 -0
package/dist/core/module.js
CHANGED
|
@@ -10,6 +10,8 @@ const ASYNC_MODULE_BRAND = Symbol("di:async-module");
|
|
|
10
10
|
export const MODULE_SETUP = Symbol("di:module-setup");
|
|
11
11
|
// ── Static factories ─────────────────────────────────────────────────────────────────────────────────────────────────
|
|
12
12
|
/**
|
|
13
|
+
* The companion factory that creates `SyncModule` values.
|
|
14
|
+
*
|
|
13
15
|
* @since 0.3.16-canary.0
|
|
14
16
|
*/
|
|
15
17
|
export const SyncModule = {
|
|
@@ -22,6 +24,8 @@ export const SyncModule = {
|
|
|
22
24
|
},
|
|
23
25
|
};
|
|
24
26
|
/**
|
|
27
|
+
* The companion factory that creates `AsyncModule` values.
|
|
28
|
+
*
|
|
25
29
|
* @since 0.3.16-canary.0
|
|
26
30
|
*/
|
|
27
31
|
export const AsyncModule = {
|
|
@@ -35,6 +39,8 @@ export const AsyncModule = {
|
|
|
35
39
|
};
|
|
36
40
|
// ── Module — unified API ─────────────────────────────────────────────────────────────────────────────────────────────
|
|
37
41
|
/**
|
|
42
|
+
* The unified module factory — `create` for sync modules, `createAsync` for async ones.
|
|
43
|
+
*
|
|
38
44
|
* @since 0.3.16-canary.0
|
|
39
45
|
*/
|
|
40
46
|
export const Module = {
|
|
@@ -46,6 +52,8 @@ export const Module = {
|
|
|
46
52
|
},
|
|
47
53
|
};
|
|
48
54
|
/**
|
|
55
|
+
* Narrows a module union to `SyncModule` by checking its brand.
|
|
56
|
+
*
|
|
49
57
|
* @since 0.3.16-canary.0
|
|
50
58
|
*/
|
|
51
59
|
export function isSyncModule(module) {
|
package/dist/core/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/core/module.ts"],"names":[],"mappings":"AAIA,wHAAwH;AAExH,MAAM,iBAAiB,GAAkB,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAClE,MAAM,kBAAkB,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/core/module.ts"],"names":[],"mappings":"AAIA,wHAAwH;AAExH,MAAM,iBAAiB,GAAkB,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAClE,MAAM,kBAAkB,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEpE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAkB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AA8CrE,wHAAwH;AAExH;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,MAAM,CAAC,IAAY,EAAE,KAAuC;QAC1D,OAAO;YACL,IAAI;YACJ,CAAC,iBAAiB,CAAC,EAAE,IAAa;YAClC,CAAC,YAAY,CAAC,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM,CAAC,IAAY,EAAE,KAAqD;QACxE,OAAO;YACL,IAAI;YACJ,CAAC,kBAAkB,CAAC,EAAE,IAAa;YACnC,CAAC,YAAY,CAAC,EAAE,KAAK;SACtB,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,wHAAwH;AAExH;;;;GAIG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,MAAM,CAAC,IAAY,EAAE,KAAuC;QAC1D,OAAO,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACxC,CAAC;IACD,WAAW,CAAC,IAAY,EAAE,KAAqD;QAC7E,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACzC,CAAC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,MAAgC;IAC3D,OAAQ,MAA8B,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;AACrE,CAAC"}
|
package/dist/core/registry.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ import type { BindingTag } from "#/core/tag";
|
|
|
3
3
|
import type { Token } from "#/core/token";
|
|
4
4
|
import type { BindingIdentifier, Constructor } from "#/core/types";
|
|
5
5
|
/**
|
|
6
|
+
* One container's binding store, indexed by token, binding id, and slot for fast lookup.
|
|
7
|
+
*
|
|
6
8
|
* @since 0.3.16-canary.0
|
|
7
9
|
*/
|
|
8
10
|
export declare class BindingRegistry {
|
|
@@ -39,7 +41,6 @@ export declare class BindingRegistry {
|
|
|
39
41
|
clear(): ReadonlyArray<Binding>;
|
|
40
42
|
/** Whether a slot-based binding currently occupies `binding`'s slot, so adding it would displace. */
|
|
41
43
|
hasSlotOccupant(binding: Binding): boolean;
|
|
42
|
-
getSimpleNamed(token: Token<unknown> | Constructor, name: string): Binding | undefined;
|
|
43
44
|
/**
|
|
44
45
|
* The binding indexed under one criterion.
|
|
45
46
|
*
|
|
@@ -57,8 +58,6 @@ export declare class BindingRegistry {
|
|
|
57
58
|
getFastDefault(token: Token<unknown> | Constructor): Binding | undefined;
|
|
58
59
|
/** Summarize available slot strings for a token (for error messages). */
|
|
59
60
|
availableSlotStrings(token: Token<unknown> | Constructor): Array<string>;
|
|
60
|
-
/** Whether the deferred named-slot index has had to be built. */
|
|
61
|
-
get isNamedIndexBuilt(): boolean;
|
|
62
61
|
/** Whether the deferred tagged-slot index has had to be built. */
|
|
63
62
|
get isTaggedIndexBuilt(): boolean;
|
|
64
63
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAiB,MAAM,cAAc,CAAC;AAElF
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,WAAW,EAAiB,MAAM,cAAc,CAAC;AAElF;;;;GAIG;AACH,qBAAa,eAAe;;IAoB1B,wDAAwD;IACxD,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,uGAAuG;IACvG,IAAI,sBAAsB,IAAI,OAAO,CAEpC;IAED;;;OAGG;IACH,KAAK,IAAI,IAAI,CAEZ;IAED;;;;;OAKG;IACH,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,SAAS,CAuCzC;IAED,iEAAiE;IACjE,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAYjE;IAED,iFAAiF;IACjF,UAAU,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,GAAG,SAAS,CA0BrD;IAED,oCAAoC;IACpC,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,CAElE;IAED,yBAAyB;IACzB,OAAO,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,GAAG,SAAS,CAElD;IAED,6CAA6C;IAC7C,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,OAAO,CAIhD;IAED,oCAAoC;IACpC,WAAW,IAAI,aAAa,CAAC,OAAO,CAAC,CAMpC;IAED,gDAAgD;IAChD,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,CAS9B;IAED,qGAAqG;IACrG,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAWzC;IAED;;;;;OAKG;IACH,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,EAAE,SAAS,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,CAE/F;IAED;;;;;OAKG;IACH,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,EAAE,SAAS,EAAE,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,SAAS,CAE7G;IAED,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAEvE;IAED,yEAAyE;IACzE,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAGvE;IAkED,kEAAkE;IAClE,IAAI,kBAAkB,IAAI,OAAO,CAEhC;CACF"}
|
package/dist/core/registry.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { bindingSlotEquals, bindingSlotToString } from "#/core/binding";
|
|
2
2
|
import { getOrInsert } from "#/core/map-upsert";
|
|
3
3
|
/**
|
|
4
|
+
* One container's binding store, indexed by token, binding id, and slot for fast lookup.
|
|
5
|
+
*
|
|
4
6
|
* @since 0.3.16-canary.0
|
|
5
7
|
*/
|
|
6
8
|
export class BindingRegistry {
|
|
@@ -10,15 +12,13 @@ export class BindingRegistry {
|
|
|
10
12
|
#bindings = new Map();
|
|
11
13
|
// Fast lookup by binding ID
|
|
12
14
|
#byId = new Map();
|
|
13
|
-
// Fast lookup for slot { name, tags: [] } — unallocated until a named binding is registered.
|
|
14
|
-
#simpleNamed;
|
|
15
15
|
// Fast path for one default slot binding with no predicate
|
|
16
16
|
#fastDefault = new Map();
|
|
17
|
-
// Fast lookup for a slot carrying exactly one
|
|
18
|
-
// the
|
|
17
|
+
// Fast lookup for a slot carrying exactly one criterion (a lone name folds here too) — keyed by
|
|
18
|
+
// the interned criterion itself, so the pair is one hash. Unallocated until such a slot lands.
|
|
19
19
|
#simpleTagged;
|
|
20
|
-
//
|
|
21
|
-
//
|
|
20
|
+
// Slots with two or more criteria, bucketed by their FIRST criterion. A matching slot's every
|
|
21
|
+
// criterion is in the request, so walking the request's buckets finds each candidate exactly once.
|
|
22
22
|
#multiTagged;
|
|
23
23
|
// Set on the first constant registered and never cleared. Teardown only needs the negative answer
|
|
24
24
|
// to be exact, and that is what lets a container holding no constant skip its sweep entirely.
|
|
@@ -65,7 +65,6 @@ export class BindingRegistry {
|
|
|
65
65
|
if (existingIndex !== -1) {
|
|
66
66
|
displacedBinding = bindingsForToken[existingIndex];
|
|
67
67
|
this.#byId.delete(displacedBinding.id);
|
|
68
|
-
this.#deindexSimpleNamedBinding(key, displacedBinding);
|
|
69
68
|
this.#deindexSimpleTaggedBinding(key, displacedBinding);
|
|
70
69
|
this.#deindexMultiTaggedBinding(key, displacedBinding);
|
|
71
70
|
}
|
|
@@ -77,7 +76,6 @@ export class BindingRegistry {
|
|
|
77
76
|
}
|
|
78
77
|
this.#bindings.set(key, nextBindings);
|
|
79
78
|
this.#byId.set(binding.id, binding);
|
|
80
|
-
this.#indexSimpleNamedBinding(key, binding);
|
|
81
79
|
this.#indexSimpleTaggedBinding(key, binding);
|
|
82
80
|
this.#indexMultiTaggedBinding(key, binding);
|
|
83
81
|
this.#refreshFastDefaultForToken(key);
|
|
@@ -89,7 +87,6 @@ export class BindingRegistry {
|
|
|
89
87
|
const key = token;
|
|
90
88
|
const bindingsForToken = this.#bindings.get(key) ?? [];
|
|
91
89
|
this.#bindings.delete(key);
|
|
92
|
-
this.#simpleNamed?.delete(key);
|
|
93
90
|
this.#simpleTagged?.delete(key);
|
|
94
91
|
this.#multiTagged?.delete(key);
|
|
95
92
|
this.#fastDefault.delete(key);
|
|
@@ -112,12 +109,10 @@ export class BindingRegistry {
|
|
|
112
109
|
const bindingIndex = bindingsForToken.findIndex((candidate) => candidate.id === id);
|
|
113
110
|
// Copy-on-write, like `add`: a walk holding the current array must not lose its place.
|
|
114
111
|
const remaining = bindingIndex === -1 ? bindingsForToken : bindingsForToken.toSpliced(bindingIndex, 1);
|
|
115
|
-
this.#deindexSimpleNamedBinding(key, binding);
|
|
116
112
|
this.#deindexSimpleTaggedBinding(key, binding);
|
|
117
113
|
this.#deindexMultiTaggedBinding(key, binding);
|
|
118
114
|
if (remaining.length === 0) {
|
|
119
115
|
this.#bindings.delete(key);
|
|
120
|
-
this.#simpleNamed?.delete(key);
|
|
121
116
|
this.#simpleTagged?.delete(key);
|
|
122
117
|
this.#multiTagged?.delete(key);
|
|
123
118
|
this.#fastDefault.delete(key);
|
|
@@ -157,7 +152,6 @@ export class BindingRegistry {
|
|
|
157
152
|
const all = this.allBindings();
|
|
158
153
|
this.#bindings.clear();
|
|
159
154
|
this.#byId.clear();
|
|
160
|
-
this.#simpleNamed?.clear();
|
|
161
155
|
this.#simpleTagged?.clear();
|
|
162
156
|
this.#multiTagged?.clear();
|
|
163
157
|
this.#fastDefault.clear();
|
|
@@ -174,9 +168,6 @@ export class BindingRegistry {
|
|
|
174
168
|
}
|
|
175
169
|
return candidates.some((candidate) => !isPurePredicateBinding(candidate) && bindingSlotEquals(candidate.slot, binding.slot));
|
|
176
170
|
}
|
|
177
|
-
getSimpleNamed(token, name) {
|
|
178
|
-
return this.#simpleNamed?.get(token)?.get(name);
|
|
179
|
-
}
|
|
180
171
|
/**
|
|
181
172
|
* The binding indexed under one criterion.
|
|
182
173
|
*
|
|
@@ -253,31 +244,6 @@ export class BindingRegistry {
|
|
|
253
244
|
bucket.splice(bindingIndex, 1);
|
|
254
245
|
}
|
|
255
246
|
}
|
|
256
|
-
#indexSimpleNamedBinding(tokenKey, binding) {
|
|
257
|
-
const name = simpleNameOf(binding);
|
|
258
|
-
if (name === undefined) {
|
|
259
|
-
return;
|
|
260
|
-
}
|
|
261
|
-
this.#simpleNamed ??= new Map();
|
|
262
|
-
const bindingsByName = getOrInsert(this.#simpleNamed, tokenKey, new Map());
|
|
263
|
-
bindingsByName.set(name, binding);
|
|
264
|
-
}
|
|
265
|
-
#deindexSimpleNamedBinding(tokenKey, binding) {
|
|
266
|
-
const name = simpleNameOf(binding);
|
|
267
|
-
if (name === undefined) {
|
|
268
|
-
return;
|
|
269
|
-
}
|
|
270
|
-
const bindingsByName = this.#simpleNamed?.get(tokenKey);
|
|
271
|
-
if (bindingsByName === undefined) {
|
|
272
|
-
return;
|
|
273
|
-
}
|
|
274
|
-
if (bindingsByName.get(name)?.id === binding.id) {
|
|
275
|
-
bindingsByName.delete(name);
|
|
276
|
-
if (bindingsByName.size === 0) {
|
|
277
|
-
this.#simpleNamed.delete(tokenKey);
|
|
278
|
-
}
|
|
279
|
-
}
|
|
280
|
-
}
|
|
281
247
|
#refreshFastDefaultForToken(tokenKey) {
|
|
282
248
|
const bindingsForToken = this.#bindings.get(tokenKey);
|
|
283
249
|
const onlyBinding = bindingsForToken?.length === 1 ? bindingsForToken[0] : undefined;
|
|
@@ -287,43 +253,32 @@ export class BindingRegistry {
|
|
|
287
253
|
}
|
|
288
254
|
this.#fastDefault.delete(tokenKey);
|
|
289
255
|
}
|
|
290
|
-
/** Whether the deferred named-slot index has had to be built. */
|
|
291
|
-
get isNamedIndexBuilt() {
|
|
292
|
-
return this.#simpleNamed !== undefined;
|
|
293
|
-
}
|
|
294
256
|
/** Whether the deferred tagged-slot index has had to be built. */
|
|
295
257
|
get isTaggedIndexBuilt() {
|
|
296
258
|
return this.#simpleTagged !== undefined;
|
|
297
259
|
}
|
|
298
260
|
}
|
|
299
|
-
/** The name a binding is indexed under, or `undefined` when its slot is more than a plain name. */
|
|
300
|
-
function simpleNameOf(binding) {
|
|
301
|
-
const { name, tags } = binding.slot;
|
|
302
|
-
return name !== undefined && tags.length === 0 ? name : undefined;
|
|
303
|
-
}
|
|
304
261
|
/**
|
|
305
|
-
* The
|
|
262
|
+
* The criterion a binding is indexed under, or `undefined` when its slot carries more than one.
|
|
306
263
|
*
|
|
307
|
-
* @remarks Carries predicate-bearing bindings too
|
|
308
|
-
*
|
|
264
|
+
* @remarks Carries predicate-bearing bindings too: every lane that reads this index already
|
|
265
|
+
* re-checks what it finds, so an indexed hit was never unconditional.
|
|
309
266
|
*/
|
|
310
267
|
function simpleTagOf(binding) {
|
|
311
|
-
const {
|
|
312
|
-
return
|
|
268
|
+
const { tags } = binding.slot;
|
|
269
|
+
return tags.length === 1 ? tags[0] : undefined;
|
|
313
270
|
}
|
|
314
|
-
/** The first criterion a multi-
|
|
271
|
+
/** The first criterion a multi-criterion slot is bucketed under, or `undefined` for any other shape. */
|
|
315
272
|
function multiTagFirstOf(binding) {
|
|
316
|
-
const {
|
|
317
|
-
return
|
|
273
|
+
const { tags } = binding.slot;
|
|
274
|
+
return tags.length >= 2 ? tags[0] : undefined;
|
|
318
275
|
}
|
|
319
276
|
/** A binding nothing has to be matched against: the default slot, no predicate. */
|
|
320
277
|
function isDefaultSlotBinding(binding) {
|
|
321
|
-
|
|
322
|
-
return name === undefined && tags.length === 0 && binding.predicate === undefined;
|
|
278
|
+
return binding.slot.tags.length === 0 && binding.predicate === undefined;
|
|
323
279
|
}
|
|
324
280
|
/** A predicate with no slot constraint: last-wins does not apply to it. */
|
|
325
281
|
function isPurePredicateBinding(binding) {
|
|
326
|
-
|
|
327
|
-
return binding.predicate !== undefined && name === undefined && tags.length === 0;
|
|
282
|
+
return binding.predicate !== undefined && binding.slot.tags.length === 0;
|
|
328
283
|
}
|
|
329
284
|
//# sourceMappingURL=registry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/core/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/core/tag.d.ts
CHANGED
|
@@ -47,6 +47,14 @@ export interface TagKey<Value = unknown> {
|
|
|
47
47
|
readonly mask: TagKeyMask;
|
|
48
48
|
/** The criterion for one value, interned: the same value always yields the same object. */
|
|
49
49
|
of(value: Value): BindingTag<Value>;
|
|
50
|
+
/**
|
|
51
|
+
* The interned criterion for a value, or `undefined` when none was ever minted.
|
|
52
|
+
*
|
|
53
|
+
* @remarks Reading without minting is what keeps a request-side value from being retained for
|
|
54
|
+
* the process lifetime: a value no binding ever declared has no criterion, so a lookup can
|
|
55
|
+
* answer "no match" without inserting one.
|
|
56
|
+
*/
|
|
57
|
+
peek(value: Value): BindingTag<Value> | undefined;
|
|
50
58
|
}
|
|
51
59
|
/**
|
|
52
60
|
* Declares a tag key, whose `of()` builds the criteria a `whenTagged` and a resolve both take.
|
|
@@ -64,6 +72,24 @@ export interface TagKey<Value = unknown> {
|
|
|
64
72
|
* @since 0.6.0
|
|
65
73
|
*/
|
|
66
74
|
export declare function tag<Value = unknown>(name: string): TagKey<Value>;
|
|
75
|
+
/**
|
|
76
|
+
* The reserved key a slot's name is a criterion of.
|
|
77
|
+
*
|
|
78
|
+
* @remarks `whenNamed(n)` and a request's `name` are sugar for `slotName.of(n)`, so one selection
|
|
79
|
+
* model serves both spellings — a name takes part in key masks, indexes and specificity like any
|
|
80
|
+
* criterion. What reserves the key is its identity; diagnostics render its criteria as `name:<value>`.
|
|
81
|
+
*
|
|
82
|
+
* @since 0.8.0
|
|
83
|
+
*/
|
|
84
|
+
export declare const slotName: TagKey<string>;
|
|
85
|
+
/**
|
|
86
|
+
* The reserved criterion for a name, or `undefined` while no binding has declared it.
|
|
87
|
+
*
|
|
88
|
+
* @remarks Reads without minting, so a request-side name no binding declared is never retained.
|
|
89
|
+
*
|
|
90
|
+
* @since 0.8.0
|
|
91
|
+
*/
|
|
92
|
+
export declare function slotNameCriterionOf(name: string): BindingTag<string> | undefined;
|
|
67
93
|
/**
|
|
68
94
|
* The key set a list of criteria covers.
|
|
69
95
|
*
|
package/dist/core/tag.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/core/tag.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,CAAC,MAAM,aAAa,EAAE,OAAO,MAAM,CAAC;AAC3C,OAAO,CAAC,MAAM,iBAAiB,EAAE,OAAO,MAAM,CAAC;AAU/C;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAQ,UAAU,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,OAAO;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,MAAM,CAAC,KAAK,GAAG,OAAO;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,2FAA2F;IAC3F,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"tag.d.ts","sourceRoot":"","sources":["../../src/core/tag.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAEzF,OAAO,CAAC,MAAM,aAAa,EAAE,OAAO,MAAM,CAAC;AAC3C,OAAO,CAAC,MAAM,iBAAiB,EAAE,OAAO,MAAM,CAAC;AAU/C;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG;IAAE,QAAQ,CAAC,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEvE;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAQ,UAAU,CAAC;AAE3C;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU,CAAC,KAAK,GAAG,OAAO;IACzC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IACtB,+EAA+E;IAC/E,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,MAAM,CAAC,KAAK,GAAG,OAAO;IACrC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,2FAA2F;IAC3F,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACpC;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;CACnD;AAiBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAoDhE;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,MAAM,CAA0B,CAAC;AAO/D;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,SAAS,CAUhF;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC,UAAU,CAAC,GAAG,UAAU,CAQxE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAEpF"}
|
package/dist/core/tag.js
CHANGED
|
@@ -49,6 +49,22 @@ export function tag(name) {
|
|
|
49
49
|
// split and `NaN` hits itself, with no `internKeyFor` detour.
|
|
50
50
|
let lastValue;
|
|
51
51
|
let lastPair;
|
|
52
|
+
// The miss paths live outside `of()`/`peek()` so the hot wrappers stay small enough to inline.
|
|
53
|
+
const internPair = (value) => {
|
|
54
|
+
const cacheKey = internKeyFor(value);
|
|
55
|
+
const existing = interned.get(cacheKey);
|
|
56
|
+
if (existing !== undefined) {
|
|
57
|
+
lastValue = value;
|
|
58
|
+
lastPair = existing;
|
|
59
|
+
return existing;
|
|
60
|
+
}
|
|
61
|
+
const pair = { key, value, mask };
|
|
62
|
+
interned.set(cacheKey, pair);
|
|
63
|
+
lastValue = value;
|
|
64
|
+
lastPair = pair;
|
|
65
|
+
return pair;
|
|
66
|
+
};
|
|
67
|
+
const peekInterned = (value) => interned.get(internKeyFor(value));
|
|
52
68
|
const key = {
|
|
53
69
|
name,
|
|
54
70
|
id,
|
|
@@ -57,22 +73,49 @@ export function tag(name) {
|
|
|
57
73
|
if (lastPair !== undefined && Object.is(value, lastValue)) {
|
|
58
74
|
return lastPair;
|
|
59
75
|
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
lastPair
|
|
65
|
-
return existing;
|
|
76
|
+
return internPair(value);
|
|
77
|
+
},
|
|
78
|
+
peek(value) {
|
|
79
|
+
if (lastPair !== undefined && Object.is(value, lastValue)) {
|
|
80
|
+
return lastPair;
|
|
66
81
|
}
|
|
67
|
-
|
|
68
|
-
interned.set(cacheKey, pair);
|
|
69
|
-
lastValue = value;
|
|
70
|
-
lastPair = pair;
|
|
71
|
-
return pair;
|
|
82
|
+
return peekInterned(value);
|
|
72
83
|
},
|
|
73
84
|
};
|
|
74
85
|
return key;
|
|
75
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* The reserved key a slot's name is a criterion of.
|
|
89
|
+
*
|
|
90
|
+
* @remarks `whenNamed(n)` and a request's `name` are sugar for `slotName.of(n)`, so one selection
|
|
91
|
+
* model serves both spellings — a name takes part in key masks, indexes and specificity like any
|
|
92
|
+
* criterion. What reserves the key is its identity; diagnostics render its criteria as `name:<value>`.
|
|
93
|
+
*
|
|
94
|
+
* @since 0.8.0
|
|
95
|
+
*/
|
|
96
|
+
export const slotName = tag("di:name");
|
|
97
|
+
// One-entry front for the reserved key's read: a name's criterion never changes once minted, so a
|
|
98
|
+
// hit is sound forever, and a miss is never cached so a later `whenNamed` bind is still seen.
|
|
99
|
+
let lastPeekedName;
|
|
100
|
+
let lastPeekedCriterion;
|
|
101
|
+
/**
|
|
102
|
+
* The reserved criterion for a name, or `undefined` while no binding has declared it.
|
|
103
|
+
*
|
|
104
|
+
* @remarks Reads without minting, so a request-side name no binding declared is never retained.
|
|
105
|
+
*
|
|
106
|
+
* @since 0.8.0
|
|
107
|
+
*/
|
|
108
|
+
export function slotNameCriterionOf(name) {
|
|
109
|
+
if (name === lastPeekedName) {
|
|
110
|
+
return lastPeekedCriterion;
|
|
111
|
+
}
|
|
112
|
+
const criterion = slotName.peek(name);
|
|
113
|
+
if (criterion !== undefined) {
|
|
114
|
+
lastPeekedName = name;
|
|
115
|
+
lastPeekedCriterion = criterion;
|
|
116
|
+
}
|
|
117
|
+
return criterion;
|
|
118
|
+
}
|
|
76
119
|
/**
|
|
77
120
|
* The key set a list of criteria covers.
|
|
78
121
|
*
|
package/dist/core/tag.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/core/tag.ts"],"names":[],"mappings":"AAAA,yFAAyF;AAKzF;;;;;GAKG;AACH,MAAM,UAAU,GAAG,EAAE,CAAC;AAatB;;;;GAIG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"tag.js","sourceRoot":"","sources":["../../src/core/tag.ts"],"names":[],"mappings":"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"}
|
package/dist/core/token.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Constructor } from "#/core/constructor-type";
|
|
2
2
|
declare const TOKEN_BRAND: unique symbol;
|
|
3
3
|
/**
|
|
4
|
+
* A branded identifier carrying the value type its bindings resolve to.
|
|
5
|
+
*
|
|
4
6
|
* @since 0.3.16-canary.0
|
|
5
7
|
*/
|
|
6
8
|
export interface Token<out Value> {
|
|
@@ -8,10 +10,14 @@ export interface Token<out Value> {
|
|
|
8
10
|
readonly [TOKEN_BRAND]: Value;
|
|
9
11
|
}
|
|
10
12
|
/**
|
|
13
|
+
* Creates a named `Token` for the given value type.
|
|
14
|
+
*
|
|
11
15
|
* @since 0.3.16-canary.0
|
|
12
16
|
*/
|
|
13
17
|
export declare function token<Value>(name: string): Token<Value>;
|
|
14
18
|
/**
|
|
19
|
+
* Returns the display name of a token or class used as a dependency key.
|
|
20
|
+
*
|
|
15
21
|
* @since 0.3.16-canary.0
|
|
16
22
|
*/
|
|
17
23
|
export declare function tokenName(dependency: Token<unknown> | Constructor): string;
|
package/dist/core/token.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/core/token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AAEzC
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/core/token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,CAAC,MAAM,WAAW,EAAE,OAAO,MAAM,CAAC;AAEzC;;;;GAIG;AACH,MAAM,WAAW,KAAK,CAAC,GAAG,CAAC,KAAK;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,CAAC,WAAW,CAAC,EAAE,KAAK,CAAC;CAC/B;AAED;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,GAAG,MAAM,CAE1E"}
|
package/dist/core/token.js
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
+
* Creates a named `Token` for the given value type.
|
|
3
|
+
*
|
|
2
4
|
* @since 0.3.16-canary.0
|
|
3
5
|
*/
|
|
4
6
|
export function token(name) {
|
|
5
7
|
return { name };
|
|
6
8
|
}
|
|
7
9
|
/**
|
|
10
|
+
* Returns the display name of a token or class used as a dependency key.
|
|
11
|
+
*
|
|
8
12
|
* @since 0.3.16-canary.0
|
|
9
13
|
*/
|
|
10
14
|
export function tokenName(dependency) {
|
package/dist/core/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/core/token.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/core/token.ts"],"names":[],"mappings":"AAcA;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAAQ,IAAY;IACvC,OAAO,EAAE,IAAI,EAAkB,CAAC;AAClC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,UAAwC;IAChE,OAAO,UAAU,CAAC,IAAI,CAAC;AACzB,CAAC"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -10,29 +10,41 @@ export type { BindingTag, TagKey, TagKeyMask } from "#/core/tag";
|
|
|
10
10
|
*/
|
|
11
11
|
export type DependencyKey = Token<unknown> | Constructor;
|
|
12
12
|
/**
|
|
13
|
+
* The lifetime a binding's instances are cached under.
|
|
14
|
+
*
|
|
13
15
|
* @since 0.3.16-canary.0
|
|
14
16
|
*/
|
|
15
17
|
export type BindingScope = "singleton" | "transient" | "scoped";
|
|
16
18
|
declare const BINDING_ID_BRAND: unique symbol;
|
|
17
19
|
/**
|
|
20
|
+
* A branded string that uniquely identifies one binding.
|
|
21
|
+
*
|
|
18
22
|
* @since 0.3.16-canary.0
|
|
19
23
|
*/
|
|
20
24
|
export type BindingIdentifier = string & {
|
|
21
25
|
readonly [BINDING_ID_BRAND]: true;
|
|
22
26
|
};
|
|
23
27
|
/**
|
|
28
|
+
* The strategy a binding produces values with, set by the `to*()` call that created it.
|
|
29
|
+
*
|
|
24
30
|
* @since 0.3.16-canary.0
|
|
25
31
|
*/
|
|
26
32
|
export type BindingKind = "class" | "dynamic" | "dynamic-async" | "resolved" | "resolved-async" | "constant" | "alias";
|
|
27
33
|
/**
|
|
34
|
+
* A hook that runs after an instance is created and returns the instance to hand out.
|
|
35
|
+
*
|
|
28
36
|
* @since 0.3.16-canary.0
|
|
29
37
|
*/
|
|
30
38
|
export type ActivationHandler<Value> = (ctx: ResolutionContext, instance: Value) => Value | Promise<Value>;
|
|
31
39
|
/**
|
|
40
|
+
* A hook that runs when a cached instance is released from its scope.
|
|
41
|
+
*
|
|
32
42
|
* @since 0.3.16-canary.0
|
|
33
43
|
*/
|
|
34
44
|
export type DeactivationHandler<Value> = (instance: Value) => void | Promise<void>;
|
|
35
45
|
/**
|
|
46
|
+
* Slot-selection criteria — a name and tags — that narrow which binding a resolve call matches.
|
|
47
|
+
*
|
|
36
48
|
* @since 0.3.16-canary.0
|
|
37
49
|
*/
|
|
38
50
|
export interface ResolveOptions {
|
|
@@ -47,6 +59,8 @@ export interface ResolveOptions {
|
|
|
47
59
|
tags?: ReadonlyArray<BindingTag> | undefined;
|
|
48
60
|
}
|
|
49
61
|
/**
|
|
62
|
+
* One entry of the resolution stack: the token, scope, binding, and slot being resolved.
|
|
63
|
+
*
|
|
50
64
|
* @since 0.3.16-canary.0
|
|
51
65
|
*/
|
|
52
66
|
export interface ResolutionFrame {
|
|
@@ -61,6 +75,8 @@ export interface ResolutionFrame {
|
|
|
61
75
|
};
|
|
62
76
|
}
|
|
63
77
|
/**
|
|
78
|
+
* The resolution-time view — path, stack, parent, and ancestors — a `BindingConstraint` inspects.
|
|
79
|
+
*
|
|
64
80
|
* @since 0.3.16-canary.0
|
|
65
81
|
*/
|
|
66
82
|
export interface ConstraintContext {
|
|
@@ -78,6 +94,8 @@ export interface ConstraintContext {
|
|
|
78
94
|
*/
|
|
79
95
|
export type BindingConstraint = (ctx: ConstraintContext) => boolean;
|
|
80
96
|
/**
|
|
97
|
+
* The container view a dynamic factory or activation handler resolves further dependencies through.
|
|
98
|
+
*
|
|
81
99
|
* @since 0.3.16-canary.0
|
|
82
100
|
*/
|
|
83
101
|
export interface ResolutionContext {
|
|
@@ -90,6 +108,8 @@ export interface ResolutionContext {
|
|
|
90
108
|
readonly graph: ConstraintContext;
|
|
91
109
|
}
|
|
92
110
|
/**
|
|
111
|
+
* The value type a token or class constructor resolves to.
|
|
112
|
+
*
|
|
93
113
|
* @since 0.3.16-canary.0
|
|
94
114
|
*/
|
|
95
115
|
export type TokenValue<Type> = Type extends Token<infer Value> ? Value : Type extends Constructor<infer Value> ? Value : never;
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAG1C,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEjE;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC;AAIzD
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,8 @@ import type { Constructor } from "#/core/types";
|
|
|
4
4
|
import type { InjectionDescriptor, InjectOptions } from "#/injection/descriptor";
|
|
5
5
|
type ClassAccessorDecorator<This, Value> = (target: ClassAccessorDecoratorTarget<This, Value>, context: ClassAccessorDecoratorContext<This, Value>) => ClassAccessorDecoratorResult<This, Value> | void;
|
|
6
6
|
/**
|
|
7
|
+
* Creates a dual-role value: an injection descriptor that also works as a class accessor decorator.
|
|
8
|
+
*
|
|
7
9
|
* @since 0.3.16-canary.0
|
|
8
10
|
*/
|
|
9
11
|
export declare function inject<Value>(token: Token<Value> | Constructor<Value>, options?: InjectOptions): InjectionDescriptor<Value> & ClassAccessorDecorator<unknown, Value>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/decorators/inject.ts"],"names":[],"mappings":"AACA,wFAAwF;AACxF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA0BjF,KAAK,sBAAsB,CAAC,IAAI,EAAE,KAAK,IAAI,CACzC,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,KAAK,CAAC,EACjD,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,KAChD,4BAA4B,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;AAEtD
|
|
1
|
+
{"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/decorators/inject.ts"],"names":[],"mappings":"AACA,wFAAwF;AACxF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,KAAK,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AA0BjF,KAAK,sBAAsB,CAAC,IAAI,EAAE,KAAK,IAAI,CACzC,MAAM,EAAE,4BAA4B,CAAC,IAAI,EAAE,KAAK,CAAC,EACjD,OAAO,EAAE,6BAA6B,CAAC,IAAI,EAAE,KAAK,CAAC,KAChD,4BAA4B,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC;AAEtD;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAC1B,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,EACxC,OAAO,CAAC,EAAE,aAAa,GACtB,mBAAmB,CAAC,KAAK,CAAC,GAAG,sBAAsB,CAAC,OAAO,EAAE,KAAK,CAAC,CAwDrE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/decorators/inject.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAItF,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAE3F,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,QAAiB;IACpC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,WAAW,GAAY,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;IAClE,IAAI,OAAO,WAAW,KAAK,UAAU,IAAI,WAAW,CAAC,IAAI,KAAK,EAAE,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAC;AAC1B,CAAC;AASD
|
|
1
|
+
{"version":3,"file":"inject.js","sourceRoot":"","sources":["../../src/decorators/inject.ts"],"names":[],"mappings":"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"}
|