@c9up/ream 0.1.25 → 0.1.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +65 -0
- package/dist/ConfigLoader.d.ts +46 -5
- package/dist/ConfigLoader.d.ts.map +1 -1
- package/dist/ConfigLoader.js +60 -9
- package/dist/ConfigLoader.js.map +1 -1
- package/dist/HttpKernel.d.ts.map +1 -1
- package/dist/HttpKernel.js +46 -6
- package/dist/HttpKernel.js.map +1 -1
- package/dist/Ignitor.d.ts +115 -7
- package/dist/Ignitor.d.ts.map +1 -1
- package/dist/Ignitor.js +254 -40
- package/dist/Ignitor.js.map +1 -1
- package/dist/console/BaseCommand.d.ts +217 -0
- package/dist/console/BaseCommand.d.ts.map +1 -0
- package/dist/console/BaseCommand.js +340 -0
- package/dist/console/BaseCommand.js.map +1 -0
- package/dist/console/Console.d.ts +86 -0
- package/dist/console/Console.d.ts.map +1 -0
- package/dist/console/Console.js +134 -0
- package/dist/console/Console.js.map +1 -0
- package/dist/console/ExceptionHandler.d.ts +28 -0
- package/dist/console/ExceptionHandler.d.ts.map +1 -0
- package/dist/console/ExceptionHandler.js +76 -0
- package/dist/console/ExceptionHandler.js.map +1 -0
- package/dist/console/HelpCommand.d.ts +16 -0
- package/dist/console/HelpCommand.d.ts.map +1 -0
- package/dist/console/HelpCommand.js +40 -0
- package/dist/console/HelpCommand.js.map +1 -0
- package/dist/console/IndexGenerator.d.ts +24 -0
- package/dist/console/IndexGenerator.d.ts.map +1 -0
- package/dist/console/IndexGenerator.js +65 -0
- package/dist/console/IndexGenerator.js.map +1 -0
- package/dist/console/Kernel.d.ts +298 -0
- package/dist/console/Kernel.d.ts.map +1 -0
- package/dist/console/Kernel.js +1120 -0
- package/dist/console/Kernel.js.map +1 -0
- package/dist/console/ListCommand.d.ts +18 -0
- package/dist/console/ListCommand.d.ts.map +1 -0
- package/dist/console/ListCommand.js +60 -0
- package/dist/console/ListCommand.js.map +1 -0
- package/dist/console/assertions.d.ts +20 -0
- package/dist/console/assertions.d.ts.map +1 -0
- package/dist/console/assertions.js +84 -0
- package/dist/console/assertions.js.map +1 -0
- package/dist/console/cliui.d.ts +248 -0
- package/dist/console/cliui.d.ts.map +1 -0
- package/dist/console/cliui.js +587 -0
- package/dist/console/cliui.js.map +1 -0
- package/dist/console/decorators.d.ts +90 -0
- package/dist/console/decorators.d.ts.map +1 -0
- package/dist/console/decorators.js +142 -0
- package/dist/console/decorators.js.map +1 -0
- package/dist/console/index.d.ts +32 -0
- package/dist/console/index.d.ts.map +1 -0
- package/dist/console/index.js +24 -0
- package/dist/console/index.js.map +1 -0
- package/dist/console/loaders.d.ts +52 -0
- package/dist/console/loaders.d.ts.map +1 -0
- package/dist/console/loaders.js +131 -0
- package/dist/console/loaders.js.map +1 -0
- package/dist/console/parser.d.ts +86 -0
- package/dist/console/parser.d.ts.map +1 -0
- package/dist/console/parser.js +440 -0
- package/dist/console/parser.js.map +1 -0
- package/dist/console/prompts.d.ts +124 -0
- package/dist/console/prompts.d.ts.map +1 -0
- package/dist/console/prompts.js +356 -0
- package/dist/console/prompts.js.map +1 -0
- package/dist/console/tracing.d.ts +17 -0
- package/dist/console/tracing.d.ts.map +1 -0
- package/dist/console/tracing.js +11 -0
- package/dist/console/tracing.js.map +1 -0
- package/dist/console/types.d.ts +255 -0
- package/dist/console/types.d.ts.map +1 -0
- package/dist/console/types.js +25 -0
- package/dist/console/types.js.map +1 -0
- package/dist/console/ui.d.ts +20 -0
- package/dist/console/ui.d.ts.map +1 -0
- package/dist/console/ui.js +31 -0
- package/dist/console/ui.js.map +1 -0
- package/dist/console/utils.d.ts +27 -0
- package/dist/console/utils.d.ts.map +1 -0
- package/dist/console/utils.js +56 -0
- package/dist/console/utils.js.map +1 -0
- package/dist/container/Container.d.ts +23 -3
- package/dist/container/Container.d.ts.map +1 -1
- package/dist/container/Container.js +177 -70
- package/dist/container/Container.js.map +1 -1
- package/dist/container/types.d.ts +14 -2
- package/dist/container/types.d.ts.map +1 -1
- package/dist/decorators/Service.d.ts +7 -0
- package/dist/decorators/Service.d.ts.map +1 -1
- package/dist/decorators/Service.js +23 -3
- package/dist/decorators/Service.js.map +1 -1
- package/dist/env/Env.d.ts +29 -4
- package/dist/env/Env.d.ts.map +1 -1
- package/dist/env/Env.js +27 -4
- package/dist/env/Env.js.map +1 -1
- package/dist/env/Secret.d.ts +11 -0
- package/dist/env/Secret.d.ts.map +1 -0
- package/dist/env/Secret.js +36 -0
- package/dist/env/Secret.js.map +1 -0
- package/dist/env/interpolate.d.ts +26 -0
- package/dist/env/interpolate.d.ts.map +1 -0
- package/dist/env/interpolate.js +48 -0
- package/dist/env/interpolate.js.map +1 -0
- package/dist/env/loadEnvFiles.d.ts.map +1 -1
- package/dist/env/loadEnvFiles.js +14 -4
- package/dist/env/loadEnvFiles.js.map +1 -1
- package/dist/env/schema.d.ts +23 -6
- package/dist/env/schema.d.ts.map +1 -1
- package/dist/env/schema.js +67 -33
- package/dist/env/schema.js.map +1 -1
- package/dist/errors/ReamError.d.ts +25 -0
- package/dist/errors/ReamError.d.ts.map +1 -1
- package/dist/errors/ReamError.js +5 -0
- package/dist/errors/ReamError.js.map +1 -1
- package/dist/errors/prettyPrintError.d.ts +9 -0
- package/dist/errors/prettyPrintError.d.ts.map +1 -0
- package/dist/errors/prettyPrintError.js +22 -0
- package/dist/errors/prettyPrintError.js.map +1 -0
- package/dist/events/Emitter.d.ts +1 -1
- package/dist/events/Emitter.d.ts.map +1 -1
- package/dist/events/Emitter.js +1 -1
- package/dist/events/Emitter.js.map +1 -1
- package/dist/events/EventsProvider.d.ts +2 -2
- package/dist/events/EventsProvider.d.ts.map +1 -1
- package/dist/events/EventsProvider.js +3 -3
- package/dist/events/EventsProvider.js.map +1 -1
- package/dist/graphql/GraphQLEngine.d.ts +1 -1
- package/dist/graphql/GraphQLEngine.d.ts.map +1 -1
- package/dist/graphql/GraphQLEngine.js +2 -2
- package/dist/graphql/GraphQLEngine.js.map +1 -1
- package/dist/graphql/GraphQLProvider.d.ts.map +1 -1
- package/dist/graphql/GraphQLProvider.js +7 -3
- package/dist/graphql/GraphQLProvider.js.map +1 -1
- package/dist/http/Exception.d.ts +63 -1
- package/dist/http/Exception.d.ts.map +1 -1
- package/dist/http/Exception.js +185 -48
- package/dist/http/Exception.js.map +1 -1
- package/dist/http/HttpContext.d.ts +53 -7
- package/dist/http/HttpContext.d.ts.map +1 -1
- package/dist/http/HttpContext.js +56 -15
- package/dist/http/HttpContext.js.map +1 -1
- package/dist/http/RedirectBuilder.d.ts.map +1 -1
- package/dist/http/RedirectBuilder.js +4 -1
- package/dist/http/RedirectBuilder.js.map +1 -1
- package/dist/http/Request.d.ts +141 -10
- package/dist/http/Request.d.ts.map +1 -1
- package/dist/http/Request.js +244 -34
- package/dist/http/Request.js.map +1 -1
- package/dist/http/Response.d.ts +176 -9
- package/dist/http/Response.d.ts.map +1 -1
- package/dist/http/Response.js +404 -16
- package/dist/http/Response.js.map +1 -1
- package/dist/index.d.ts +19 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +20 -5
- package/dist/index.js.map +1 -1
- package/dist/middleware/Pipeline.d.ts +29 -8
- package/dist/middleware/Pipeline.d.ts.map +1 -1
- package/dist/middleware/Pipeline.js +40 -2
- package/dist/middleware/Pipeline.js.map +1 -1
- package/dist/openapi/OpenApiProvider.js +4 -4
- package/dist/openapi/OpenApiProvider.js.map +1 -1
- package/dist/router/Router.d.ts +223 -31
- package/dist/router/Router.d.ts.map +1 -1
- package/dist/router/Router.js +520 -102
- package/dist/router/Router.js.map +1 -1
- package/dist/rpc/RpcProvider.d.ts +1 -0
- package/dist/rpc/RpcProvider.d.ts.map +1 -1
- package/dist/rpc/RpcProvider.js +7 -3
- package/dist/rpc/RpcProvider.js.map +1 -1
- package/dist/rpc/RpcRouter.d.ts +2 -2
- package/dist/rpc/RpcRouter.d.ts.map +1 -1
- package/dist/rpc/RpcRouter.js +17 -5
- package/dist/rpc/RpcRouter.js.map +1 -1
- package/dist/scheduler/ScheduleProvider.d.ts.map +1 -1
- package/dist/scheduler/ScheduleProvider.js +7 -15
- package/dist/scheduler/ScheduleProvider.js.map +1 -1
- package/dist/server/Server.d.ts +17 -4
- package/dist/server/Server.d.ts.map +1 -1
- package/dist/server/Server.js +41 -7
- package/dist/server/Server.js.map +1 -1
- package/dist/services/app.d.ts +1 -1
- package/dist/services/app.js +1 -1
- package/dist/services/console.d.ts +21 -0
- package/dist/services/console.d.ts.map +1 -0
- package/dist/services/console.js +35 -0
- package/dist/services/console.js.map +1 -0
- package/dist/session/SessionMiddleware.js +3 -3
- package/dist/session/SessionMiddleware.js.map +1 -1
- package/dist/storage/StaticProvider.js +1 -1
- package/dist/storage/StaticProvider.js.map +1 -1
- package/dist/testing/ApiResponse.d.ts +218 -0
- package/dist/testing/ApiResponse.d.ts.map +1 -0
- package/dist/testing/ApiResponse.js +576 -0
- package/dist/testing/ApiResponse.js.map +1 -0
- package/dist/testing/RequestBuilder.d.ts +155 -35
- package/dist/testing/RequestBuilder.d.ts.map +1 -1
- package/dist/testing/RequestBuilder.js +455 -109
- package/dist/testing/RequestBuilder.js.map +1 -1
- package/dist/testing/TestClient.d.ts +53 -37
- package/dist/testing/TestClient.d.ts.map +1 -1
- package/dist/testing/TestClient.js +84 -52
- package/dist/testing/TestClient.js.map +1 -1
- package/dist/utils/Macroable.d.ts +30 -0
- package/dist/utils/Macroable.d.ts.map +1 -0
- package/dist/utils/Macroable.js +43 -0
- package/dist/utils/Macroable.js.map +1 -0
- package/dist/utils/inflect.d.ts +17 -0
- package/dist/utils/inflect.d.ts.map +1 -0
- package/dist/utils/inflect.js +32 -0
- package/dist/utils/inflect.js.map +1 -0
- package/dist/utils/objectPath.d.ts +57 -0
- package/dist/utils/objectPath.d.ts.map +1 -0
- package/dist/utils/objectPath.js +141 -0
- package/dist/utils/objectPath.js.map +1 -0
- package/events.darwin-arm64.node +0 -0
- package/events.darwin-x64.node +0 -0
- package/events.linux-arm64-gnu.node +0 -0
- package/events.linux-x64-gnu.node +0 -0
- package/events.win32-x64-msvc.node +0 -0
- package/index.darwin-arm64.node +0 -0
- package/index.darwin-x64.node +0 -0
- package/index.linux-arm64-gnu.node +0 -0
- package/index.linux-x64-gnu.node +0 -0
- package/index.win32-x64-msvc.node +0 -0
- package/package.json +20 -2
- package/scheduler.darwin-arm64.node +0 -0
- package/scheduler.darwin-x64.node +0 -0
- package/scheduler.linux-arm64-gnu.node +0 -0
- package/scheduler.linux-x64-gnu.node +0 -0
- package/scheduler.win32-x64-msvc.node +0 -0
- package/src/ConfigLoader.ts +72 -9
- package/src/HttpKernel.ts +53 -15
- package/src/Ignitor.ts +364 -45
- package/src/console/BaseCommand.ts +467 -0
- package/src/console/Console.ts +174 -0
- package/src/console/ExceptionHandler.ts +91 -0
- package/src/console/HelpCommand.ts +37 -0
- package/src/console/IndexGenerator.ts +79 -0
- package/src/console/Kernel.ts +1382 -0
- package/src/console/ListCommand.ts +55 -0
- package/src/console/assertions.ts +114 -0
- package/src/console/cliui.ts +756 -0
- package/src/console/decorators.ts +199 -0
- package/src/console/index.ts +67 -0
- package/src/console/loaders.ts +145 -0
- package/src/console/parser.ts +598 -0
- package/src/console/prompts.ts +548 -0
- package/src/console/tracing.ts +22 -0
- package/src/console/types.ts +280 -0
- package/src/console/ui.ts +37 -0
- package/src/console/utils.ts +69 -0
- package/src/container/Container.ts +198 -72
- package/src/container/types.ts +15 -2
- package/src/decorators/Service.ts +28 -3
- package/src/env/Env.ts +49 -5
- package/src/env/Secret.ts +41 -0
- package/src/env/interpolate.ts +54 -0
- package/src/env/loadEnvFiles.ts +12 -4
- package/src/env/schema.ts +109 -35
- package/src/errors/ReamError.ts +31 -0
- package/src/errors/prettyPrintError.ts +20 -0
- package/src/events/Emitter.ts +2 -2
- package/src/events/EventsProvider.ts +5 -5
- package/src/graphql/GraphQLEngine.ts +4 -4
- package/src/graphql/GraphQLProvider.ts +7 -3
- package/src/http/Exception.ts +214 -37
- package/src/http/HttpContext.ts +87 -18
- package/src/http/RedirectBuilder.ts +4 -1
- package/src/http/Request.ts +264 -34
- package/src/http/Response.ts +478 -27
- package/src/index.ts +41 -6
- package/src/middleware/Pipeline.ts +77 -6
- package/src/openapi/OpenApiProvider.ts +4 -4
- package/src/router/Router.ts +631 -113
- package/src/rpc/RpcProvider.ts +6 -2
- package/src/rpc/RpcRouter.ts +22 -7
- package/src/scheduler/ScheduleProvider.ts +7 -15
- package/src/server/Server.ts +49 -10
- package/src/services/app.ts +1 -1
- package/src/services/console.ts +42 -0
- package/src/session/SessionMiddleware.ts +4 -4
- package/src/storage/StaticProvider.ts +1 -1
- package/src/testing/ApiResponse.ts +691 -0
- package/src/testing/RequestBuilder.ts +577 -137
- package/src/testing/TestClient.ts +110 -77
- package/src/utils/Macroable.ts +54 -0
- package/src/utils/inflect.ts +29 -0
- package/src/utils/objectPath.ts +142 -0
- package/dist/console/CommandRunner.d.ts +0 -18
- package/dist/console/CommandRunner.d.ts.map +0 -1
- package/dist/console/CommandRunner.js +0 -65
- package/dist/console/CommandRunner.js.map +0 -1
- package/dist/decorators/Lazy.d.ts +0 -19
- package/dist/decorators/Lazy.d.ts.map +0 -1
- package/dist/decorators/Lazy.js +0 -53
- package/dist/decorators/Lazy.js.map +0 -1
- package/src/console/CommandRunner.ts +0 -82
- package/src/decorators/Lazy.ts +0 -57
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
* @implements FR11, FR12, FR14, FR16
|
|
10
10
|
*/
|
|
11
11
|
import 'reflect-metadata';
|
|
12
|
-
import {
|
|
13
|
-
import { getInjectTokens, getServiceMetadata, getServiceRegistry } from '../decorators/Service.js';
|
|
12
|
+
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
13
|
+
import { getInjectTokens, getMethodInjectTokens, getServiceMetadata, getServiceRegistry, } from '../decorators/Service.js';
|
|
14
14
|
import { didYouMean } from '../errors/FuzzyMatcher.js';
|
|
15
15
|
import { ReamError } from '../errors/ReamError.js';
|
|
16
16
|
/**
|
|
@@ -30,8 +30,20 @@ export class Container {
|
|
|
30
30
|
* pointing at the same object after the test ends.
|
|
31
31
|
*/
|
|
32
32
|
#singletonBackup = new Map();
|
|
33
|
-
|
|
34
|
-
#
|
|
33
|
+
/** Alias key → the token it forwards to (AdonisJS `container.alias`). */
|
|
34
|
+
#aliases = new Map();
|
|
35
|
+
/** token key → post-resolution callbacks (AdonisJS `container.resolving`). */
|
|
36
|
+
#resolvingHooks = new Map();
|
|
37
|
+
/**
|
|
38
|
+
* The resolution chain currently being walked, for cycle detection.
|
|
39
|
+
*
|
|
40
|
+
* Scoped to the async context, NOT to the container: `resolve()` is async, so
|
|
41
|
+
* two independent chains interleave, and a stack held on the instance would
|
|
42
|
+
* splice them together and report a cycle neither of them has. Per-container
|
|
43
|
+
* storage keeps a chain that crosses two containers from colliding on a token
|
|
44
|
+
* name they happen to share.
|
|
45
|
+
*/
|
|
46
|
+
#chain = new AsyncLocalStorage();
|
|
35
47
|
// ─── Explicit bindings ────────────────────────────────────
|
|
36
48
|
/** Register a singleton binding (factory called once, cached). */
|
|
37
49
|
singleton(token, factory) {
|
|
@@ -49,6 +61,34 @@ export class Container {
|
|
|
49
61
|
this.#singletons.set(key, value);
|
|
50
62
|
this.#bindings.set(key, { token, factory: () => value, scope: 'singleton', dependencies: [] });
|
|
51
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Register an alias — resolving `alias` forwards to `target` (AdonisJS
|
|
66
|
+
* `container.alias('db', Database)`). The target may be a class, string, or
|
|
67
|
+
* symbol that itself resolves to a binding or an auto-constructable class.
|
|
68
|
+
*/
|
|
69
|
+
alias(alias, target) {
|
|
70
|
+
this.#aliases.set(this.#tokenToKey(alias), target);
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Register a callback that runs each time `token` is constructed (AdonisJS
|
|
74
|
+
* `container.resolving`) — for lazy init (`db.connect()`) or decorating the
|
|
75
|
+
* resolved instance. Runs after construction of a binding/auto-constructed
|
|
76
|
+
* class; NOT for raw `bindValue` values or an already-cached singleton.
|
|
77
|
+
*/
|
|
78
|
+
resolving(token, callback) {
|
|
79
|
+
const key = this.#tokenToKey(token);
|
|
80
|
+
const hooks = this.#resolvingHooks.get(key);
|
|
81
|
+
if (hooks)
|
|
82
|
+
hooks.push(callback);
|
|
83
|
+
else
|
|
84
|
+
this.#resolvingHooks.set(key, [callback]);
|
|
85
|
+
}
|
|
86
|
+
async #runResolvingHooks(key, value) {
|
|
87
|
+
const hooks = this.#resolvingHooks.get(key);
|
|
88
|
+
if (hooks)
|
|
89
|
+
for (const hook of hooks)
|
|
90
|
+
await hook(value);
|
|
91
|
+
}
|
|
52
92
|
// ─── Testing ──────────────────────────────────────────────
|
|
53
93
|
/**
|
|
54
94
|
* Replace a binding's factory for testing (AdonisJS-compatible swap).
|
|
@@ -100,27 +140,42 @@ export class Container {
|
|
|
100
140
|
* 4. Auto-construct if class has @inject() or @Service()
|
|
101
141
|
* 5. Auto-construct any class (plain `new Class()`) as fallback
|
|
102
142
|
*/
|
|
103
|
-
make(token) {
|
|
104
|
-
return this.resolve(token);
|
|
143
|
+
make(token, runtimeValues) {
|
|
144
|
+
return this.resolve(token, runtimeValues);
|
|
105
145
|
}
|
|
106
|
-
/**
|
|
107
|
-
|
|
146
|
+
/**
|
|
147
|
+
* Resolve/construct a class or binding (AdonisJS `container.make` — async, so
|
|
148
|
+
* factories, providers and `resolving` hooks may be async). `runtimeValues`
|
|
149
|
+
* fill the resolved class's constructor slots by index (`make(Class, [req,
|
|
150
|
+
* res])`); only the `undefined` slots are container-resolved, top-level only.
|
|
151
|
+
*/
|
|
152
|
+
async resolve(token, runtimeValues) {
|
|
153
|
+
// Dereference an alias to its target before anything else.
|
|
154
|
+
const aliasTarget = this.#aliases.get(this.#tokenToKey(token));
|
|
155
|
+
if (aliasTarget !== undefined)
|
|
156
|
+
return this.resolve(aliasTarget, runtimeValues);
|
|
108
157
|
const key = this.#tokenToKey(token);
|
|
109
|
-
|
|
110
|
-
|
|
158
|
+
// Top of a chain: open one, so everything this resolution triggers shares
|
|
159
|
+
// it and nothing outside it does.
|
|
160
|
+
const chain = this.#chain.getStore();
|
|
161
|
+
if (chain === undefined) {
|
|
162
|
+
return this.#chain.run({ stack: [], set: new Set() }, () => this.resolve(token, runtimeValues));
|
|
163
|
+
}
|
|
164
|
+
if (chain.set.has(key)) {
|
|
165
|
+
const cycle = [...chain.stack, key].join(' → ');
|
|
111
166
|
throw new ReamError('CIRCULAR_DEPENDENCY', `Circular dependency detected: ${cycle}`, {
|
|
112
|
-
hint: '
|
|
167
|
+
hint: 'Break the cycle by resolving one dependency lazily inside a method (`await container.make(Dep)`) instead of injecting it in the constructor.',
|
|
113
168
|
context: { chain: cycle },
|
|
114
169
|
});
|
|
115
170
|
}
|
|
116
|
-
|
|
117
|
-
|
|
171
|
+
chain.stack.push(key);
|
|
172
|
+
chain.set.add(key);
|
|
118
173
|
try {
|
|
119
|
-
return this.#resolveInner(key, token);
|
|
174
|
+
return await this.#resolveInner(key, token, runtimeValues);
|
|
120
175
|
}
|
|
121
176
|
finally {
|
|
122
|
-
|
|
123
|
-
|
|
177
|
+
chain.stack.pop();
|
|
178
|
+
chain.set.delete(key);
|
|
124
179
|
}
|
|
125
180
|
}
|
|
126
181
|
/**
|
|
@@ -133,16 +188,31 @@ export class Container {
|
|
|
133
188
|
// narrows it back to a typed constructor without a cast expression.
|
|
134
189
|
const target = Object.getPrototypeOf(instance).constructor;
|
|
135
190
|
const paramTypes = Reflect.getMetadata('design:paramtypes', target.prototype, method) ?? [];
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
191
|
+
// `@Inject('token')` on a method parameter — a named binding the reflected
|
|
192
|
+
// type cannot express (an interface, or a class registered under a name).
|
|
193
|
+
const injectTokens = getMethodInjectTokens(target.prototype, method);
|
|
194
|
+
// `@Inject` counts towards the parameter span too: a method may carry named
|
|
195
|
+
// tokens without `design:paramtypes` being emitted for it, and computing the
|
|
196
|
+
// span from the reflected types alone left the loop at zero iterations —
|
|
197
|
+
// the tokens were read and then never used.
|
|
198
|
+
const injectSpan = injectTokens.size === 0 ? 0 : Math.max(...injectTokens.keys()) + 1;
|
|
199
|
+
const len = Math.max(paramTypes.length, runtimeValues?.length ?? 0, injectSpan);
|
|
200
|
+
// Sequential resolution keeps the shared cycle-detection stack consistent.
|
|
201
|
+
const args = [];
|
|
202
|
+
for (let index = 0; index < len; index += 1) {
|
|
203
|
+
// Runtime values take precedence (and fill slots beyond paramTypes).
|
|
204
|
+
if (runtimeValues && index < runtimeValues.length) {
|
|
205
|
+
args.push(runtimeValues[index]);
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
const named = injectTokens.get(index);
|
|
209
|
+
if (named !== undefined) {
|
|
210
|
+
args.push(await this.resolve(named));
|
|
211
|
+
continue;
|
|
212
|
+
}
|
|
141
213
|
const type = paramTypes[index];
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
return undefined;
|
|
145
|
-
});
|
|
214
|
+
args.push(isInjectableClass(type) ? await this.resolve(type) : undefined);
|
|
215
|
+
}
|
|
146
216
|
const member = instance[method];
|
|
147
217
|
if (!isCallable(member)) {
|
|
148
218
|
throw new Error(`Container.call: '${method}' is not a callable method`);
|
|
@@ -156,8 +226,13 @@ export class Container {
|
|
|
156
226
|
return (this.#bindings.has(key) ||
|
|
157
227
|
this.#overrides.has(key) ||
|
|
158
228
|
this.#singletons.has(key) ||
|
|
229
|
+
this.#aliases.has(key) ||
|
|
159
230
|
(typeof token === 'function' && getServiceMetadata(token) !== undefined));
|
|
160
231
|
}
|
|
232
|
+
/** True only when EVERY token is registered/resolvable (AdonisJS `hasAllBindings`). */
|
|
233
|
+
hasAllBindings(tokens) {
|
|
234
|
+
return tokens.every((token) => this.has(token));
|
|
235
|
+
}
|
|
161
236
|
get size() {
|
|
162
237
|
return this.#bindings.size;
|
|
163
238
|
}
|
|
@@ -177,31 +252,32 @@ export class Container {
|
|
|
177
252
|
}
|
|
178
253
|
}
|
|
179
254
|
// ─── Internal resolution ──────────────────────────────────
|
|
180
|
-
#resolveInner(key, token) {
|
|
181
|
-
// 1. Check swaps (test overrides)
|
|
255
|
+
async #resolveInner(key, token, runtimeValues) {
|
|
256
|
+
// 1. Check swaps (test overrides) — a swap factory may be async.
|
|
182
257
|
if (this.#overrides.has(key)) {
|
|
183
|
-
|
|
184
|
-
return
|
|
258
|
+
const swapped = await this.#overrides.get(key)?.(this);
|
|
259
|
+
return swapped;
|
|
185
260
|
}
|
|
186
261
|
// 2. Check cached singletons
|
|
187
262
|
if (this.#singletons.has(key)) {
|
|
188
|
-
// biome-ignore lint/suspicious/noExplicitAny: IoC singleton stored as unknown; caller brands via T
|
|
189
263
|
return this.#singletons.get(key);
|
|
190
264
|
}
|
|
191
|
-
// 3. Check explicit bindings
|
|
265
|
+
// 3. Check explicit bindings — the factory may be async.
|
|
192
266
|
const binding = this.#bindings.get(key);
|
|
193
267
|
if (binding) {
|
|
194
|
-
const instance = binding.factory ? binding.factory() : undefined;
|
|
268
|
+
const instance = binding.factory ? await binding.factory(this) : undefined;
|
|
195
269
|
if (binding.scope === 'singleton') {
|
|
196
270
|
this.#singletons.set(key, instance);
|
|
197
271
|
}
|
|
198
|
-
|
|
272
|
+
await this.#runResolvingHooks(key, instance);
|
|
273
|
+
// Boundary cast from `unknown` — the caller brands the resolved type via T.
|
|
199
274
|
return instance;
|
|
200
275
|
}
|
|
201
276
|
// 4. Auto-construct if it's a class
|
|
202
277
|
if (typeof token === 'function') {
|
|
203
|
-
|
|
204
|
-
|
|
278
|
+
const instance = (await this.#autoConstruct(token, runtimeValues));
|
|
279
|
+
await this.#runResolvingHooks(key, instance);
|
|
280
|
+
return instance;
|
|
205
281
|
}
|
|
206
282
|
// 5. Not found
|
|
207
283
|
const allKeys = [...this.#bindings.keys(), ...this.#overrides.keys()];
|
|
@@ -218,46 +294,58 @@ export class Container {
|
|
|
218
294
|
* 2. Reflect.getMetadata('design:paramtypes') — decorator metadata (requires SWC/tsc)
|
|
219
295
|
* 3. No params → plain `new Class()`
|
|
220
296
|
*/
|
|
221
|
-
#autoConstruct(target) {
|
|
297
|
+
async #autoConstruct(target, runtimeValues) {
|
|
222
298
|
const metadata = getServiceMetadata(target);
|
|
223
299
|
const scope = metadata?.scope ?? 'transient';
|
|
224
300
|
const key = metadata?.as ?? target.name;
|
|
225
301
|
if (scope === 'singleton' && this.#singletons.has(key)) {
|
|
226
302
|
return this.#singletons.get(key);
|
|
227
303
|
}
|
|
304
|
+
// A runtime value at this index (from `make(Class, [req, res])`) wins over
|
|
305
|
+
// container resolution for that constructor slot.
|
|
306
|
+
const runtimeAt = (index) => runtimeValues?.[index];
|
|
228
307
|
// 1. Check static containerInjections (AdonisJS Fold-compatible, works
|
|
229
|
-
// without emitDecoratorMetadata).
|
|
230
|
-
// field to `unknown`, then `readContainerInjectionDeps` validates the
|
|
231
|
-
// shape at runtime — no type-level cast required.
|
|
308
|
+
// without emitDecoratorMetadata).
|
|
232
309
|
const explicitDeps = readContainerInjectionDeps(target);
|
|
233
310
|
// 2. Fallback to reflect-metadata
|
|
234
311
|
const paramTypes = explicitDeps ?? Reflect.getMetadata('design:paramtypes', target) ?? [];
|
|
235
312
|
const injectTokens = getInjectTokens(target);
|
|
236
|
-
const lazyIndices = getLazyParams(target);
|
|
237
313
|
// No `design:paramtypes` (a dev transpiler may not emit decorator metadata —
|
|
238
314
|
// esbuild / tsx don't). Recover what we can, and NEVER construct with
|
|
239
315
|
// silently-undefined deps (that masked a whole DI outage in dev):
|
|
240
316
|
if (paramTypes.length === 0) {
|
|
241
317
|
// (a) `@Inject(token)` records its tokens INDEPENDENTLY of decorator
|
|
242
318
|
// metadata, so even without `design:paramtypes` we can resolve the
|
|
243
|
-
// constructor from that map alone.
|
|
319
|
+
// constructor from that map alone. Deps resolve SEQUENTIALLY so the
|
|
320
|
+
// shared cycle-detection stack stays consistent.
|
|
244
321
|
if (injectTokens.size > 0) {
|
|
245
|
-
const maxIndex = Math.max(...injectTokens.keys());
|
|
246
|
-
const deps =
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
322
|
+
const maxIndex = Math.max(...injectTokens.keys(), (runtimeValues?.length ?? 0) - 1);
|
|
323
|
+
const deps = [];
|
|
324
|
+
for (let index = 0; index <= maxIndex; index += 1) {
|
|
325
|
+
const rt = runtimeAt(index);
|
|
326
|
+
if (rt !== undefined) {
|
|
327
|
+
deps.push(rt);
|
|
328
|
+
continue;
|
|
252
329
|
}
|
|
253
|
-
|
|
254
|
-
|
|
330
|
+
const depToken = injectTokens.get(index);
|
|
331
|
+
deps.push(depToken ? await this.resolve(depToken) : undefined);
|
|
332
|
+
}
|
|
255
333
|
const instance = new target(...deps);
|
|
256
334
|
if (scope === 'singleton')
|
|
257
335
|
this.#singletons.set(key, instance);
|
|
258
336
|
return instance;
|
|
259
337
|
}
|
|
260
|
-
// (b)
|
|
338
|
+
// (b) No @Inject/metadata, but the caller supplied runtime values — build
|
|
339
|
+
// from those (the `make(Controller, [req, res])` pattern with a plain
|
|
340
|
+
// constructor). Slots beyond the runtime values stay undefined.
|
|
341
|
+
if (target.length > 0 && (runtimeValues?.length ?? 0) > 0) {
|
|
342
|
+
const deps = Array.from({ length: target.length }, (_value, index) => runtimeAt(index));
|
|
343
|
+
const instance = new target(...deps);
|
|
344
|
+
if (scope === 'singleton')
|
|
345
|
+
this.#singletons.set(key, instance);
|
|
346
|
+
return instance;
|
|
347
|
+
}
|
|
348
|
+
// (c) The constructor declares parameters but we have no way to resolve
|
|
261
349
|
// them (no metadata, no @Inject, no containerInjections). Fail LOUDLY
|
|
262
350
|
// instead of `new target()` with undefined deps.
|
|
263
351
|
if (target.length > 0) {
|
|
@@ -265,26 +353,28 @@ export class Container {
|
|
|
265
353
|
hint: 'Enable decorator metadata (swc/tsc emitDecoratorMetadata), annotate constructor params with @Inject(token), or declare static containerInjections.',
|
|
266
354
|
});
|
|
267
355
|
}
|
|
268
|
-
// (
|
|
356
|
+
// (d) Genuine zero-argument class.
|
|
269
357
|
const instance = new target();
|
|
270
358
|
if (scope === 'singleton')
|
|
271
359
|
this.#singletons.set(key, instance);
|
|
272
360
|
return instance;
|
|
273
361
|
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
if (lazyIndices.includes(index)) {
|
|
283
|
-
// biome-ignore lint/suspicious/noExplicitAny: lazy proxy target must be object; IoC resolution returns unknown
|
|
284
|
-
return createLazyProxy(() => this.resolve(depToken));
|
|
362
|
+
// Resolve constructor deps SEQUENTIALLY (the cycle-detection stack is
|
|
363
|
+
// instance-shared, so parallel Promise.all would interleave and corrupt it).
|
|
364
|
+
const deps = [];
|
|
365
|
+
for (let index = 0; index < paramTypes.length; index += 1) {
|
|
366
|
+
const rt = runtimeAt(index);
|
|
367
|
+
if (rt !== undefined) {
|
|
368
|
+
deps.push(rt);
|
|
369
|
+
continue;
|
|
285
370
|
}
|
|
286
|
-
|
|
287
|
-
|
|
371
|
+
const namedToken = injectTokens.get(index);
|
|
372
|
+
const type = paramTypes[index];
|
|
373
|
+
// A native primitive constructor (String/Number/Boolean/…) is NOT
|
|
374
|
+
// injectable — leave the slot undefined so a constructor default can fill it.
|
|
375
|
+
const depToken = namedToken ?? (isInjectableClass(type) ? type : undefined);
|
|
376
|
+
deps.push(depToken ? await this.resolve(depToken) : undefined);
|
|
377
|
+
}
|
|
288
378
|
const instance = new target(...deps);
|
|
289
379
|
if (scope === 'singleton')
|
|
290
380
|
this.#singletons.set(key, instance);
|
|
@@ -320,11 +410,28 @@ export class Container {
|
|
|
320
410
|
}
|
|
321
411
|
}
|
|
322
412
|
}
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
413
|
+
/**
|
|
414
|
+
* Native constructors emitDecoratorMetadata uses for primitive / `any` /
|
|
415
|
+
* `unknown` parameters. They are NOT injectable — resolving them would try to
|
|
416
|
+
* auto-construct `String`/`Number`/… (or silently inject `undefined`), so we
|
|
417
|
+
* skip them and let a constructor default fill the slot instead.
|
|
418
|
+
*/
|
|
419
|
+
const NON_INJECTABLE_CONSTRUCTORS = new Set([
|
|
420
|
+
Object,
|
|
421
|
+
String,
|
|
422
|
+
Number,
|
|
423
|
+
Boolean,
|
|
424
|
+
Array,
|
|
425
|
+
Function,
|
|
426
|
+
Symbol,
|
|
427
|
+
Date,
|
|
428
|
+
RegExp,
|
|
429
|
+
Promise,
|
|
430
|
+
Error,
|
|
431
|
+
]);
|
|
432
|
+
/** True for a real, injectable class token (excludes native primitive constructors). */
|
|
433
|
+
function isInjectableClass(value) {
|
|
434
|
+
return typeof value === 'function' && !NON_INJECTABLE_CONSTRUCTORS.has(value);
|
|
328
435
|
}
|
|
329
436
|
function isCallable(value) {
|
|
330
437
|
return typeof value === 'function';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/container/Container.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,kBAAkB,CAAA;AACzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AAGlD;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;AAQ/E,MAAM,OAAO,SAAS;IACpB,SAAS,GAAyB,IAAI,GAAG,EAAE,CAAA;IAC3C,WAAW,GAAyB,IAAI,GAAG,EAAE,CAAA;IAC7C,UAAU,GAAgC,IAAI,GAAG,EAAE,CAAA;IACnD;;;;;OAKG;IACH,gBAAgB,GAAyB,IAAI,GAAG,EAAE,CAAA;IAClD,yEAAyE;IACzE,QAAQ,GAA8B,IAAI,GAAG,EAAE,CAAA;IAC/C,8EAA8E;IAC9E,eAAe,GAAiE,IAAI,GAAG,EAAE,CAAA;IACzF;;;;;;;;OAQG;IACM,MAAM,GAAG,IAAI,iBAAiB,EAAmB,CAAA;IAE1D,6DAA6D;IAE7D,kEAAkE;IAClE,SAAS,CAAK,KAAmB,EAAE,OAAuB;QACxD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAA;IACnF,CAAC;IAED,+DAA+D;IAC/D,IAAI,CAAK,KAAmB,EAAE,OAAuB;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAA;IACnF,CAAC;IAED,uCAAuC;IACvC,SAAS,CAAI,KAAmB,EAAE,KAAQ;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;QAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAA;IAChG,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,KAAmB,EAAE,MAAoB;QAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;IACpD,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,KAAmB,EAAE,QAAkD;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,KAAK;YAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;;YAC1B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAW,EAAE,KAAc;QAClD,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAC3C,IAAI,KAAK;YAAE,KAAK,MAAM,IAAI,IAAI,KAAK;gBAAE,MAAM,IAAI,CAAC,KAAK,CAAC,CAAA;IACxD,CAAC;IAED,6DAA6D;IAE7D;;;;OAIG;IACH,IAAI,CAAC,KAAmB,EAAE,OAAuB;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QAC3D,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QACjC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED;;;;;OAKG;IACH,QAAQ,CAAI,KAAmB,EAAE,KAAQ;QACvC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;IAED,+DAA+D;IAC/D,OAAO,CAAC,KAAoB;QAC1B,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;YACzC,OAAM;QACR,CAAC;QACD,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;YAC9C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAED,WAAW,CAAC,GAAW;QACrB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;YACzD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,6DAA6D;IAE7D;;;;;;;;OAQG;IACH,IAAI,CAAI,KAAmB,EAAE,aAAyB;QACpD,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,aAAa,CAAC,CAAA;IAC9C,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,OAAO,CAAI,KAAmB,EAAE,aAAyB;QAC7D,2DAA2D;QAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAA;QAC9D,IAAI,WAAW,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC,OAAO,CAAI,WAAW,EAAE,aAAa,CAAC,CAAA;QAEjF,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QAEnC,0EAA0E;QAC1E,kCAAkC;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAA;QACpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CACzD,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,aAAa,CAAC,CACtC,CAAA;QACH,CAAC;QAED,IAAI,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,KAAK,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAC/C,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,iCAAiC,KAAK,EAAE,EAAE;gBACnF,IAAI,EAAE,8IAA8I;gBACpJ,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;aAC1B,CAAC,CAAA;QACJ,CAAC;QACD,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrB,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAElB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,aAAa,CAAI,GAAG,EAAE,KAAK,EAAE,aAAa,CAAC,CAAA;QAC/D,CAAC;gBAAS,CAAC;YACT,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;YACjB,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QACvB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,IAAI,CACR,QAAW,EACX,MAAS,EACT,aAAyB;QAGzB,uEAAuE;QACvE,oEAAoE;QACpE,MAAM,MAAM,GAAS,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAA;QAChE,MAAM,UAAU,GACd,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;QAC1E,2EAA2E;QAC3E,0EAA0E;QAC1E,MAAM,YAAY,GAAG,qBAAqB,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;QAEpE,4EAA4E;QAC5E,6EAA6E;QAC7E,yEAAyE;QACzE,4CAA4C;QAC5C,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;QACrF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC,EAAE,UAAU,CAAC,CAAA;QAC/E,2EAA2E;QAC3E,MAAM,IAAI,GAAc,EAAE,CAAA;QAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,GAAG,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC5C,qEAAqE;YACrE,IAAI,aAAa,IAAI,KAAK,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;gBAClD,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;gBAC/B,SAAQ;YACV,CAAC;YACD,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACrC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;gBACpC,SAAQ;YACV,CAAC;YACD,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;YAC9B,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAC3E,CAAC;QAED,MAAM,MAAM,GAAY,QAAQ,CAAC,MAAM,CAAC,CAAA;QACxC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,oBAAoB,MAAM,4BAA4B,CAAC,CAAA;QACzE,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACrC,CAAC;IAED,6DAA6D;IAE7D,oDAAoD;IACpD,GAAG,CAAC,KAAmB;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAA;QACnC,OAAO,CACL,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC;YACxB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YACtB,CAAC,OAAO,KAAK,KAAK,UAAU,IAAI,kBAAkB,CAAC,KAAK,CAAC,KAAK,SAAS,CAAC,CACzE,CAAA;IACH,CAAC;IAED,uFAAuF;IACvF,cAAc,CAAC,MAAsB;QACnC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;IACjD,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAA;IAC5B,CAAC;IAED,+EAA+E;IAC/E,YAAY;QACV,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,kBAAkB,EAAE,EAAE,CAAC;YACtD,MAAM,GAAG,GAAG,QAAQ,CAAC,EAAE,IAAI,MAAM,CAAC,IAAI,CAAA;YACtC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7B,MAAM,WAAW,GAAG,MAAM,CAAA;gBAC1B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE;oBACtB,KAAK,EAAE,QAAQ,CAAC,EAAE,IAAI,MAAM;oBAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC;oBAC/C,KAAK,EAAE,QAAQ,CAAC,KAAK;oBACrB,YAAY,EAAE,EAAE;iBACjB,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,6DAA6D;IAE7D,KAAK,CAAC,aAAa,CAAI,GAAW,EAAE,KAAmB,EAAE,aAAyB;QAChF,iEAAiE;QACjE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;YACtD,OAAO,OAAY,CAAA;QACrB,CAAC;QAED,6BAA6B;QAC7B,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAM,CAAA;QACvC,CAAC;QAED,yDAAyD;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QACvC,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;YAC1E,IAAI,OAAO,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;gBAClC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YACrC,CAAC;YACD,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC5C,4EAA4E;YAC5E,OAAO,QAAa,CAAA;QACtB,CAAC;QAED,oCAAoC;QACpC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,aAAa,CAAC,CAAM,CAAA;YACvE,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC5C,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,eAAe;QACf,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAA;QACrE,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;QAC3C,MAAM,IAAI,SAAS,CACjB,qBAAqB,EACrB,yBAAyB,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,EACrE;YACE,IAAI,EAAE,oEAAoE;SAC3E,CACF,CAAA;IACH,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,cAAc,CAClB,MAA2C,EAC3C,aAAyB;QAEzB,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,KAAK,GAAG,QAAQ,EAAE,KAAK,IAAI,WAAW,CAAA;QAC5C,MAAM,GAAG,GAAG,QAAQ,EAAE,EAAE,IAAI,MAAM,CAAC,IAAI,CAAA;QAEvC,IAAI,KAAK,KAAK,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAClC,CAAC;QAED,2EAA2E;QAC3E,kDAAkD;QAClD,MAAM,SAAS,GAAG,CAAC,KAAa,EAAW,EAAE,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,CAAA;QAEpE,uEAAuE;QACvE,kCAAkC;QAClC,MAAM,YAAY,GAAG,0BAA0B,CAAC,MAAM,CAAC,CAAA;QAEvD,kCAAkC;QAClC,MAAM,UAAU,GACd,YAAY,IAAI,OAAO,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,EAAE,CAAA;QAExE,MAAM,YAAY,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;QAE5C,6EAA6E;QAC7E,sEAAsE;QACtE,kEAAkE;QAClE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,qEAAqE;YACrE,uEAAuE;YACvE,wEAAwE;YACxE,qDAAqD;YACrD,IAAI,YAAY,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACnF,MAAM,IAAI,GAAc,EAAE,CAAA;gBAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,QAAQ,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;oBAClD,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;oBAC3B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;wBACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;wBACb,SAAQ;oBACV,CAAC;oBACD,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;oBACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;gBAChE,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;gBACpC,IAAI,KAAK,KAAK,WAAW;oBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;gBAC9D,OAAO,QAAQ,CAAA;YACjB,CAAC;YACD,0EAA0E;YAC1E,0EAA0E;YAC1E,oEAAoE;YACpE,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;gBACvF,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;gBACpC,IAAI,KAAK,KAAK,WAAW;oBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;gBAC9D,OAAO,QAAQ,CAAA;YACjB,CAAC;YACD,wEAAwE;YACxE,0EAA0E;YAC1E,qDAAqD;YACrD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,SAAS,CACjB,4BAA4B,EAC5B,yBAAyB,MAAM,CAAC,IAAI,iBAAiB,MAAM,CAAC,MAAM,iEAAiE,EACnI;oBACE,IAAI,EAAE,oJAAoJ;iBAC3J,CACF,CAAA;YACH,CAAC;YACD,mCAAmC;YACnC,MAAM,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAA;YAC7B,IAAI,KAAK,KAAK,WAAW;gBAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;YAC9D,OAAO,QAAQ,CAAA;QACjB,CAAC;QAED,sEAAsE;QACtE,6EAA6E;QAC7E,MAAM,IAAI,GAAc,EAAE,CAAA;QAC1B,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;YAC1D,MAAM,EAAE,GAAG,SAAS,CAAC,KAAK,CAAC,CAAA;YAC3B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACb,SAAQ;YACV,CAAC;YACD,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YAC1C,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;YAC9B,kEAAkE;YAClE,8EAA8E;YAC9E,MAAM,QAAQ,GACZ,UAAU,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;YAC5D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAChE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,GAAG,IAAI,CAAC,CAAA;QACpC,IAAI,KAAK,KAAK,WAAW;YAAE,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;QAC9D,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,WAAW,CAAC,KAAmB;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;YACxC,OAAO,KAAK,CAAA;QACd,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,wEAAwE;YACxE,sEAAsE;YACtE,uEAAuE;YACvE,yDAAyD;YACzD,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,EAAE,CAAC;gBACvC,MAAM,IAAI,SAAS,CACjB,yBAAyB,EACzB,8DAA8D,KAAK,CAAC,WAAW,IAAI,MAAM,8CAA8C,CACxI,CAAA;YACH,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,CAAA;YAC9B,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACvB,MAAM,IAAI,SAAS,CAAC,yBAAyB,EAAE,wCAAwC,CAAC,CAAA;YAC1F,CAAC;YACD,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAA;YACnD,OAAO,UAAU,IAAI,GAAG,CAAA;QAC1B,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAA;IACnB,CAAC;IAED,kBAAkB,CAAC,IAAY,EAAE,IAAqC;QACpE,IAAI,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,SAAS,CAAC,0BAA0B,EAAE,kCAAkC,IAAI,IAAI,EAAE;gBAC1F,IAAI,EAAE,IAAI,IAAI,kEAAkE,IAAI,GAAG;aACxF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,2BAA2B,GAAG,IAAI,GAAG,CAAU;IACnD,MAAM;IACN,MAAM;IACN,MAAM;IACN,OAAO;IACP,KAAK;IACL,QAAQ;IACR,MAAM;IACN,IAAI;IACJ,MAAM;IACN,OAAO;IACP,KAAK;CACN,CAAC,CAAA;AAEF,wFAAwF;AACxF,SAAS,iBAAiB,CAAC,KAAc;IACvC,OAAO,OAAO,KAAK,KAAK,UAAU,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;AAC/E,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAA;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAS,0BAA0B,CAAC,MAAc;IAChD,IAAI,CAAC,CAAC,qBAAqB,IAAI,MAAM,CAAC;QAAE,OAAO,SAAS,CAAA;IACxD,MAAM,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAA;IAC7C,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAC3E,IAAI,CAAC,CAAC,cAAc,IAAI,UAAU,CAAC;QAAE,OAAO,SAAS,CAAA;IACrD,MAAM,IAAI,GAAG,UAAU,CAAC,YAAY,CAAA;IACpC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,SAAS,CAAA;IAC/D,IAAI,CAAC,CAAC,cAAc,IAAI,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,CAAA;IAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAA;IAC1C,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAA;AACtD,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,UAAU,CAAA;AAC9F,CAAC"}
|
|
@@ -12,8 +12,20 @@ export interface ServiceMetadata {
|
|
|
12
12
|
}
|
|
13
13
|
/** Token used to resolve a service — class constructor, string name, or registered symbol. */
|
|
14
14
|
export type ServiceToken = (new (...args: any[]) => unknown) | string | symbol;
|
|
15
|
-
/**
|
|
16
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Resolver handed to a binding factory so it can resolve its own dependencies
|
|
17
|
+
* (AdonisJS parity: `container.singleton(token, async (resolver) =>
|
|
18
|
+
* await resolver.make(Dep))`). The Container itself satisfies this contract.
|
|
19
|
+
*/
|
|
20
|
+
export interface ContainerResolver {
|
|
21
|
+
make<T>(token: ServiceToken, runtimeValues?: unknown[]): Promise<T>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Factory function for creating service instances. Receives a {@link
|
|
25
|
+
* ContainerResolver} (AdonisJS parity) — the async container means a factory
|
|
26
|
+
* that needs another binding must `await resolver.make(Dep)`.
|
|
27
|
+
*/
|
|
28
|
+
export type ServiceFactory = (resolver: ContainerResolver) => unknown;
|
|
17
29
|
/** Binding entry in the container. */
|
|
18
30
|
export interface Binding {
|
|
19
31
|
token: ServiceToken;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/container/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAA;AAEhE,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAA;IACnB,yEAAyE;IACzE,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,8FAA8F;AAE9F,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,CAAA;AAE9E,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/container/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,mDAAmD;AACnD,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAA;AAEhE,uDAAuD;AACvD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,YAAY,CAAA;IACnB,yEAAyE;IACzE,EAAE,CAAC,EAAE,MAAM,CAAA;CACZ;AAED,8FAA8F;AAE9F,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,CAAA;AAE9E;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;CACpE;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,iBAAiB,KAAK,OAAO,CAAA;AAErE,sCAAsC;AACtC,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,YAAY,CAAA;IACnB,OAAO,CAAC,EAAE,cAAc,CAAA;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,KAAK,EAAE,YAAY,CAAA;IACnB,YAAY,EAAE,YAAY,EAAE,CAAA;CAC7B"}
|
|
@@ -29,6 +29,13 @@ export declare function Inject(token: ServiceToken): ParameterDecorator;
|
|
|
29
29
|
* Get named injection tokens for a class constructor.
|
|
30
30
|
*/
|
|
31
31
|
export declare function getInjectTokens(target: AnyConstructor): Map<number, ServiceToken>;
|
|
32
|
+
/**
|
|
33
|
+
* Get named injection tokens for one method's parameters.
|
|
34
|
+
*
|
|
35
|
+
* `target` is the prototype carrying the method — that is where a parameter
|
|
36
|
+
* decorator on a method writes.
|
|
37
|
+
*/
|
|
38
|
+
export declare function getMethodInjectTokens(target: object, propertyKey: string | symbol): Map<number, ServiceToken>;
|
|
32
39
|
/**
|
|
33
40
|
* @inject() class decorator — marks a controller (or service) for transient IoC resolution.
|
|
34
41
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../src/decorators/Service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAKxF,yEAAyE;AACzE,KAAK,cAAc,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;AAKzD,wBAAgB,kBAAkB,IAAI,WAAW,CAAC,cAAc,EAAE,eAAe,CAAC,CAEjF;AAED,sEAAsE;AACtE,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,GAAG,SAAS,CAEtF;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,YAAY,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,cAAc,CAU3F;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,kBAAkB,
|
|
1
|
+
{"version":3,"file":"Service.d.ts","sourceRoot":"","sources":["../../src/decorators/Service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAKxF,yEAAyE;AACzE,KAAK,cAAc,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAA;AAKzD,wBAAgB,kBAAkB,IAAI,WAAW,CAAC,cAAc,EAAE,eAAe,CAAC,CAEjF;AAED,sEAAsE;AACtE,wBAAgB,oBAAoB,IAAI,IAAI,CAE3C;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,cAAc,GAAG,eAAe,GAAG,SAAS,CAEtF;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,YAAY,CAAC;IAAC,EAAE,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,cAAc,CAU3F;AAED;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,kBAAkB,CAmB9D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAEjF;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,GAAG,MAAM,GAC3B,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAE3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,IAAI,cAAc,CAEvC"}
|
|
@@ -39,10 +39,21 @@ export function Service(options = {}) {
|
|
|
39
39
|
* @implements FR16
|
|
40
40
|
*/
|
|
41
41
|
export function Inject(token) {
|
|
42
|
-
return (target,
|
|
43
|
-
|
|
42
|
+
return (target, propertyKey, parameterIndex) => {
|
|
43
|
+
// A constructor parameter reports no property key and lands on the class;
|
|
44
|
+
// a method parameter lands on the prototype and MUST be keyed by method
|
|
45
|
+
// name, or every method of the class would share one map and overwrite
|
|
46
|
+
// each other's tokens.
|
|
47
|
+
const existingTokens = (propertyKey === undefined
|
|
48
|
+
? Reflect.getOwnMetadata(INJECT_METADATA_KEY, target)
|
|
49
|
+
: Reflect.getOwnMetadata(INJECT_METADATA_KEY, target, propertyKey)) ?? new Map();
|
|
44
50
|
existingTokens.set(parameterIndex, token);
|
|
45
|
-
|
|
51
|
+
if (propertyKey === undefined) {
|
|
52
|
+
Reflect.defineMetadata(INJECT_METADATA_KEY, existingTokens, target);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
Reflect.defineMetadata(INJECT_METADATA_KEY, existingTokens, target, propertyKey);
|
|
56
|
+
}
|
|
46
57
|
};
|
|
47
58
|
}
|
|
48
59
|
/**
|
|
@@ -51,6 +62,15 @@ export function Inject(token) {
|
|
|
51
62
|
export function getInjectTokens(target) {
|
|
52
63
|
return Reflect.getOwnMetadata(INJECT_METADATA_KEY, target) ?? new Map();
|
|
53
64
|
}
|
|
65
|
+
/**
|
|
66
|
+
* Get named injection tokens for one method's parameters.
|
|
67
|
+
*
|
|
68
|
+
* `target` is the prototype carrying the method — that is where a parameter
|
|
69
|
+
* decorator on a method writes.
|
|
70
|
+
*/
|
|
71
|
+
export function getMethodInjectTokens(target, propertyKey) {
|
|
72
|
+
return Reflect.getOwnMetadata(INJECT_METADATA_KEY, target, propertyKey) ?? new Map();
|
|
73
|
+
}
|
|
54
74
|
/**
|
|
55
75
|
* @inject() class decorator — marks a controller (or service) for transient IoC resolution.
|
|
56
76
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/decorators/Service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,kBAAkB,CAAA;AAGzB,MAAM,oBAAoB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;AACnD,MAAM,mBAAmB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;AAKjD,0CAA0C;AAC1C,MAAM,eAAe,GAAyC,IAAI,GAAG,EAAE,CAAA;AAEvE,MAAM,UAAU,kBAAkB;IAChC,OAAO,eAAe,CAAA;AACxB,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,oBAAoB;IAClC,eAAe,CAAC,KAAK,EAAE,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAsB;IACvD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,UAAiD,EAAE;IACzE,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAoB;YAChC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,WAAW;YACnC,EAAE,EAAE,OAAO,CAAC,EAAE;SACf,CAAA;QACD,qIAAqI;QACrI,eAAe,CAAC,GAAG,CAAC,MAA+B,EAAE,QAAQ,CAAC,CAAA;QAC9D,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAChE,CAAC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,KAAmB;IACxC,OAAO,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"Service.js","sourceRoot":"","sources":["../../src/decorators/Service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,kBAAkB,CAAA;AAGzB,MAAM,oBAAoB,GAAG,MAAM,CAAC,cAAc,CAAC,CAAA;AACnD,MAAM,mBAAmB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;AAKjD,0CAA0C;AAC1C,MAAM,eAAe,GAAyC,IAAI,GAAG,EAAE,CAAA;AAEvE,MAAM,UAAU,kBAAkB;IAChC,OAAO,eAAe,CAAA;AACxB,CAAC;AAED,sEAAsE;AACtE,MAAM,UAAU,oBAAoB;IAClC,eAAe,CAAC,KAAK,EAAE,CAAA;AACzB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAsB;IACvD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,UAAiD,EAAE;IACzE,OAAO,CAAC,MAAM,EAAE,EAAE;QAChB,MAAM,QAAQ,GAAoB;YAChC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,WAAW;YACnC,EAAE,EAAE,OAAO,CAAC,EAAE;SACf,CAAA;QACD,qIAAqI;QACrI,eAAe,CAAC,GAAG,CAAC,MAA+B,EAAE,QAAQ,CAAC,CAAA;QAC9D,OAAO,CAAC,cAAc,CAAC,oBAAoB,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;IAChE,CAAC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAAC,KAAmB;IACxC,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,EAAE;QAC7C,0EAA0E;QAC1E,wEAAwE;QACxE,uEAAuE;QACvE,uBAAuB;QACvB,MAAM,cAAc,GAClB,CAAC,WAAW,KAAK,SAAS;YACxB,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,CAAC;YACrD,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,IAAI,IAAI,GAAG,EAAE,CAAA;QAEpF,cAAc,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAA;QAEzC,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,cAAc,EAAE,MAAM,CAAC,CAAA;QACrE,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,cAAc,EAAE,MAAM,EAAE,WAAW,CAAC,CAAA;QAClF,CAAC;IACH,CAAC,CAAA;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,MAAsB;IACpD,OAAO,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAA;AACzE,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,MAAc,EACd,WAA4B;IAE5B,OAAO,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE,WAAW,CAAC,IAAI,IAAI,GAAG,EAAE,CAAA;AACtF,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,MAAM;IACpB,OAAO,OAAO,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAA;AACxC,CAAC"}
|
package/dist/env/Env.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type IdentifierResolver } from './interpolate.js';
|
|
1
2
|
import { type SchemaNode } from './schema.js';
|
|
2
3
|
/**
|
|
3
4
|
* Type-safe environment access — mirrors `@adonisjs/core/env`:
|
|
@@ -37,11 +38,22 @@ export declare class Env<Values extends Record<string, unknown>> {
|
|
|
37
38
|
static readonly schema: {
|
|
38
39
|
string: ((options?: import("./schema.js").StringOptions) => import("./schema.js").RequiredNode<string>) & {
|
|
39
40
|
optional(options?: import("./schema.js").StringOptions): SchemaNode<string | undefined>;
|
|
41
|
+
optionalWhen(condition: import("./schema.js").OptionalCondition, options?: import("./schema.js").StringOptions): SchemaNode<string | undefined>;
|
|
42
|
+
};
|
|
43
|
+
number: (options?: import("./schema.js").SchemaFnOptions) => import("./schema.js").RequiredNode<number>;
|
|
44
|
+
boolean: (options?: import("./schema.js").SchemaFnOptions) => import("./schema.js").RequiredNode<boolean>;
|
|
45
|
+
enum: <V extends readonly string[]>(values: V, options?: import("./schema.js").SchemaFnOptions) => import("./schema.js").RequiredNode<V[number]>;
|
|
46
|
+
secret: ((options?: import("./schema.js").SchemaFnOptions) => import("./schema.js").RequiredNode<import("./Secret.js").Secret<string>>) & {
|
|
47
|
+
optional(options?: import("./schema.js").SchemaFnOptions): SchemaNode<import("./Secret.js").Secret<string> | undefined>;
|
|
48
|
+
optionalWhen(condition: import("./schema.js").OptionalCondition, options?: import("./schema.js").SchemaFnOptions): SchemaNode<import("./Secret.js").Secret<string> | undefined>;
|
|
40
49
|
};
|
|
41
|
-
number: () => import("./schema.js").RequiredNode<number>;
|
|
42
|
-
boolean: () => import("./schema.js").RequiredNode<boolean>;
|
|
43
|
-
enum: <V extends readonly string[]>(values: V) => import("./schema.js").RequiredNode<V[number]>;
|
|
44
50
|
};
|
|
51
|
+
/** Register an interpolation identifier (AdonisJS `Env.defineIdentifier`). */
|
|
52
|
+
static defineIdentifier(name: string, resolver: IdentifierResolver): void;
|
|
53
|
+
/** Register an identifier only if the name is free (AdonisJS `defineIdentifierIfMissing`). */
|
|
54
|
+
static defineIdentifierIfMissing(name: string, resolver: IdentifierResolver): void;
|
|
55
|
+
/** Remove a registered interpolation identifier (AdonisJS `Env.removeIdentifier`). */
|
|
56
|
+
static removeIdentifier(name: string): void;
|
|
45
57
|
private constructor();
|
|
46
58
|
/**
|
|
47
59
|
* Load `.env*` files, validate `process.env` against `schema`, and return a
|
|
@@ -49,9 +61,22 @@ export declare class Env<Values extends Record<string, unknown>> {
|
|
|
49
61
|
* failure) if validation fails.
|
|
50
62
|
*/
|
|
51
63
|
static create<S extends Record<string, SchemaNode<unknown>>>(appRoot: URL, schema: S): Promise<Env<EnvRecord<S>>>;
|
|
52
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* Read a variable. Validated keys are typed; for any other key the raw
|
|
66
|
+
* `process.env` value is returned as a fallback (AdonisJS `env.get`
|
|
67
|
+
* semantics). Required keys are always present; optional keys may be
|
|
68
|
+
* `undefined`. The second argument is the default when nothing is found.
|
|
69
|
+
*/
|
|
53
70
|
get<K extends keyof Values>(key: K): Values[K];
|
|
54
71
|
get<K extends keyof Values>(key: K, fallback: Values[K]): Values[K];
|
|
72
|
+
get(key: string): string | undefined;
|
|
73
|
+
get(key: string, fallback: string): string;
|
|
74
|
+
/**
|
|
75
|
+
* Set/override a variable at runtime (AdonisJS `env.set`). Updates the cache
|
|
76
|
+
* AND `process.env`. The value is NOT re-validated — pass the correct type.
|
|
77
|
+
*/
|
|
78
|
+
set<K extends keyof Values>(key: K, value: Values[K]): void;
|
|
79
|
+
set(key: string, value: string): void;
|
|
55
80
|
}
|
|
56
81
|
export {};
|
|
57
82
|
//# sourceMappingURL=Env.d.ts.map
|
package/dist/env/Env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Env.d.ts","sourceRoot":"","sources":["../../src/env/Env.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Env.d.ts","sourceRoot":"","sources":["../../src/env/Env.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,kBAAkB,EAExB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,KAAK,UAAU,EAAU,MAAM,aAAa,CAAA;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,yDAAyD;AACzD,KAAK,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;AAE7D,kEAAkE;AAClE,KAAK,SAAS,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI;KAC7D,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAChC,CAAA;AAED,qEAAqE;AACrE,qBAAa,sBAAuB,SAAQ,KAAK;IAC/C,sFAAsF;IACtF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;gBACT,QAAQ,EAAE,MAAM,EAAE;CAK/B;AAED,qBAAa,GAAG,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;IACrD,4EAA4E;IAC5E,MAAM,CAAC,QAAQ,CAAC,MAAM;;;;;;;;;;;;MAAS;IAE/B,8EAA8E;IAC9E,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIzE,8FAA8F;IAC9F,MAAM,CAAC,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAIlF,sFAAsF;IACtF,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3C,OAAO;IAIP;;;;OAIG;WACU,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,EAC/D,OAAO,EAAE,GAAG,EACZ,MAAM,EAAE,CAAC,GACR,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAqB7B;;;;;OAKG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IAC9C,GAAG,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC;IACnE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IACpC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAU1C;;;OAGG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI;IAC3D,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;CAOtC"}
|