@wyrly/core 1.0.6 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,17 +1,29 @@
1
1
  # @wyrly/core
2
2
 
3
- Explicit DI for modern TypeScript typed tokens, standard decorators, and request scopes.
3
+ Type-safe dependency injection for modern TypeScript. No `reflect-metadata`, no
4
+ `emitDecoratorMetadata`, no parameter decorators.
5
+
6
+ Use `@wyrly/core` when you want explicit dependencies, typed tokens, standard decorators, request
7
+ scopes, and inspectable dependency graphs without framework lock-in.
4
8
 
5
9
  **Runtimes:** [Deno 2.x (JSR)](#install-deno--jsr) ·
6
10
  [Node.js 20+ / Bun (npm)](#install-nodejs--bun--npm)
7
11
 
8
12
  Japanese: [README.ja.md](./README.ja.md)
9
13
 
14
+ ## When to choose Wyrly DI
15
+
16
+ - You want TypeScript DI that works with standard decorators instead of legacy decorator metadata.
17
+ - You want interface-based dependencies to stay type-safe through typed tokens.
18
+ - You need request scopes for Next.js, Hono, Express, Fresh, GraphQL, or another web runtime.
19
+ - You want to inspect and validate the dependency graph in CI.
20
+ - You prefer composition roots and explicit wiring for DDD / Clean Architecture.
21
+
10
22
  ## Runtimes
11
23
 
12
24
  | Runtime | Registry | Import |
13
25
  | ------------ | ------------------------------------------------ | ------------------------ |
14
- | **Deno 2.x** | [JSR `@wyrly/core`](https://jsr.io/@wyrly/core) | `jsr:@wyrly/core@^1.0.6` |
26
+ | **Deno 2.x** | [JSR `@wyrly/core`](https://jsr.io/@wyrly/core) | `jsr:@wyrly/core@^2.0.0` |
15
27
  | Node.js 20+ | [npm](https://www.npmjs.com/package/@wyrly/core) | `@wyrly/core` |
16
28
  | Bun | npm (same package) | `@wyrly/core` |
17
29
 
@@ -24,7 +36,7 @@ npm.
24
36
  // deno.json
25
37
  {
26
38
  "imports": {
27
- "@wyrly/core": "jsr:@wyrly/core@^1.0.6"
39
+ "@wyrly/core": "jsr:@wyrly/core@^2.0.0"
28
40
  }
29
41
  }
30
42
  ```
@@ -92,6 +104,8 @@ try {
92
104
 
93
105
  - [API reference](https://github.com/valid-lab/wyrly/blob/main/API.md)
94
106
  - [Monorepo README](https://github.com/valid-lab/wyrly/blob/main/README.md)
107
+ - [Comparison guide](https://github.com/valid-lab/wyrly/blob/main/guides/COMPARE.md)
108
+ - [Examples](https://github.com/valid-lab/wyrly/blob/main/examples/README.md)
95
109
  - [Publishing & runtimes](https://github.com/valid-lab/wyrly/blob/main/PUBLISHING.md)
96
110
 
97
111
  ## Related packages
@@ -1 +1 @@
1
- {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../src/container.ts"],"names":[],"mappings":"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"}
package/esm/container.js CHANGED
@@ -258,10 +258,8 @@ _ContainerImpl_registry = new WeakMap(), _ContainerImpl_singletonCache = new Wea
258
258
  return this.resolveFromScope(scope, ex, np.lifetime, pathIds);
259
259
  }
260
260
  case "factory": {
261
- for (const d of np.deps) {
262
- resolveDep(d);
263
- }
264
- return np.useFactory(scope);
261
+ const args = np.deps.map((d) => resolveDep(d));
262
+ return np.useFactory(scope, ...args);
265
263
  }
266
264
  case "class": {
267
265
  const Ctor = np.useClass;
package/esm/mod.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  /**
2
- * Explicit DI for modern TypeScript typed tokens, standard decorators, and request scopes.
2
+ * Type-safe dependency injection for modern TypeScript without `reflect-metadata`.
3
+ *
4
+ * Wyrly DI uses typed tokens, explicit dependencies, standard decorators, request scopes, and an
5
+ * inspectable graph instead of legacy decorator metadata or parameter decorators.
3
6
  *
4
7
  * @example
5
8
  * ```ts
package/esm/mod.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACrF,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,KAAK,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5E,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,KAAK,gBAAgB,EACrB,qBAAqB,EACrB,KAAK,MAAM,EACX,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,KAAK,qBAAqB,GAC3B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,cAAc,EACnB,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,KAAK,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACrF,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EAAE,KAAK,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,eAAe,EACf,kBAAkB,EAClB,QAAQ,EACR,YAAY,EACZ,aAAa,GACd,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC5E,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxF,OAAO,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EACL,cAAc,EACd,YAAY,EACZ,KAAK,gBAAgB,EACrB,qBAAqB,EACrB,KAAK,MAAM,EACX,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,KAAK,qBAAqB,GAC3B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,uBAAuB,EACvB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,cAAc,EACnB,kBAAkB,GACnB,MAAM,aAAa,CAAC"}
package/esm/mod.js CHANGED
@@ -1,5 +1,8 @@
1
1
  /**
2
- * Explicit DI for modern TypeScript typed tokens, standard decorators, and request scopes.
2
+ * Type-safe dependency injection for modern TypeScript without `reflect-metadata`.
3
+ *
4
+ * Wyrly DI uses typed tokens, explicit dependencies, standard decorators, request scopes, and an
5
+ * inspectable graph instead of legacy decorator metadata or parameter decorators.
3
6
  *
4
7
  * @example
5
8
  * ```ts
package/esm/provider.d.ts CHANGED
@@ -25,10 +25,10 @@ export interface ValueProvider<T> {
25
25
  * `Promise<T>` is planned for a future `resolveAsync`.
26
26
  */
27
27
  export interface FactoryProvider<T> {
28
- /** Factory invoked with the active scope. */
29
- useFactory: (scope: Scope) => T;
30
- /** Tokens resolved before the factory runs. */
31
- deps?: InjectionToken<unknown>[];
28
+ /** Factory invoked with the active scope and resolved dependency values. */
29
+ useFactory: (scope: Scope, ...deps: unknown[]) => T;
30
+ /** Tokens resolved before the factory runs and passed to `useFactory`. */
31
+ deps: InjectionToken<unknown>[];
32
32
  /** Lifetime for the factory result. */
33
33
  lifetime?: Lifetime;
34
34
  }
@@ -58,7 +58,7 @@ export interface NormalizedProvider<T = unknown> {
58
58
  /** Set when `providerType` is `"value"`. */
59
59
  readonly useValue?: T;
60
60
  /** Set when `providerType` is `"factory"`. */
61
- readonly useFactory?: (scope: Scope) => T;
61
+ readonly useFactory?: (scope: Scope, ...deps: unknown[]) => T;
62
62
  /** Set when `providerType` is `"existing"`. */
63
63
  readonly useExisting?: InjectionToken<T>;
64
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAK9C,iEAAiE;AACjE,MAAM,MAAM,QAAQ,CAAC,CAAC,IAClB,aAAa,CAAC,CAAC,CAAC,GAChB,aAAa,CAAC,CAAC,CAAC,GAChB,eAAe,CAAC,CAAC,CAAC,GAClB,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAExB,2DAA2D;AAC3D,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,4BAA4B;IAC5B,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACxB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,mDAAmD;AACnD,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,0BAA0B;IAC1B,QAAQ,EAAE,CAAC,CAAC;IACZ,sCAAsC;IACtC,QAAQ,CAAC,EAAE,WAAW,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,6CAA6C;IAC7C,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC;IAChC,+CAA+C;IAC/C,IAAI,CAAC,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IACjC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,wCAAwC;AACxC,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,gCAAgC;IAChC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAC/B,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,uDAAuD;AACvD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;AAEtE,yEAAyE;AACzE,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO;IAC7C,qCAAqC;IACrC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAClC,yCAAyC;IACzC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,kCAAkC;IAClC,QAAQ,CAAC,IAAI,EAAE,SAAS,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;IAClD,0BAA0B;IAC1B,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,uCAAuC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IAClC,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtB,8CAA8C;IAC9C,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,CAAC,CAAC;IAC1C,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;CAC1C;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,EACxB,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,GACpB,kBAAkB,CAAC,CAAC,CAAC,CAwDvB;AAED,wBAAgB,sBAAsB,CAAC,CAAC,EACtC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GACnB,kBAAkB,CAAC,CAAC,CAAC,CAYvB"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
package/esm/provider.js CHANGED
@@ -17,7 +17,7 @@ export function normalizeProvider(token, provider) {
17
17
  };
18
18
  }
19
19
  if ("useFactory" in provider) {
20
- const deps = provider.deps ?? [];
20
+ const deps = provider.deps;
21
21
  const lifetime = provider.lifetime ?? "singleton";
22
22
  return {
23
23
  token,
package/package.json CHANGED
@@ -1,21 +1,28 @@
1
1
  {
2
2
  "name": "@wyrly/core",
3
- "version": "1.0.6",
4
- "description": "Explicit DI for modern TypeScript typed tokens, standard decorators, request scopes",
3
+ "version": "2.0.0",
4
+ "description": "Type-safe dependency injection for modern TypeScript without reflect-metadata",
5
5
  "keywords": [
6
6
  "wyrly",
7
7
  "dependency-injection",
8
8
  "di",
9
9
  "typescript",
10
+ "standard-decorators",
11
+ "decorators",
12
+ "reflect-metadata",
13
+ "no-reflect-metadata",
14
+ "request-scope",
15
+ "scoped",
16
+ "clean-architecture",
17
+ "ddd",
10
18
  "inversion-of-control",
11
19
  "ioc",
12
20
  "deno",
13
21
  "jsr",
14
- "decorators",
15
- "clean-architecture",
16
- "ddd",
17
- "scoped",
18
- "container"
22
+ "bun",
23
+ "workers",
24
+ "container",
25
+ "dependency-graph"
19
26
  ],
20
27
  "homepage": "https://github.com/valid-lab/wyrly/tree/main/packages/core",
21
28
  "repository": {