@khapu2906/treasure-chest 1.4.1 → 1.5.1
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 +57 -1
- package/dist/cjs/Container.js +240 -31
- package/dist/cjs/Container.js.map +1 -1
- package/dist/cjs/Graph.js +232 -0
- package/dist/cjs/Graph.js.map +1 -0
- package/dist/cjs/index.js +4 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/Container.js +240 -31
- package/dist/esm/Container.js.map +1 -1
- package/dist/esm/Graph.js +228 -0
- package/dist/esm/Graph.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/types/Container.d.ts +55 -4
- package/dist/types/Container.d.ts.map +1 -1
- package/dist/types/Graph.d.ts +183 -0
- package/dist/types/Graph.d.ts.map +1 -0
- package/dist/types/index.d.ts +4 -1
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -33,7 +33,7 @@ A lightweight and powerful TypeScript dependency injection container for managin
|
|
|
33
33
|
### Developer Experience
|
|
34
34
|
|
|
35
35
|
- **Intuitive API**: Fluent API with comprehensive JSDoc
|
|
36
|
-
- **Well Tested**:
|
|
36
|
+
- **Well Tested**: 120+ test cases with full coverage
|
|
37
37
|
- **Dual Module Support**: Both CommonJS and ES Modules (ESM)
|
|
38
38
|
- **Type Safe**: Full TypeScript declarations
|
|
39
39
|
- **Production Ready**: Battle-tested patterns
|
|
@@ -234,6 +234,10 @@ tenant2.singleton('logger', () => new TenantLogger('tenant2'));
|
|
|
234
234
|
// Each tenant has its own logger but shares config
|
|
235
235
|
tenant1.resolve('config'); // From parent
|
|
236
236
|
tenant1.resolve('logger'); // From tenant1
|
|
237
|
+
|
|
238
|
+
// Singletons declared on the parent are a single shared instance across
|
|
239
|
+
// every child that inherits them (v1.5.0+):
|
|
240
|
+
tenant1.resolve('config') === tenant2.resolve('config'); // true
|
|
237
241
|
```
|
|
238
242
|
|
|
239
243
|
### 9. Circular Dependency Detection (NEW in v1.2.0)
|
|
@@ -327,6 +331,39 @@ app.use(expressScope(container));
|
|
|
327
331
|
|
|
328
332
|
See [examples/10-middleware.ts](./examples/10-middleware.ts) for complete implementations.
|
|
329
333
|
|
|
334
|
+
### 12. Dependency Graph Inspection (NEW in v1.5.0)
|
|
335
|
+
|
|
336
|
+
Inspect, filter, and visualize a container's bindings and the dependency edges discovered while resolving them - useful for debugging, admin tooling, or feeding a UI in another system.
|
|
337
|
+
|
|
338
|
+
```typescript
|
|
339
|
+
container.singleton('db', () => new Database());
|
|
340
|
+
container.singleton('repo', (c) => new Repo(c.resolve('db')));
|
|
341
|
+
container.singleton('service', (c) => new Service(c.resolve('repo')));
|
|
342
|
+
container.resolve('service');
|
|
343
|
+
|
|
344
|
+
const graph = container.graph();
|
|
345
|
+
|
|
346
|
+
// Filter bindings
|
|
347
|
+
graph.getNodes({ lifecycle: 'singleton', resolved: true });
|
|
348
|
+
graph.getNodes({ key: /Service$/ });
|
|
349
|
+
|
|
350
|
+
// Walk relationships
|
|
351
|
+
graph.dependenciesOf('service'); // -> [repo]
|
|
352
|
+
graph.dependentsOf('db'); // -> [repo]
|
|
353
|
+
|
|
354
|
+
// UI-ready nested trees (safe against cross-call cycles)
|
|
355
|
+
graph.toTree('service'); // { key: 'service', children: [{ key: 'repo', children: [...] }] }
|
|
356
|
+
graph.forest(); // a tree for every root, covering the whole graph at once
|
|
357
|
+
|
|
358
|
+
// Export
|
|
359
|
+
graph.toJSON(); // plain { nodes, edges } - safe to send over an API to another system
|
|
360
|
+
graph.toDot(); // Graphviz DOT source for visualization
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
> **Note:** edges are recorded at runtime as `resolve()` runs, so they only reflect dependencies that have actually been resolved at least once - this is not static analysis of factory source code.
|
|
364
|
+
|
|
365
|
+
See [examples/15-dependency-graph.ts](./examples/15-dependency-graph.ts) for a complete walkthrough.
|
|
366
|
+
|
|
330
367
|
## API Reference
|
|
331
368
|
|
|
332
369
|
### Container Class
|
|
@@ -417,6 +454,13 @@ See [examples/10-middleware.ts](./examples/10-middleware.ts) for complete implem
|
|
|
417
454
|
- Dispose container and all scoped instances
|
|
418
455
|
- Calls cleanup functions
|
|
419
456
|
|
|
457
|
+
#### Introspection
|
|
458
|
+
|
|
459
|
+
**`graph(): Graph` ⭐ NEW v1.5.0**
|
|
460
|
+
|
|
461
|
+
- Build a filterable snapshot of this container's bindings (own, inherited from a parent, and inherited from composed containers) plus the dependency edges observed while resolving
|
|
462
|
+
- See [Dependency Graph Inspection](#12-dependency-graph-inspection-new-in-v150) above
|
|
463
|
+
|
|
420
464
|
### Exported Types
|
|
421
465
|
|
|
422
466
|
```typescript
|
|
@@ -424,10 +468,16 @@ import {
|
|
|
424
468
|
Container,
|
|
425
469
|
Lazy,
|
|
426
470
|
Scope,
|
|
471
|
+
Graph,
|
|
427
472
|
Lifecycle,
|
|
428
473
|
IDisposable,
|
|
429
474
|
DisposeFn,
|
|
430
475
|
ServiceKey,
|
|
476
|
+
GraphNode,
|
|
477
|
+
GraphEdge,
|
|
478
|
+
GraphSnapshot,
|
|
479
|
+
GraphNodeFilter,
|
|
480
|
+
GraphTreeNode,
|
|
431
481
|
} from '@khapu2906/treasure-chest';
|
|
432
482
|
|
|
433
483
|
// ServiceKey: 'string' | 'Symbol' | 'Constructor' ⭐ NEW v1.4.1
|
|
@@ -436,6 +486,8 @@ import {
|
|
|
436
486
|
// Scope: Scope management with .dispose()
|
|
437
487
|
// IDisposable: Interface for auto-cleanup detection ⭐ NEW v1.2.0
|
|
438
488
|
// DisposeFn: Type for cleanup functions
|
|
489
|
+
// Graph: Filterable dependency graph, from container.graph() ⭐ NEW v1.5.0
|
|
490
|
+
// GraphNode / GraphEdge / GraphSnapshot / GraphNodeFilter / GraphTreeNode: Graph data shapes ⭐ NEW v1.5.0
|
|
439
491
|
```
|
|
440
492
|
|
|
441
493
|
### Global Container
|
|
@@ -525,6 +577,10 @@ Check out the [examples](./examples) directory for comprehensive real-world usag
|
|
|
525
577
|
- IDisposable auto-detection
|
|
526
578
|
- withScope() pattern demos
|
|
527
579
|
|
|
580
|
+
### Introspection & Tooling (v1.5.0) ⭐ NEW
|
|
581
|
+
|
|
582
|
+
15. **Dependency Graph**: Filter bindings, walk dependencies, and export UI-ready trees or Graphviz DOT with `container.graph()`
|
|
583
|
+
|
|
528
584
|
Each example includes detailed comments and runnable code.
|
|
529
585
|
|
|
530
586
|
## Development
|
package/dist/cjs/Container.js
CHANGED
|
@@ -8,6 +8,38 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
8
8
|
exports.Container = void 0;
|
|
9
9
|
const Lazy_1 = require("./Lazy");
|
|
10
10
|
const Scope_1 = require("./Scope");
|
|
11
|
+
const Graph_1 = require("./Graph");
|
|
12
|
+
/**
|
|
13
|
+
* Two-level map keyed by (service key, optional context key).
|
|
14
|
+
*
|
|
15
|
+
* Keys are compared by identity, never by their string form, so two
|
|
16
|
+
* distinct Symbols with the same description (`Symbol('x')` twice) or a
|
|
17
|
+
* string key that looks like a Symbol (`'Symbol(x)'`) never collide.
|
|
18
|
+
*/
|
|
19
|
+
class KeyContextMap {
|
|
20
|
+
constructor() {
|
|
21
|
+
this.map = new Map();
|
|
22
|
+
}
|
|
23
|
+
get(key, context) {
|
|
24
|
+
var _a;
|
|
25
|
+
return (_a = this.map.get(key)) === null || _a === void 0 ? void 0 : _a.get(context);
|
|
26
|
+
}
|
|
27
|
+
has(key, context) {
|
|
28
|
+
var _a, _b;
|
|
29
|
+
return (_b = (_a = this.map.get(key)) === null || _a === void 0 ? void 0 : _a.has(context)) !== null && _b !== void 0 ? _b : false;
|
|
30
|
+
}
|
|
31
|
+
set(key, context, value) {
|
|
32
|
+
let inner = this.map.get(key);
|
|
33
|
+
if (!inner) {
|
|
34
|
+
inner = new Map();
|
|
35
|
+
this.map.set(key, inner);
|
|
36
|
+
}
|
|
37
|
+
inner.set(context, value);
|
|
38
|
+
}
|
|
39
|
+
clear() {
|
|
40
|
+
this.map.clear();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
11
43
|
/**
|
|
12
44
|
* Container class for dependency injection
|
|
13
45
|
* Manages service bindings, instances, and resolution logic
|
|
@@ -27,30 +59,35 @@ class Container {
|
|
|
27
59
|
constructor(parent) {
|
|
28
60
|
/** Map-based storage for bindings - O(1) lookup */
|
|
29
61
|
this.bindings = new Map();
|
|
30
|
-
/** Cache for singleton instances */
|
|
62
|
+
/** Cache for singleton instances, keyed by (service key, binding context) */
|
|
63
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
64
|
+
this.instances = new KeyContextMap();
|
|
65
|
+
/** Cache for lazy singleton wrappers */
|
|
31
66
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
32
|
-
this.
|
|
67
|
+
this.lazyInstances = new Map();
|
|
33
68
|
/** Mapping of aliases to original keys */
|
|
34
69
|
this.aliases = new Map();
|
|
35
70
|
/** Cache for resolved bindings - performance optimization */
|
|
36
|
-
this.bindingCache = new
|
|
71
|
+
this.bindingCache = new KeyContextMap();
|
|
37
72
|
/** Composed containers for composition pattern */
|
|
38
73
|
this.composedContainers = [];
|
|
39
74
|
/** Resolution stack for circular dependency detection */
|
|
40
75
|
this.resolutionStack = [];
|
|
76
|
+
/** Dependency edges observed while resolving: consumerKey -> Set of dependency keys */
|
|
77
|
+
this.dependencyEdges = new Map();
|
|
41
78
|
this.parent = parent;
|
|
42
79
|
}
|
|
43
80
|
/**
|
|
44
|
-
*
|
|
45
|
-
* This is a simple implementation; it assumes no string keys will collide with `Symbol().toString()`.
|
|
81
|
+
* Record that `from` depends on `to`, for later inspection via graph()
|
|
46
82
|
* @private
|
|
47
83
|
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
if (
|
|
51
|
-
return
|
|
52
|
-
|
|
53
|
-
|
|
84
|
+
_recordEdge(from, to) {
|
|
85
|
+
var _a;
|
|
86
|
+
if (from === to)
|
|
87
|
+
return;
|
|
88
|
+
const deps = (_a = this.dependencyEdges.get(from)) !== null && _a !== void 0 ? _a : new Set();
|
|
89
|
+
deps.add(to);
|
|
90
|
+
this.dependencyEdges.set(from, deps);
|
|
54
91
|
}
|
|
55
92
|
/**
|
|
56
93
|
* Register a transient binding (new instance on each resolve)
|
|
@@ -228,11 +265,25 @@ class Container {
|
|
|
228
265
|
* @returns The matching binding or undefined
|
|
229
266
|
*/
|
|
230
267
|
findBinding(key, context) {
|
|
268
|
+
var _a;
|
|
269
|
+
return (_a = this.findBindingEntry(key, context)) === null || _a === void 0 ? void 0 : _a.binding;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Find the appropriate binding for a given key and context, along with
|
|
273
|
+
* the container that actually declared it (the "owner"). Searches in
|
|
274
|
+
* current container and parent containers. Uses cached result when
|
|
275
|
+
* possible for performance.
|
|
276
|
+
*
|
|
277
|
+
* @private
|
|
278
|
+
* @param key The service key to find
|
|
279
|
+
* @param context Optional context for contextual binding
|
|
280
|
+
* @returns The matching binding paired with its owning container, or undefined
|
|
281
|
+
*/
|
|
282
|
+
findBindingEntry(key, context) {
|
|
231
283
|
const realKey = this.aliases.get(key) || key;
|
|
232
|
-
const cacheKey = this._toCacheKey(realKey, context);
|
|
233
284
|
// Check cache first
|
|
234
|
-
if (this.bindingCache.has(
|
|
235
|
-
return this.bindingCache.get(
|
|
285
|
+
if (this.bindingCache.has(realKey, context)) {
|
|
286
|
+
return this.bindingCache.get(realKey, context);
|
|
236
287
|
}
|
|
237
288
|
// O(1) Map lookup instead of O(n) array filter
|
|
238
289
|
const bindings = this.bindings.get(realKey);
|
|
@@ -244,15 +295,18 @@ class Container {
|
|
|
244
295
|
const match = bindings.find((b) => b.context === context && (!b.condition || b.condition(this))) ||
|
|
245
296
|
bindings.find((b) => !b.context && (!b.condition || b.condition(this))) ||
|
|
246
297
|
bindings[0];
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
298
|
+
if (match) {
|
|
299
|
+
const entry = { binding: match, owner: this };
|
|
300
|
+
// Cache the result only if no conditions (conditions are dynamic)
|
|
301
|
+
if (!match.condition) {
|
|
302
|
+
this.bindingCache.set(realKey, context, entry);
|
|
303
|
+
}
|
|
304
|
+
return entry;
|
|
250
305
|
}
|
|
251
|
-
return match;
|
|
252
306
|
}
|
|
253
307
|
// Try parent container
|
|
254
308
|
if (this.parent) {
|
|
255
|
-
return this.parent.
|
|
309
|
+
return this.parent.findBindingEntry(key, context);
|
|
256
310
|
}
|
|
257
311
|
return undefined;
|
|
258
312
|
}
|
|
@@ -282,12 +336,18 @@ class Container {
|
|
|
282
336
|
.join(' -> ');
|
|
283
337
|
throw new Error(`Circular dependency detected: ${chain}`);
|
|
284
338
|
}
|
|
339
|
+
// Record dependency edge: whatever is currently resolving depends on this key
|
|
340
|
+
if (this.resolutionStack.length > 0) {
|
|
341
|
+
const consumer = this.resolutionStack[this.resolutionStack.length - 1];
|
|
342
|
+
this._recordEdge(consumer, realKey);
|
|
343
|
+
}
|
|
285
344
|
const prevContext = this.currentContext;
|
|
286
345
|
this.currentContext = context || key;
|
|
287
|
-
const
|
|
288
|
-
if (!
|
|
346
|
+
const entry = this.findBindingEntry(key, this.currentContext);
|
|
347
|
+
if (!entry) {
|
|
289
348
|
throw new Error(`No binding found for key: ${realKey.toString()}`);
|
|
290
349
|
}
|
|
350
|
+
const { binding, owner } = entry;
|
|
291
351
|
// Add to resolution stack
|
|
292
352
|
this.resolutionStack.push(realKey);
|
|
293
353
|
try {
|
|
@@ -299,7 +359,9 @@ class Container {
|
|
|
299
359
|
// Handle different lifecycles
|
|
300
360
|
switch (binding.lifecycle) {
|
|
301
361
|
case 'singleton':
|
|
302
|
-
|
|
362
|
+
// Cached on the owning container so the instance is truly
|
|
363
|
+
// shared across every child that inherits the binding.
|
|
364
|
+
return owner.resolveSingleton(binding, realKey);
|
|
303
365
|
case 'scoped':
|
|
304
366
|
return this.resolveScoped(binding, realKey);
|
|
305
367
|
case 'transient':
|
|
@@ -325,13 +387,12 @@ class Container {
|
|
|
325
387
|
* @private
|
|
326
388
|
*/
|
|
327
389
|
resolveSingleton(binding, cacheKey) {
|
|
328
|
-
// Singletons can be contextual, so
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
return this.instances.get(fullCacheKey);
|
|
390
|
+
// Singletons can be contextual, so instances are keyed by (key, context).
|
|
391
|
+
if (this.instances.has(cacheKey, binding.context)) {
|
|
392
|
+
return this.instances.get(cacheKey, binding.context);
|
|
332
393
|
}
|
|
333
394
|
const instance = binding.factory(this);
|
|
334
|
-
this.instances.set(
|
|
395
|
+
this.instances.set(cacheKey, binding.context, instance);
|
|
335
396
|
return instance;
|
|
336
397
|
}
|
|
337
398
|
/**
|
|
@@ -354,13 +415,13 @@ class Container {
|
|
|
354
415
|
* @private
|
|
355
416
|
*/
|
|
356
417
|
resolveLazy(binding, cacheKey) {
|
|
357
|
-
const
|
|
358
|
-
if (
|
|
359
|
-
return
|
|
418
|
+
const cached = this.lazyInstances.get(cacheKey);
|
|
419
|
+
if (cached) {
|
|
420
|
+
return cached;
|
|
360
421
|
}
|
|
361
422
|
const lazy = new Lazy_1.Lazy(() => binding.factory(this));
|
|
362
423
|
if (binding.lifecycle === 'singleton') {
|
|
363
|
-
this.
|
|
424
|
+
this.lazyInstances.set(cacheKey, lazy);
|
|
364
425
|
}
|
|
365
426
|
return lazy;
|
|
366
427
|
}
|
|
@@ -445,6 +506,152 @@ class Container {
|
|
|
445
506
|
const parentKeys = this.parent ? this.parent.keys() : [];
|
|
446
507
|
return [...new Set([...ownKeys, ...parentKeys])];
|
|
447
508
|
}
|
|
509
|
+
/**
|
|
510
|
+
* Collect this container's bindings (own, inherited from a parent, and
|
|
511
|
+
* inherited from composed containers), plus the dependency edges observed
|
|
512
|
+
* so far. Keys are kept as real ServiceKeys here; graph() turns them into
|
|
513
|
+
* unique display labels afterwards.
|
|
514
|
+
*
|
|
515
|
+
* @private
|
|
516
|
+
* @param seen Keys already captured by a more specific (closer) container
|
|
517
|
+
*/
|
|
518
|
+
inspect(seen = new Set()) {
|
|
519
|
+
var _a;
|
|
520
|
+
const nodes = [];
|
|
521
|
+
for (const [key, bindingList] of this.bindings) {
|
|
522
|
+
if (seen.has(key))
|
|
523
|
+
continue;
|
|
524
|
+
seen.add(key);
|
|
525
|
+
for (const binding of bindingList) {
|
|
526
|
+
nodes.push({
|
|
527
|
+
key,
|
|
528
|
+
lifecycle: binding.lifecycle,
|
|
529
|
+
lazy: !!binding.lazy,
|
|
530
|
+
context: binding.context,
|
|
531
|
+
inherited: false,
|
|
532
|
+
resolved: this.instances.has(key, binding.context) ||
|
|
533
|
+
this.lazyInstances.has(key),
|
|
534
|
+
});
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
for (const [aliasKey, originalKey] of this.aliases) {
|
|
538
|
+
if (seen.has(aliasKey))
|
|
539
|
+
continue;
|
|
540
|
+
seen.add(aliasKey);
|
|
541
|
+
const target = this.findBinding(aliasKey);
|
|
542
|
+
nodes.push({
|
|
543
|
+
key: aliasKey,
|
|
544
|
+
lifecycle: (_a = target === null || target === void 0 ? void 0 : target.lifecycle) !== null && _a !== void 0 ? _a : 'transient',
|
|
545
|
+
lazy: !!(target === null || target === void 0 ? void 0 : target.lazy),
|
|
546
|
+
aliasOf: originalKey,
|
|
547
|
+
inherited: false,
|
|
548
|
+
resolved: false,
|
|
549
|
+
});
|
|
550
|
+
}
|
|
551
|
+
const edges = [];
|
|
552
|
+
for (const [from, tos] of this.dependencyEdges) {
|
|
553
|
+
for (const to of tos) {
|
|
554
|
+
edges.push({ from, to });
|
|
555
|
+
}
|
|
556
|
+
}
|
|
557
|
+
const ancestors = [
|
|
558
|
+
...(this.parent ? [this.parent] : []),
|
|
559
|
+
...this.composedContainers,
|
|
560
|
+
];
|
|
561
|
+
for (const ancestor of ancestors) {
|
|
562
|
+
const snapshot = ancestor.inspect(seen);
|
|
563
|
+
for (const node of snapshot.nodes) {
|
|
564
|
+
nodes.push({ ...node, inherited: true });
|
|
565
|
+
}
|
|
566
|
+
edges.push(...snapshot.edges);
|
|
567
|
+
}
|
|
568
|
+
return { nodes, edges };
|
|
569
|
+
}
|
|
570
|
+
/**
|
|
571
|
+
* Assign every distinct service key a unique, human-readable label.
|
|
572
|
+
*
|
|
573
|
+
* String keys always keep their own value as label. Other keys use
|
|
574
|
+
* `toString()`; when that is already taken by a different key (e.g. two
|
|
575
|
+
* `Symbol('db')`s, or `Symbol('db')` next to the string `'Symbol(db)'`),
|
|
576
|
+
* a `#2`, `#3`, ... suffix is appended so graph nodes never merge.
|
|
577
|
+
*
|
|
578
|
+
* @private
|
|
579
|
+
*/
|
|
580
|
+
static labelKeys(keys) {
|
|
581
|
+
const all = [...new Set(keys)];
|
|
582
|
+
const labels = new Map();
|
|
583
|
+
const used = new Set();
|
|
584
|
+
for (const key of all) {
|
|
585
|
+
if (typeof key === 'string') {
|
|
586
|
+
labels.set(key, key);
|
|
587
|
+
used.add(key);
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
for (const key of all) {
|
|
591
|
+
if (typeof key === 'string')
|
|
592
|
+
continue;
|
|
593
|
+
const base = key.toString();
|
|
594
|
+
let label = base;
|
|
595
|
+
for (let n = 2; used.has(label); n++) {
|
|
596
|
+
label = `${base}#${n}`;
|
|
597
|
+
}
|
|
598
|
+
labels.set(key, label);
|
|
599
|
+
used.add(label);
|
|
600
|
+
}
|
|
601
|
+
return labels;
|
|
602
|
+
}
|
|
603
|
+
/**
|
|
604
|
+
* Build a filterable dependency graph of this container's bindings and
|
|
605
|
+
* the dependency edges observed while resolving them.
|
|
606
|
+
*
|
|
607
|
+
* @returns A Graph snapshot you can filter/inspect
|
|
608
|
+
*
|
|
609
|
+
* @example
|
|
610
|
+
* ```typescript
|
|
611
|
+
* const graph = container.graph();
|
|
612
|
+
* const singletons = graph.getNodes({ lifecycle: 'singleton' });
|
|
613
|
+
* const deps = graph.dependenciesOf('userService');
|
|
614
|
+
* ```
|
|
615
|
+
*/
|
|
616
|
+
graph() {
|
|
617
|
+
const raw = this.inspect();
|
|
618
|
+
const keys = [];
|
|
619
|
+
for (const node of raw.nodes) {
|
|
620
|
+
keys.push(node.key);
|
|
621
|
+
if (node.context !== undefined)
|
|
622
|
+
keys.push(node.context);
|
|
623
|
+
if (node.aliasOf !== undefined)
|
|
624
|
+
keys.push(node.aliasOf);
|
|
625
|
+
}
|
|
626
|
+
for (const edge of raw.edges) {
|
|
627
|
+
keys.push(edge.from, edge.to);
|
|
628
|
+
}
|
|
629
|
+
const labels = Container.labelKeys(keys);
|
|
630
|
+
const label = (key) => labels.get(key);
|
|
631
|
+
const nodes = raw.nodes.map((node) => {
|
|
632
|
+
const out = {
|
|
633
|
+
key: label(node.key),
|
|
634
|
+
lifecycle: node.lifecycle,
|
|
635
|
+
lazy: node.lazy,
|
|
636
|
+
inherited: node.inherited,
|
|
637
|
+
resolved: node.resolved,
|
|
638
|
+
};
|
|
639
|
+
// Preserve the node shape graph() has always produced: binding nodes
|
|
640
|
+
// carry `context` (possibly undefined), alias nodes carry `aliasOf`.
|
|
641
|
+
if ('context' in node) {
|
|
642
|
+
out.context =
|
|
643
|
+
node.context !== undefined ? label(node.context) : undefined;
|
|
644
|
+
}
|
|
645
|
+
if (node.aliasOf !== undefined)
|
|
646
|
+
out.aliasOf = label(node.aliasOf);
|
|
647
|
+
return out;
|
|
648
|
+
});
|
|
649
|
+
const edges = raw.edges.map((edge) => ({
|
|
650
|
+
from: label(edge.from),
|
|
651
|
+
to: label(edge.to),
|
|
652
|
+
}));
|
|
653
|
+
return new Graph_1.Graph({ nodes, edges }, labels);
|
|
654
|
+
}
|
|
448
655
|
/**
|
|
449
656
|
* Reset the container to its initial state
|
|
450
657
|
* Clears all bindings, instances, aliases, and context
|
|
@@ -460,8 +667,10 @@ class Container {
|
|
|
460
667
|
reset() {
|
|
461
668
|
this.bindings.clear();
|
|
462
669
|
this.instances.clear();
|
|
670
|
+
this.lazyInstances.clear();
|
|
463
671
|
this.aliases.clear();
|
|
464
672
|
this.bindingCache.clear();
|
|
673
|
+
this.dependencyEdges.clear();
|
|
465
674
|
this.currentContext = undefined;
|
|
466
675
|
this.currentScope = undefined;
|
|
467
676
|
this.resolutionStack = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/Container.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Container.js","sourceRoot":"","sources":["../../src/Container.ts"],"names":[],"mappings":"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"}
|