@venizia/ignis-inversion 0.2.0-22 → 0.2.0-24
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 +83 -117
- package/dist/cjs/modules/registry/registry.d.ts.map +1 -1
- package/dist/cjs/modules/registry/registry.js +3 -1
- package/dist/cjs/modules/registry/registry.js.map +1 -1
- package/dist/esm/common/index.d.ts +4 -4
- package/dist/esm/common/index.js +4 -4
- package/dist/esm/common/utilities.d.ts +1 -1
- package/dist/esm/index.d.ts +2 -2
- package/dist/esm/index.js +4 -4
- package/dist/esm/modules/binding/binding.d.ts +5 -5
- package/dist/esm/modules/binding/binding.js +4 -4
- package/dist/esm/modules/binding/common/constants.d.ts +1 -1
- package/dist/esm/modules/binding/common/constants.js +1 -1
- package/dist/esm/modules/binding/common/index.d.ts +2 -2
- package/dist/esm/modules/binding/common/index.js +2 -2
- package/dist/esm/modules/binding/common/types.d.ts +3 -3
- package/dist/esm/modules/binding/index.d.ts +2 -2
- package/dist/esm/modules/binding/index.js +2 -2
- package/dist/esm/modules/container/abstract.d.ts +5 -5
- package/dist/esm/modules/container/abstract.js +1 -1
- package/dist/esm/modules/container/base.d.ts +4 -4
- package/dist/esm/modules/container/base.js +5 -5
- package/dist/esm/modules/container/common/index.d.ts +1 -1
- package/dist/esm/modules/container/common/index.js +1 -1
- package/dist/esm/modules/container/common/types.d.ts +3 -3
- package/dist/esm/modules/container/container.d.ts +2 -2
- package/dist/esm/modules/container/container.js +3 -3
- package/dist/esm/modules/container/index.d.ts +4 -4
- package/dist/esm/modules/container/index.js +4 -4
- package/dist/esm/modules/error/app-error.d.ts +1 -1
- package/dist/esm/modules/error/app-error.js +2 -2
- package/dist/esm/modules/error/common/index.d.ts +1 -1
- package/dist/esm/modules/error/common/index.js +1 -1
- package/dist/esm/modules/error/common/types.d.ts +1 -1
- package/dist/esm/modules/error/definition.d.ts +1 -1
- package/dist/esm/modules/error/index.d.ts +4 -4
- package/dist/esm/modules/error/index.js +4 -4
- package/dist/esm/modules/error/message-code.d.ts +2 -2
- package/dist/esm/modules/index.d.ts +5 -5
- package/dist/esm/modules/index.js +5 -5
- package/dist/esm/modules/metadata/common/index.d.ts +1 -1
- package/dist/esm/modules/metadata/common/index.js +1 -1
- package/dist/esm/modules/metadata/index.d.ts +2 -2
- package/dist/esm/modules/metadata/index.js +2 -2
- package/dist/esm/modules/metadata/injectors.d.ts +2 -2
- package/dist/esm/modules/metadata/injectors.js +2 -2
- package/dist/esm/modules/registry/common/index.d.ts +1 -1
- package/dist/esm/modules/registry/common/index.js +1 -1
- package/dist/esm/modules/registry/common/types.d.ts +1 -1
- package/dist/esm/modules/registry/index.d.ts +2 -2
- package/dist/esm/modules/registry/index.js +2 -2
- package/dist/esm/modules/registry/registry.d.ts +3 -3
- package/dist/esm/modules/registry/registry.d.ts.map +1 -1
- package/dist/esm/modules/registry/registry.js +6 -4
- package/dist/esm/modules/registry/registry.js.map +1 -1
- package/dist/esm/package.json +6 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,47 +1,23 @@
|
|
|
1
|
-
|
|
1
|
+
# @venizia/ignis-inversion
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
**A small IoC container that works anywhere.**
|
|
8
|
-
|
|
9
|
-
[](https://ignis.venizia.ai/references/base/dependency-injection)
|
|
10
|
-
[](https://www.npmjs.com/package/@venizia/ignis-inversion)
|
|
11
|
-
[](https://opensource.org/licenses/MIT)
|
|
12
|
-
[](https://www.typescriptlang.org/)
|
|
13
|
-
|
|
14
|
-
[Documentation](https://ignis.venizia.ai/references/base/dependency-injection) •
|
|
15
|
-
[Core API](https://ignis.venizia.ai/references/) •
|
|
16
|
-
[Changelog](https://ignis.venizia.ai/changelogs/)
|
|
17
|
-
|
|
18
|
-
</div>
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
The dependency injection container behind [IGNIS](https://ignis.venizia.ai) - decorator-driven
|
|
23
|
-
constructor and property injection, a fluent binding API, singleton/transient scopes, and tag-based
|
|
24
|
-
discovery, in roughly 350 lines.
|
|
25
|
-
|
|
26
|
-
It has no framework dependency. Reach for it when you want LoopBack 4-style DI without adopting a
|
|
27
|
-
framework, and it is small enough to ship into a browser bundle. IGNIS itself uses nothing more than
|
|
28
|
-
what is documented here.
|
|
3
|
+
The dependency injection container under IGNIS, and the error type every IGNIS package throws. It
|
|
4
|
+
depends on no other IGNIS package, so you can install it alone to get LoopBack 4-style bindings
|
|
5
|
+
without the framework.
|
|
29
6
|
|
|
30
7
|
## Install
|
|
31
8
|
|
|
32
9
|
```bash
|
|
33
|
-
bun add @venizia/ignis-inversion
|
|
10
|
+
bun add @venizia/ignis-inversion
|
|
34
11
|
```
|
|
35
12
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
> declared **inline**. Bun does not resolve them through `extends`, and `@inject` is silently
|
|
39
|
-
> dropped without them.
|
|
13
|
+
`reflect-metadata` comes as a dependency, and the package entry imports it. Your `tsconfig.json`
|
|
14
|
+
must declare `experimentalDecorators: true` itself (see [Decorators](#decorators)).
|
|
40
15
|
|
|
41
|
-
##
|
|
16
|
+
## Use it
|
|
17
|
+
|
|
18
|
+
Bind values and classes under string keys, then ask the container for a key.
|
|
42
19
|
|
|
43
20
|
```typescript
|
|
44
|
-
import 'reflect-metadata';
|
|
45
21
|
import { BindingScopes, Container, inject } from '@venizia/ignis-inversion';
|
|
46
22
|
|
|
47
23
|
class GreetingService {
|
|
@@ -55,7 +31,7 @@ class GreetingService {
|
|
|
55
31
|
}
|
|
56
32
|
}
|
|
57
33
|
|
|
58
|
-
const container = new Container(
|
|
34
|
+
const container = new Container();
|
|
59
35
|
|
|
60
36
|
container.bind({ key: 'config.prefix' }).toValue('Hello');
|
|
61
37
|
container
|
|
@@ -66,119 +42,109 @@ container
|
|
|
66
42
|
const service = container.get<GreetingService>({ key: 'services.GreetingService' });
|
|
67
43
|
console.log(service.greet('IGNIS')); // Hello IGNIS (en)
|
|
68
44
|
|
|
69
|
-
//
|
|
70
|
-
container.findByTag({ tag: 'services' }); // [
|
|
45
|
+
// The first segment of a dotted key becomes a tag.
|
|
46
|
+
container.findByTag({ tag: 'services' }); // [the 'services.GreetingService' binding]
|
|
71
47
|
```
|
|
72
48
|
|
|
73
|
-
|
|
49
|
+
Notice that `config.locale` is never bound. `isOptional: true` makes it resolve to `undefined`
|
|
50
|
+
instead of throwing.
|
|
74
51
|
|
|
75
|
-
|
|
52
|
+
## API
|
|
76
53
|
|
|
77
|
-
|
|
54
|
+
Every method takes an options object: `container.get({ key })`, never `container.get(key)`.
|
|
78
55
|
|
|
79
|
-
|
|
|
56
|
+
| Container member | What it does |
|
|
80
57
|
| :--- | :--- |
|
|
81
|
-
| `new Container({ scope })` | The default container. `AbstractContainer` (contract) and `BaseContainer` (storage) are exported for custom implementations |
|
|
82
58
|
| `bind<T>({ key })` | Creates and registers a `Binding`, returned for chaining |
|
|
83
|
-
| `get<T>({ key, isOptional })` | Resolves a
|
|
84
|
-
| `gets
|
|
85
|
-
| `getBinding
|
|
86
|
-
| `
|
|
87
|
-
| `
|
|
88
|
-
| `
|
|
89
|
-
| `
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
### Binding
|
|
93
|
-
|
|
94
|
-
| Member | What it does |
|
|
59
|
+
| `get<T>({ key, isOptional })` | Resolves a key. Throws when the key is unbound, unless `isOptional` is `true`. `key` may also be `{ namespace, key }` |
|
|
60
|
+
| `gets({ bindings })` | Resolves several keys; every entry is optional |
|
|
61
|
+
| `getBinding({ key })`, `isBound({ key })`, `unbind({ key })`, `set({ binding })` | Read, test, remove, or register a `Binding` |
|
|
62
|
+
| `instantiate(cls)` / `resolve(cls)` | Builds a class from its `@inject` metadata without binding it |
|
|
63
|
+
| `findByTag({ tag, exclude })` | Every binding with a tag; `exclude` takes an array or a `Set` of keys |
|
|
64
|
+
| `clear()` / `reset()` | Drops cached singletons / drops every binding |
|
|
65
|
+
| `startResolutionCounting()`, `getResolutionCounts()`, `stopResolutionCounting()` | Counts how often each key is resolved, off by default |
|
|
66
|
+
|
|
67
|
+
| Binding member | What it does |
|
|
95
68
|
| :--- | :--- |
|
|
96
|
-
|
|
|
97
|
-
|
|
|
98
|
-
|
|
|
99
|
-
|
|
|
100
|
-
|
|
|
101
|
-
|
|
|
102
|
-
| `.clearCache()` | Discards a cached singleton instance |
|
|
69
|
+
| `toValue(value)` | Returns the value as-is |
|
|
70
|
+
| `toClass(Class)` | Instantiates the class through the container |
|
|
71
|
+
| `toProvider(factory)` | Calls `(container) => T`, or instantiates a class with a `value(container)` method |
|
|
72
|
+
| `setScope(scope)` | `BindingScopes.TRANSIENT` (default) or `BindingScopes.SINGLETON` |
|
|
73
|
+
| `setTags(...tags)`, `hasTag(tag)`, `getTags()` | Tags for `findByTag` |
|
|
74
|
+
| `clearCache()` | Discards the cached singleton |
|
|
103
75
|
|
|
104
|
-
|
|
76
|
+
`AbstractContainer` (the contract) and `BaseContainer` (the storage) are exported for custom
|
|
77
|
+
containers. `BindingKeys.build({ namespace, key })` joins a namespace and a key with a dot.
|
|
105
78
|
|
|
106
|
-
|
|
107
|
-
| :--- | :--- | :--- |
|
|
108
|
-
| `@inject({ key, isOptional? })` | Constructor parameter | Resolved by index and passed to the constructor |
|
|
109
|
-
| `@inject({ key, isOptional? })` | Property | Assigned after construction |
|
|
79
|
+
## Decorators
|
|
110
80
|
|
|
111
|
-
|
|
112
|
-
|
|
81
|
+
`@inject` marks a constructor parameter or a property. Pass a `key`, or a `target` class to
|
|
82
|
+
resolve through the key that class was registered under.
|
|
113
83
|
|
|
114
|
-
|
|
84
|
+
| Option | Type | Meaning |
|
|
85
|
+
| :--- | :--- | :--- |
|
|
86
|
+
| `key` | `string \| symbol` | The binding key to resolve |
|
|
87
|
+
| `target` | class, or a function returning one | Resolve the class's recorded key. The function form survives an import cycle |
|
|
88
|
+
| `isOptional` | `boolean` | Resolve an unbound key to `undefined` instead of throwing |
|
|
115
89
|
|
|
116
|
-
|
|
117
|
-
| :--- | :--- |
|
|
118
|
-
| `BindingKeys.build({ namespace, key })` | Joins the two with a dot. `key` is required; an empty namespace yields the bare key |
|
|
119
|
-
| Namespace auto-tagging | A dotted key tags its binding with the first segment - `services.UserService` is tagged `services` |
|
|
120
|
-
| `BindingScopes` | `SINGLETON`, `TRANSIENT` |
|
|
121
|
-
| `BindingValueTypes` | `CLASS`, `VALUE`, `PROVIDER` - the resolver kinds |
|
|
90
|
+
Constructor parameters resolve before construction. Properties are assigned after it.
|
|
122
91
|
|
|
123
|
-
|
|
92
|
+
> [!IMPORTANT]
|
|
93
|
+
> Declare `experimentalDecorators: true` in your own `tsconfig.json`, not only through `extends`.
|
|
94
|
+
> Bun can miss an inherited flag when it runs source, and then drops parameter decorators with no
|
|
95
|
+
> error. `emitDecoratorMetadata` is not needed: `@inject` records the parameter index itself.
|
|
124
96
|
|
|
125
|
-
|
|
97
|
+
Decorate every constructor parameter of a class the container builds. An undecorated parameter
|
|
98
|
+
before a decorated one is refused with `Constructor parameter N has no @inject`. An undecorated
|
|
99
|
+
trailing parameter receives `undefined`.
|
|
126
100
|
|
|
127
101
|
## Errors
|
|
128
102
|
|
|
129
|
-
|
|
130
|
-
consumer gets it for free. Never throw a raw `new Error`.
|
|
103
|
+
The package also holds the error type the whole framework throws.
|
|
131
104
|
|
|
132
105
|
```typescript
|
|
133
106
|
import { getError, isApplicationError } from '@venizia/ignis-inversion';
|
|
134
107
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
108
|
+
try {
|
|
109
|
+
throw getError({
|
|
110
|
+
message: { text: 'User not found', code: 'user.not_found', args: { id: 42 } },
|
|
111
|
+
statusCode: 404,
|
|
112
|
+
});
|
|
113
|
+
} catch (error) {
|
|
114
|
+
if (isApplicationError(error)) {
|
|
115
|
+
console.log(error.statusCode, error.normalized); // 404 { text, code, args }
|
|
116
|
+
}
|
|
117
|
+
}
|
|
139
118
|
```
|
|
140
119
|
|
|
141
|
-
`getError` returns an `ApplicationError
|
|
142
|
-
|
|
120
|
+
`getError` returns an `ApplicationError`, an `Error` subclass. It carries `statusCode` (default
|
|
121
|
+
`400`), `normalized` (`{ text, code, args }`) and an optional `extra` bag. A bare string `message`
|
|
122
|
+
becomes `text`. A missing code becomes `MessageCode.DEFAULT` (`core.system_error`). Unknown
|
|
123
|
+
top-level keys go into `extra`.
|
|
143
124
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
| `text` | The human-readable message |
|
|
147
|
-
| `code` | A dotted, lower snake_case message code. Falls back to `MessageCode.DEFAULT` (`core.system_error`) |
|
|
148
|
-
| `args` | Interpolation arguments, `{}` when there are none |
|
|
149
|
-
|
|
150
|
-
`message` also accepts a bare string, which becomes `text`. Unknown top-level keys are swept into
|
|
151
|
-
`extra`, so a throw site can attach context the framework does not model.
|
|
152
|
-
|
|
153
|
-
> [!IMPORTANT]
|
|
154
|
-
> Check errors with `isApplicationError(error)`, never `instanceof ApplicationError`. Several
|
|
155
|
-
> packages can carry their own copy of the class, so `instanceof` fails across package boundaries.
|
|
156
|
-
|
|
157
|
-
Also exported: `ApplicationError`, `MessageCode`, `ErrorScopes`, and the `TError*` types. Catalogued
|
|
158
|
-
errors are declared as `TErrorDefinition` objects and thrown with `getError({ error: Definition })`.
|
|
125
|
+
Test with `isApplicationError(error)`, not `instanceof ApplicationError`. A CommonJS copy and an
|
|
126
|
+
ES module copy of the package can both be loaded, and `instanceof` fails across them.
|
|
159
127
|
|
|
160
|
-
##
|
|
128
|
+
## Entry points
|
|
161
129
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
`super({ ... })` or onto a binding, never as a bare parameter.
|
|
130
|
+
| Entry point | What it gives | Extra peers |
|
|
131
|
+
| :--- | :--- | :--- |
|
|
132
|
+
| `@venizia/ignis-inversion` | Everything: container, bindings, `@inject`, `MetadataRegistry`, errors | none |
|
|
166
133
|
|
|
167
|
-
|
|
168
|
-
|
|
134
|
+
The package ships both CommonJS (`dist/cjs`) and ES modules (`dist/esm`). `import` resolves the ES
|
|
135
|
+
build, `require` the CommonJS one. The ES build is what a browser bundle takes.
|
|
169
136
|
|
|
170
|
-
|
|
171
|
-
that loads two copies gets two metadata stores and silently empty injection.
|
|
137
|
+
## Where it sits
|
|
172
138
|
|
|
173
|
-
|
|
174
|
-
|
|
139
|
+
Depends on nothing in IGNIS. Used by filter, helpers and kernel: dev-configs -> **inversion** ->
|
|
140
|
+
{filter, helpers} -> {boot, kernel} -> connectors -> {core-worker, core-server} -> atlas.
|
|
175
141
|
|
|
176
142
|
## Links
|
|
177
143
|
|
|
178
|
-
[
|
|
179
|
-
[Dependency injection](https://ignis.venizia.ai/references/base/dependency-injection)
|
|
180
|
-
[
|
|
181
|
-
[
|
|
182
|
-
[
|
|
144
|
+
- [Inversion (DI) guide](https://ignis.venizia.ai/extensions/helpers/inversion/)
|
|
145
|
+
- [Dependency injection reference](https://ignis.venizia.ai/references/base/dependency-injection)
|
|
146
|
+
- [Error handling](https://ignis.venizia.ai/extensions/helpers/error/)
|
|
147
|
+
- [Changelog](https://ignis.venizia.ai/changelogs/)
|
|
148
|
+
- [Source](https://github.com/VENIZIA-AI/ignis/blob/main/packages/inversion)
|
|
183
149
|
|
|
184
|
-
MIT licensed
|
|
150
|
+
MIT licensed - see [LICENSE.md](./LICENSE.md).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/modules/registry/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAqB,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEvF,+EAA+E;AAC/E,qBAAa,gBAAiB,SAAQ,UAAU;;IAK9C,MAAM,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE;QACxD,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,WAAW,CAAC;QACjB,KAAK,EAAE,KAAK,CAAC;KACd,GAAG,IAAI;IAaR,GAAG,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE;QACrD,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,WAAW,CAAC;KAClB,GAAG,KAAK,GAAG,SAAS;IAKrB,GAAG,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO;IAKxF,MAAM,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO;IAK3F,OAAO,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW,EAAE;IAShF,cAAc,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG,MAAM,EAAE;IAS9D,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GAAG,IAAI;IASnE,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QACnD,MAAM,EAAE,CAAC,CAAC;QACV,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;QAC9B,QAAQ,EAAE,iBAAiB,CAAC;KAC7B,GAAG,IAAI;IAUR,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QACrD,MAAM,EAAE,CAAC,CAAC;KACX,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,iBAAiB,CAAC,GAAG,SAAS;IAKvD,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QACnD,MAAM,EAAE,CAAC,CAAC;QACV,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;KAC/B,GAAG,iBAAiB,GAAG,SAAS;IAMjC,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QACjD,MAAM,EAAE,CAAC,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC;KAC3B,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/modules/registry/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,7 +63,9 @@ class MetadataRegistry extends base_helper_1.BaseHelper {
|
|
|
63
63
|
}
|
|
64
64
|
setInjectMetadata(opts) {
|
|
65
65
|
const { target, index, metadata } = opts;
|
|
66
|
-
|
|
66
|
+
// Copy-on-write: the inherited list belongs to the parent class and every sibling subclass reads it.
|
|
67
|
+
const own = Reflect.getOwnMetadata(constants_1.MetadataKeys.INJECT, target);
|
|
68
|
+
const injects = own ?? [...(Reflect.getMetadata(constants_1.MetadataKeys.INJECT, target) ?? [])];
|
|
67
69
|
injects[index] = metadata;
|
|
68
70
|
Reflect.defineMetadata(constants_1.MetadataKeys.INJECT, injects, target);
|
|
69
71
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/modules/registry/registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/modules/registry/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './base-helper';
|
|
2
|
-
export * from './logger';
|
|
3
|
-
export * from './types';
|
|
4
|
-
export * from './utilities';
|
|
1
|
+
export * from './base-helper.js';
|
|
2
|
+
export * from './logger.js';
|
|
3
|
+
export * from './types.js';
|
|
4
|
+
export * from './utilities.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/esm/common/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './base-helper';
|
|
2
|
-
export * from './logger';
|
|
3
|
-
export * from './types';
|
|
4
|
-
export * from './utilities';
|
|
1
|
+
export * from './base-helper.js';
|
|
2
|
+
export * from './logger.js';
|
|
3
|
+
export * from './types.js';
|
|
4
|
+
export * from './utilities.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AnyType, TClass, TInjectTarget, TValueOrAsyncResolver, TValueOrResolver } from './types';
|
|
1
|
+
import type { AnyType, TClass, TInjectTarget, TValueOrAsyncResolver, TValueOrResolver } from './types.js';
|
|
2
2
|
/**
|
|
3
3
|
* True for a value carrying nothing: `null`/`undefined`, an empty string, array, `Map`, `Set`, or an
|
|
4
4
|
* object with no own enumerable keys. A number, boolean or function is empty too - it holds no
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
-
import { getError } from './modules/error/app-error';
|
|
3
|
-
import { MessageCode } from './modules/error/message-code';
|
|
4
|
-
export * from './common';
|
|
5
|
-
export * from './modules';
|
|
2
|
+
import { getError } from './modules/error/app-error.js';
|
|
3
|
+
import { MessageCode } from './modules/error/message-code.js';
|
|
4
|
+
export * from './common/index.js';
|
|
5
|
+
export * from './modules/index.js';
|
|
6
6
|
// Lives in the package entry, the one module every consumer evaluates and the only one
|
|
7
7
|
// declared in `sideEffects`: a bundler keeps it, so MessageCode throws ApplicationError in a
|
|
8
8
|
// bundle too.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { BaseHelper } from '../../common/base-helper';
|
|
2
|
-
import { TClass, TConstValue } from '../../common/types';
|
|
3
|
-
import type { IContainer } from '../container/common/types';
|
|
4
|
-
import { BindingValueTypes, TBindingScope } from './common/constants';
|
|
5
|
-
import { IBinding, TBindingProvider, TBindingResolverValue } from './common/types';
|
|
1
|
+
import { BaseHelper } from '../../common/base-helper.js';
|
|
2
|
+
import { TClass, TConstValue } from '../../common/types.js';
|
|
3
|
+
import type { IContainer } from '../container/common/types.js';
|
|
4
|
+
import { BindingValueTypes, TBindingScope } from './common/constants.js';
|
|
5
|
+
import { IBinding, TBindingProvider, TBindingResolverValue } from './common/types.js';
|
|
6
6
|
export declare class Binding<T = any> extends BaseHelper implements IBinding<T> {
|
|
7
7
|
key: string;
|
|
8
8
|
private bindScope;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { getError } from '../error';
|
|
2
|
-
import { BaseHelper } from '../../common/base-helper';
|
|
3
|
-
import { BindingScopes, BindingValueTypes } from './common/constants';
|
|
4
|
-
import { isClassProvider } from './common/types';
|
|
1
|
+
import { getError } from '../error/index.js';
|
|
2
|
+
import { BaseHelper } from '../../common/base-helper.js';
|
|
3
|
+
import { BindingScopes, BindingValueTypes } from './common/constants.js';
|
|
4
|
+
import { isClassProvider } from './common/types.js';
|
|
5
5
|
export class Binding extends BaseHelper {
|
|
6
6
|
constructor(opts) {
|
|
7
7
|
super({ scope: opts.key });
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './constants';
|
|
2
|
-
export * from './types';
|
|
1
|
+
export * from './constants.js';
|
|
2
|
+
export * from './types.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './constants';
|
|
2
|
-
export * from './types';
|
|
1
|
+
export * from './constants.js';
|
|
2
|
+
export * from './types.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { IContainer } from '../../container/common/types';
|
|
2
|
-
import { TClass, TConstValue } from '../../../common/types';
|
|
3
|
-
import type { BindingValueTypes, TBindingScope } from './constants';
|
|
1
|
+
import type { IContainer } from '../../container/common/types.js';
|
|
2
|
+
import { TClass, TConstValue } from '../../../common/types.js';
|
|
3
|
+
import type { BindingValueTypes, TBindingScope } from './constants.js';
|
|
4
4
|
export interface IProvider<T> {
|
|
5
5
|
value(container: IContainer): T;
|
|
6
6
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './binding';
|
|
2
|
-
export * from './common';
|
|
1
|
+
export * from './binding.js';
|
|
2
|
+
export * from './common/index.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './binding';
|
|
2
|
-
export * from './common';
|
|
1
|
+
export * from './binding.js';
|
|
2
|
+
export * from './common/index.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { BaseHelper } from '../../common/base-helper';
|
|
2
|
-
import type { TBindingKey, TClass, TNullable } from '../../common/types';
|
|
3
|
-
import type { IBinding } from '../binding/common/types';
|
|
4
|
-
import type { MetadataRegistry } from '../registry/registry';
|
|
5
|
-
import type { IContainer } from './common/types';
|
|
1
|
+
import { BaseHelper } from '../../common/base-helper.js';
|
|
2
|
+
import type { TBindingKey, TClass, TNullable } from '../../common/types.js';
|
|
3
|
+
import type { IBinding } from '../binding/common/types.js';
|
|
4
|
+
import type { MetadataRegistry } from '../registry/registry.js';
|
|
5
|
+
import type { IContainer } from './common/types.js';
|
|
6
6
|
/** Container CONTRACT as a class, typed against `IBinding` - implementations sharing no storage start here; ones that only vary resolution start at `BaseContainer`. */
|
|
7
7
|
export declare abstract class AbstractContainer extends BaseHelper implements IContainer {
|
|
8
8
|
constructor(opts?: {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BaseHelper } from '../../common/base-helper';
|
|
1
|
+
import { BaseHelper } from '../../common/base-helper.js';
|
|
2
2
|
/** Container CONTRACT as a class, typed against `IBinding` - implementations sharing no storage start here; ones that only vary resolution start at `BaseContainer`. */
|
|
3
3
|
export class AbstractContainer extends BaseHelper {
|
|
4
4
|
constructor(opts) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { TBindingKey, TClass, TNullable } from '../../common/types';
|
|
2
|
-
import { Binding } from '../binding/binding';
|
|
3
|
-
import { AbstractContainer } from './abstract';
|
|
1
|
+
import { TBindingKey, TClass, TNullable } from '../../common/types.js';
|
|
2
|
+
import { Binding } from '../binding/binding.js';
|
|
3
|
+
import { AbstractContainer } from './abstract.js';
|
|
4
4
|
/** Storage half of the container, keyed by normalized binding-key strings - resolution (`instantiate`) stays abstract, it is the part an implementation swaps. */
|
|
5
5
|
export declare abstract class BaseContainer extends AbstractContainer {
|
|
6
6
|
protected bindings: Map<string, Binding<any>>;
|
|
@@ -13,7 +13,7 @@ export declare abstract class BaseContainer extends AbstractContainer {
|
|
|
13
13
|
constructor(opts?: {
|
|
14
14
|
scope: string;
|
|
15
15
|
});
|
|
16
|
-
getMetadataRegistry(): import("
|
|
16
|
+
getMetadataRegistry(): import("../index.js").MetadataRegistry;
|
|
17
17
|
bind<T>(opts: {
|
|
18
18
|
key: TBindingKey;
|
|
19
19
|
}): Binding<T>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Binding } from '../binding/binding';
|
|
2
|
-
import { BindingKeys } from '../binding/common/constants';
|
|
3
|
-
import { getError } from '../error';
|
|
4
|
-
import { metadataRegistry } from '../registry/registry';
|
|
5
|
-
import { AbstractContainer } from './abstract';
|
|
1
|
+
import { Binding } from '../binding/binding.js';
|
|
2
|
+
import { BindingKeys } from '../binding/common/constants.js';
|
|
3
|
+
import { getError } from '../error/index.js';
|
|
4
|
+
import { metadataRegistry } from '../registry/registry.js';
|
|
5
|
+
import { AbstractContainer } from './abstract.js';
|
|
6
6
|
/** Storage half of the container, keyed by normalized binding-key strings - resolution (`instantiate`) stays abstract, it is the part an implementation swaps. */
|
|
7
7
|
export class BaseContainer extends AbstractContainer {
|
|
8
8
|
constructor(opts) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './types';
|
|
1
|
+
export * from './types.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './types';
|
|
1
|
+
export * from './types.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { IBinding } from '../../binding/common/types';
|
|
2
|
-
import type { TBindingKey, TClass, TNullable } from '../../../common/types';
|
|
3
|
-
import type { MetadataRegistry } from '../../registry/registry';
|
|
1
|
+
import type { IBinding } from '../../binding/common/types.js';
|
|
2
|
+
import type { TBindingKey, TClass, TNullable } from '../../../common/types.js';
|
|
3
|
+
import type { MetadataRegistry } from '../../registry/registry.js';
|
|
4
4
|
export interface IContainer {
|
|
5
5
|
getMetadataRegistry(): MetadataRegistry;
|
|
6
6
|
bind<T>(opts: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { AnyType, TBindingKey, TClass, TInjectTarget } from '../../common/types';
|
|
2
|
-
import { BaseContainer } from './base';
|
|
1
|
+
import { AnyType, TBindingKey, TClass, TInjectTarget } from '../../common/types.js';
|
|
2
|
+
import { BaseContainer } from './base.js';
|
|
3
3
|
/** Default container: constructor + property injection driven by the decorator metadata registry. */
|
|
4
4
|
export declare class Container extends BaseContainer {
|
|
5
5
|
constructor(opts?: {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getError } from '../error';
|
|
2
|
-
import { resolveInjectTarget } from '../../common/utilities';
|
|
3
|
-
import { BaseContainer } from './base';
|
|
1
|
+
import { getError } from '../error/index.js';
|
|
2
|
+
import { resolveInjectTarget } from '../../common/utilities.js';
|
|
3
|
+
import { BaseContainer } from './base.js';
|
|
4
4
|
/** Default container: constructor + property injection driven by the decorator metadata registry. */
|
|
5
5
|
export class Container extends BaseContainer {
|
|
6
6
|
constructor(opts) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './abstract';
|
|
2
|
-
export * from './base';
|
|
3
|
-
export * from './common';
|
|
4
|
-
export * from './container';
|
|
1
|
+
export * from './abstract.js';
|
|
2
|
+
export * from './base.js';
|
|
3
|
+
export * from './common/index.js';
|
|
4
|
+
export * from './container.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './abstract';
|
|
2
|
-
export * from './base';
|
|
3
|
-
export * from './common';
|
|
4
|
-
export * from './container';
|
|
1
|
+
export * from './abstract.js';
|
|
2
|
+
export * from './base.js';
|
|
3
|
+
export * from './common/index.js';
|
|
4
|
+
export * from './container.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TError, TErrorLogLevel, TErrorNormalized, TResponsedError } from './common';
|
|
1
|
+
import type { TError, TErrorLogLevel, TErrorNormalized, TResponsedError } from './common/index.js';
|
|
2
2
|
export declare class ApplicationError extends Error {
|
|
3
3
|
statusCode: number;
|
|
4
4
|
normalized: TErrorNormalized;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { omit } from '../../common/utilities';
|
|
2
|
-
import { MessageCode } from './message-code';
|
|
1
|
+
import { omit } from '../../common/utilities.js';
|
|
2
|
+
import { MessageCode } from './message-code.js';
|
|
3
3
|
/** Consumed keys. Everything else rides into `extra`. */
|
|
4
4
|
const KNOWN_KEYS = [
|
|
5
5
|
'error',
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './types';
|
|
1
|
+
export * from './types.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './types';
|
|
1
|
+
export * from './types.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TErrorScope } from '../definition';
|
|
1
|
+
import type { TErrorScope } from '../definition.js';
|
|
2
2
|
/** Declared here, not imported from helpers' `TLogLevel` (browser-safe); a helpers guard pins them equal. */
|
|
3
3
|
export type TErrorLogLevel = 'error' | 'emerg' | 'warn' | 'info' | 'debug';
|
|
4
4
|
/** Resolved message a client renders. All fields always present - no null-checks downstream. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './app-error';
|
|
2
|
-
export * from './common';
|
|
3
|
-
export * from './definition';
|
|
4
|
-
export * from './message-code';
|
|
1
|
+
export * from './app-error.js';
|
|
2
|
+
export * from './common/index.js';
|
|
3
|
+
export * from './definition.js';
|
|
4
|
+
export * from './message-code.js';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export * from './app-error';
|
|
2
|
-
export * from './common';
|
|
3
|
-
export * from './definition';
|
|
4
|
-
export * from './message-code';
|
|
1
|
+
export * from './app-error.js';
|
|
2
|
+
export * from './common/index.js';
|
|
3
|
+
export * from './definition.js';
|
|
4
|
+
export * from './message-code.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { TNullable } from '../../common/types';
|
|
2
|
-
import type { TError } from './common';
|
|
1
|
+
import type { TNullable } from '../../common/types.js';
|
|
2
|
+
import type { TError } from './common/index.js';
|
|
3
3
|
type TErrorFactory = (opts: TError) => Error;
|
|
4
4
|
export declare class MessageCode {
|
|
5
5
|
static readonly SEPARATOR = ".";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from './binding';
|
|
2
|
-
export * from './container';
|
|
3
|
-
export * from './error';
|
|
4
|
-
export * from './metadata';
|
|
5
|
-
export * from './registry';
|
|
1
|
+
export * from './binding/index.js';
|
|
2
|
+
export * from './container/index.js';
|
|
3
|
+
export * from './error/index.js';
|
|
4
|
+
export * from './metadata/index.js';
|
|
5
|
+
export * from './registry/index.js';
|
|
6
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export * from './binding';
|
|
2
|
-
export * from './container';
|
|
3
|
-
export * from './error';
|
|
4
|
-
export * from './metadata';
|
|
5
|
-
export * from './registry';
|
|
1
|
+
export * from './binding/index.js';
|
|
2
|
+
export * from './container/index.js';
|
|
3
|
+
export * from './error/index.js';
|
|
4
|
+
export * from './metadata/index.js';
|
|
5
|
+
export * from './registry/index.js';
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './constants';
|
|
1
|
+
export * from './constants.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './constants';
|
|
1
|
+
export * from './constants.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './common';
|
|
2
|
-
export * from './injectors';
|
|
1
|
+
export * from './common/index.js';
|
|
2
|
+
export * from './injectors.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './common';
|
|
2
|
-
export * from './injectors';
|
|
1
|
+
export * from './common/index.js';
|
|
2
|
+
export * from './injectors.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { TBindingKey, TInjectTarget } from '../../common/types';
|
|
2
|
-
import { MetadataRegistry } from '../registry';
|
|
1
|
+
import { TBindingKey, TInjectTarget } from '../../common/types.js';
|
|
2
|
+
import { MetadataRegistry } from '../registry/index.js';
|
|
3
3
|
/** Either a key, or the class bound under it - never both. The class may be named directly or through a function, which defers the reference past an import cycle. */
|
|
4
4
|
export type TInjectOptions = {
|
|
5
5
|
isOptional?: boolean;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getError } from '../error';
|
|
2
|
-
import { metadataRegistry } from '../registry';
|
|
1
|
+
import { getError } from '../error/index.js';
|
|
2
|
+
import { metadataRegistry } from '../registry/index.js';
|
|
3
3
|
/** Marks a property or constructor parameter for dependency injection. */
|
|
4
4
|
export const inject = (opts) => {
|
|
5
5
|
const { key, target: injected } = opts;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './types';
|
|
1
|
+
export * from './types.js';
|
|
2
2
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export * from './types';
|
|
1
|
+
export * from './types.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TBindingKey, TInjectTarget } from '../../../common/types';
|
|
1
|
+
import type { TBindingKey, TInjectTarget } from '../../../common/types.js';
|
|
2
2
|
export interface IPropertyMetadata {
|
|
3
3
|
bindingKey?: TBindingKey;
|
|
4
4
|
/** Named by class, or by a function returning it; the key is read off the class at resolve time. */
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './common';
|
|
2
|
-
export * from './registry';
|
|
1
|
+
export * from './common/index.js';
|
|
2
|
+
export * from './registry.js';
|
|
3
3
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export * from './common';
|
|
2
|
-
export * from './registry';
|
|
1
|
+
export * from './common/index.js';
|
|
2
|
+
export * from './registry.js';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BaseHelper } from '../../common/base-helper';
|
|
2
|
-
import { TBindingKey, TClass } from '../../common/types';
|
|
3
|
-
import { IInjectMetadata, IPropertyMetadata } from './common/types';
|
|
1
|
+
import { BaseHelper } from '../../common/base-helper.js';
|
|
2
|
+
import { TBindingKey, TClass } from '../../common/types.js';
|
|
3
|
+
import { IInjectMetadata, IPropertyMetadata } from './common/types.js';
|
|
4
4
|
/** Central metadata registry for storing and retrieving decorator metadata. */
|
|
5
5
|
export declare class MetadataRegistry extends BaseHelper {
|
|
6
6
|
constructor();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/modules/registry/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAErD,OAAO,EAAqB,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEvF,+EAA+E;AAC/E,qBAAa,gBAAiB,SAAQ,UAAU;;IAK9C,MAAM,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE;QACxD,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,WAAW,CAAC;QACjB,KAAK,EAAE,KAAK,CAAC;KACd,GAAG,IAAI;IAaR,GAAG,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,KAAK,GAAG,GAAG,EAAE,IAAI,EAAE;QACrD,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,WAAW,CAAC;KAClB,GAAG,KAAK,GAAG,SAAS;IAKrB,GAAG,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO;IAKxF,MAAM,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO;IAK3F,OAAO,CAAC,MAAM,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,WAAW,EAAE;IAShF,cAAc,CAAC,CAAC,GAAG,GAAG,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;KAAE,GAAG,MAAM,EAAE;IAS9D,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QAAE,MAAM,EAAE,CAAC,CAAA;KAAE,GAAG,IAAI;IASnE,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QACnD,MAAM,EAAE,CAAC,CAAC;QACV,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;QAC9B,QAAQ,EAAE,iBAAiB,CAAC;KAC7B,GAAG,IAAI;IAUR,qBAAqB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QACrD,MAAM,EAAE,CAAC,CAAC;KACX,GAAG,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,iBAAiB,CAAC,GAAG,SAAS;IAKvD,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QACnD,MAAM,EAAE,CAAC,CAAC;QACV,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;KAC/B,GAAG,iBAAiB,GAAG,SAAS;IAMjC,iBAAiB,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE;QACjD,MAAM,EAAE,CAAC,CAAC;QACV,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,eAAe,CAAC;KAC3B,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/modules/registry/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BaseHelper } from '../../common/base-helper';
|
|
2
|
-
import { Logger } from '../../common/logger';
|
|
3
|
-
import { MetadataKeys } from '../metadata/common/constants';
|
|
1
|
+
import { BaseHelper } from '../../common/base-helper.js';
|
|
2
|
+
import { Logger } from '../../common/logger.js';
|
|
3
|
+
import { MetadataKeys } from '../metadata/common/constants.js';
|
|
4
4
|
/** Central metadata registry for storing and retrieving decorator metadata. */
|
|
5
5
|
export class MetadataRegistry extends BaseHelper {
|
|
6
6
|
constructor() {
|
|
@@ -60,7 +60,9 @@ export class MetadataRegistry extends BaseHelper {
|
|
|
60
60
|
}
|
|
61
61
|
setInjectMetadata(opts) {
|
|
62
62
|
const { target, index, metadata } = opts;
|
|
63
|
-
|
|
63
|
+
// Copy-on-write: the inherited list belongs to the parent class and every sibling subclass reads it.
|
|
64
|
+
const own = Reflect.getOwnMetadata(MetadataKeys.INJECT, target);
|
|
65
|
+
const injects = own ?? [...(Reflect.getMetadata(MetadataKeys.INJECT, target) ?? [])];
|
|
64
66
|
injects[index] = metadata;
|
|
65
67
|
Reflect.defineMetadata(MetadataKeys.INJECT, injects, target);
|
|
66
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/modules/registry/registry.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../../src/modules/registry/registry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis-inversion",
|
|
3
|
-
"version": "0.2.0-
|
|
3
|
+
"version": "0.2.0-24",
|
|
4
4
|
"description": "Lightweight, high-performance Dependency Injection and Inversion of Control container for TypeScript (~350 lines). Features decorator-based constructor and property injection, fluent Binding API, singleton/transient scoping, namespace auto-tagging, Provider pattern, tag-based discovery, and reflect-metadata integration. Inspired by LoopBack 4 and InversifyJS but simpler. Zero framework lock-in — works standalone or with Ignis.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"architecture",
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
},
|
|
64
64
|
"license": "MIT",
|
|
65
65
|
"engines": {
|
|
66
|
-
"bun": ">=1.
|
|
66
|
+
"bun": ">=1.4"
|
|
67
67
|
},
|
|
68
68
|
"main": "./dist/cjs/index.js",
|
|
69
69
|
"module": "./dist/esm/index.js",
|