@khapu2906/treasure-chest 1.4.1 → 1.5.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 +57 -1
- package/dist/cjs/Container.js +132 -8
- package/dist/cjs/Container.js.map +1 -1
- package/dist/cjs/Graph.js +207 -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 +132 -8
- package/dist/esm/Container.js.map +1 -1
- package/dist/esm/Graph.js +203 -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 +43 -0
- package/dist/types/Container.d.ts.map +1 -1
- package/dist/types/Graph.d.ts +159 -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**: 110+ 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,7 @@ 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");
|
|
11
12
|
/**
|
|
12
13
|
* Container class for dependency injection
|
|
13
14
|
* Manages service bindings, instances, and resolution logic
|
|
@@ -38,6 +39,8 @@ class Container {
|
|
|
38
39
|
this.composedContainers = [];
|
|
39
40
|
/** Resolution stack for circular dependency detection */
|
|
40
41
|
this.resolutionStack = [];
|
|
42
|
+
/** Dependency edges observed while resolving: consumerKey -> Set of dependency keys */
|
|
43
|
+
this.dependencyEdges = new Map();
|
|
41
44
|
this.parent = parent;
|
|
42
45
|
}
|
|
43
46
|
/**
|
|
@@ -52,6 +55,20 @@ class Container {
|
|
|
52
55
|
}
|
|
53
56
|
return keyStr;
|
|
54
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Record that `from` depends on `to`, for later inspection via graph()
|
|
60
|
+
* @private
|
|
61
|
+
*/
|
|
62
|
+
_recordEdge(from, to) {
|
|
63
|
+
var _a;
|
|
64
|
+
const fromKey = from.toString();
|
|
65
|
+
const toKey = to.toString();
|
|
66
|
+
if (fromKey === toKey)
|
|
67
|
+
return;
|
|
68
|
+
const deps = (_a = this.dependencyEdges.get(fromKey)) !== null && _a !== void 0 ? _a : new Set();
|
|
69
|
+
deps.add(toKey);
|
|
70
|
+
this.dependencyEdges.set(fromKey, deps);
|
|
71
|
+
}
|
|
55
72
|
/**
|
|
56
73
|
* Register a transient binding (new instance on each resolve)
|
|
57
74
|
*
|
|
@@ -228,6 +245,21 @@ class Container {
|
|
|
228
245
|
* @returns The matching binding or undefined
|
|
229
246
|
*/
|
|
230
247
|
findBinding(key, context) {
|
|
248
|
+
var _a;
|
|
249
|
+
return (_a = this.findBindingEntry(key, context)) === null || _a === void 0 ? void 0 : _a.binding;
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Find the appropriate binding for a given key and context, along with
|
|
253
|
+
* the container that actually declared it (the "owner"). Searches in
|
|
254
|
+
* current container and parent containers. Uses cached result when
|
|
255
|
+
* possible for performance.
|
|
256
|
+
*
|
|
257
|
+
* @private
|
|
258
|
+
* @param key The service key to find
|
|
259
|
+
* @param context Optional context for contextual binding
|
|
260
|
+
* @returns The matching binding paired with its owning container, or undefined
|
|
261
|
+
*/
|
|
262
|
+
findBindingEntry(key, context) {
|
|
231
263
|
const realKey = this.aliases.get(key) || key;
|
|
232
264
|
const cacheKey = this._toCacheKey(realKey, context);
|
|
233
265
|
// Check cache first
|
|
@@ -244,15 +276,18 @@ class Container {
|
|
|
244
276
|
const match = bindings.find((b) => b.context === context && (!b.condition || b.condition(this))) ||
|
|
245
277
|
bindings.find((b) => !b.context && (!b.condition || b.condition(this))) ||
|
|
246
278
|
bindings[0];
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
279
|
+
if (match) {
|
|
280
|
+
const entry = { binding: match, owner: this };
|
|
281
|
+
// Cache the result only if no conditions (conditions are dynamic)
|
|
282
|
+
if (!match.condition) {
|
|
283
|
+
this.bindingCache.set(cacheKey, entry);
|
|
284
|
+
}
|
|
285
|
+
return entry;
|
|
250
286
|
}
|
|
251
|
-
return match;
|
|
252
287
|
}
|
|
253
288
|
// Try parent container
|
|
254
289
|
if (this.parent) {
|
|
255
|
-
return this.parent.
|
|
290
|
+
return this.parent.findBindingEntry(key, context);
|
|
256
291
|
}
|
|
257
292
|
return undefined;
|
|
258
293
|
}
|
|
@@ -282,12 +317,18 @@ class Container {
|
|
|
282
317
|
.join(' -> ');
|
|
283
318
|
throw new Error(`Circular dependency detected: ${chain}`);
|
|
284
319
|
}
|
|
320
|
+
// Record dependency edge: whatever is currently resolving depends on this key
|
|
321
|
+
if (this.resolutionStack.length > 0) {
|
|
322
|
+
const consumer = this.resolutionStack[this.resolutionStack.length - 1];
|
|
323
|
+
this._recordEdge(consumer, realKey);
|
|
324
|
+
}
|
|
285
325
|
const prevContext = this.currentContext;
|
|
286
326
|
this.currentContext = context || key;
|
|
287
|
-
const
|
|
288
|
-
if (!
|
|
327
|
+
const entry = this.findBindingEntry(key, this.currentContext);
|
|
328
|
+
if (!entry) {
|
|
289
329
|
throw new Error(`No binding found for key: ${realKey.toString()}`);
|
|
290
330
|
}
|
|
331
|
+
const { binding, owner } = entry;
|
|
291
332
|
// Add to resolution stack
|
|
292
333
|
this.resolutionStack.push(realKey);
|
|
293
334
|
try {
|
|
@@ -299,7 +340,9 @@ class Container {
|
|
|
299
340
|
// Handle different lifecycles
|
|
300
341
|
switch (binding.lifecycle) {
|
|
301
342
|
case 'singleton':
|
|
302
|
-
|
|
343
|
+
// Cached on the owning container so the instance is truly
|
|
344
|
+
// shared across every child that inherits the binding.
|
|
345
|
+
return owner.resolveSingleton(binding, realKey);
|
|
303
346
|
case 'scoped':
|
|
304
347
|
return this.resolveScoped(binding, realKey);
|
|
305
348
|
case 'transient':
|
|
@@ -445,6 +488,86 @@ class Container {
|
|
|
445
488
|
const parentKeys = this.parent ? this.parent.keys() : [];
|
|
446
489
|
return [...new Set([...ownKeys, ...parentKeys])];
|
|
447
490
|
}
|
|
491
|
+
/**
|
|
492
|
+
* Build a snapshot of this container's bindings (own, inherited from a
|
|
493
|
+
* parent, and inherited from composed containers), plus the dependency
|
|
494
|
+
* edges observed so far. Used to build a Graph via graph().
|
|
495
|
+
*
|
|
496
|
+
* @private
|
|
497
|
+
* @param seen Keys already captured by a more specific (closer) container
|
|
498
|
+
*/
|
|
499
|
+
inspect(seen = new Set()) {
|
|
500
|
+
var _a, _b;
|
|
501
|
+
const nodes = [];
|
|
502
|
+
for (const [key, bindingList] of this.bindings) {
|
|
503
|
+
const keyStr = key.toString();
|
|
504
|
+
if (seen.has(keyStr))
|
|
505
|
+
continue;
|
|
506
|
+
seen.add(keyStr);
|
|
507
|
+
for (const binding of bindingList) {
|
|
508
|
+
const fullCacheKey = this._toCacheKey(key, binding.context);
|
|
509
|
+
const lazyCacheKey = `lazy::${this._toCacheKey(key)}`;
|
|
510
|
+
nodes.push({
|
|
511
|
+
key: keyStr,
|
|
512
|
+
lifecycle: binding.lifecycle,
|
|
513
|
+
lazy: !!binding.lazy,
|
|
514
|
+
context: (_a = binding.context) === null || _a === void 0 ? void 0 : _a.toString(),
|
|
515
|
+
inherited: false,
|
|
516
|
+
resolved: this.instances.has(fullCacheKey) ||
|
|
517
|
+
this.instances.has(lazyCacheKey),
|
|
518
|
+
});
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
for (const [aliasKey, originalKey] of this.aliases) {
|
|
522
|
+
const aliasKeyStr = aliasKey.toString();
|
|
523
|
+
if (seen.has(aliasKeyStr))
|
|
524
|
+
continue;
|
|
525
|
+
seen.add(aliasKeyStr);
|
|
526
|
+
const target = this.findBinding(aliasKey);
|
|
527
|
+
nodes.push({
|
|
528
|
+
key: aliasKeyStr,
|
|
529
|
+
lifecycle: (_b = target === null || target === void 0 ? void 0 : target.lifecycle) !== null && _b !== void 0 ? _b : 'transient',
|
|
530
|
+
lazy: !!(target === null || target === void 0 ? void 0 : target.lazy),
|
|
531
|
+
aliasOf: originalKey.toString(),
|
|
532
|
+
inherited: false,
|
|
533
|
+
resolved: false,
|
|
534
|
+
});
|
|
535
|
+
}
|
|
536
|
+
const edges = [];
|
|
537
|
+
for (const [from, tos] of this.dependencyEdges) {
|
|
538
|
+
for (const to of tos) {
|
|
539
|
+
edges.push({ from, to });
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
const ancestors = [
|
|
543
|
+
...(this.parent ? [this.parent] : []),
|
|
544
|
+
...this.composedContainers,
|
|
545
|
+
];
|
|
546
|
+
for (const ancestor of ancestors) {
|
|
547
|
+
const snapshot = ancestor.inspect(seen);
|
|
548
|
+
for (const node of snapshot.nodes) {
|
|
549
|
+
nodes.push({ ...node, inherited: true });
|
|
550
|
+
}
|
|
551
|
+
edges.push(...snapshot.edges);
|
|
552
|
+
}
|
|
553
|
+
return { nodes, edges };
|
|
554
|
+
}
|
|
555
|
+
/**
|
|
556
|
+
* Build a filterable dependency graph of this container's bindings and
|
|
557
|
+
* the dependency edges observed while resolving them.
|
|
558
|
+
*
|
|
559
|
+
* @returns A Graph snapshot you can filter/inspect
|
|
560
|
+
*
|
|
561
|
+
* @example
|
|
562
|
+
* ```typescript
|
|
563
|
+
* const graph = container.graph();
|
|
564
|
+
* const singletons = graph.getNodes({ lifecycle: 'singleton' });
|
|
565
|
+
* const deps = graph.dependenciesOf('userService');
|
|
566
|
+
* ```
|
|
567
|
+
*/
|
|
568
|
+
graph() {
|
|
569
|
+
return new Graph_1.Graph(this.inspect());
|
|
570
|
+
}
|
|
448
571
|
/**
|
|
449
572
|
* Reset the container to its initial state
|
|
450
573
|
* Clears all bindings, instances, aliases, and context
|
|
@@ -462,6 +585,7 @@ class Container {
|
|
|
462
585
|
this.instances.clear();
|
|
463
586
|
this.aliases.clear();
|
|
464
587
|
this.bindingCache.clear();
|
|
588
|
+
this.dependencyEdges.clear();
|
|
465
589
|
this.currentContext = undefined;
|
|
466
590
|
this.currentScope = undefined;
|
|
467
591
|
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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"}
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Dependency graph for inspecting and filtering container bindings
|
|
4
|
+
*
|
|
5
|
+
* @module Graph
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.Graph = void 0;
|
|
9
|
+
/**
|
|
10
|
+
* Read-only, filterable view over a container's bindings and the
|
|
11
|
+
* dependency edges discovered while resolving them.
|
|
12
|
+
*
|
|
13
|
+
* Edges are recorded as `resolve()` runs, so they only reflect
|
|
14
|
+
* dependencies that have actually been resolved at least once - this is
|
|
15
|
+
* a runtime graph, not a static analysis of factory source code.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const graph = container.graph();
|
|
20
|
+
*
|
|
21
|
+
* const singletons = graph.getNodes({ lifecycle: 'singleton' });
|
|
22
|
+
* const unresolved = graph.getNodes({ resolved: false });
|
|
23
|
+
* const deps = graph.dependenciesOf('userService');
|
|
24
|
+
*
|
|
25
|
+
* console.log(graph.toDot()); // paste into a Graphviz viewer
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
class Graph {
|
|
29
|
+
constructor(snapshot) {
|
|
30
|
+
this.nodes = snapshot.nodes;
|
|
31
|
+
this.edges = snapshot.edges;
|
|
32
|
+
this.byPlainKey = new Map();
|
|
33
|
+
for (const node of this.nodes) {
|
|
34
|
+
if (!this.byPlainKey.has(node.key)) {
|
|
35
|
+
this.byPlainKey.set(node.key, node);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Get all nodes, optionally filtered
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* ```typescript
|
|
44
|
+
* graph.getNodes({ lifecycle: ['singleton', 'scoped'], resolved: true });
|
|
45
|
+
* graph.getNodes({ key: /Repository$/ });
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
getNodes(filter) {
|
|
49
|
+
let result = this.nodes;
|
|
50
|
+
if (!filter) {
|
|
51
|
+
return [...result];
|
|
52
|
+
}
|
|
53
|
+
if (filter.lifecycle) {
|
|
54
|
+
const lifecycles = Array.isArray(filter.lifecycle)
|
|
55
|
+
? filter.lifecycle
|
|
56
|
+
: [filter.lifecycle];
|
|
57
|
+
result = result.filter((n) => lifecycles.includes(n.lifecycle));
|
|
58
|
+
}
|
|
59
|
+
if (filter.resolved !== undefined) {
|
|
60
|
+
result = result.filter((n) => n.resolved === filter.resolved);
|
|
61
|
+
}
|
|
62
|
+
if (filter.lazy !== undefined) {
|
|
63
|
+
result = result.filter((n) => n.lazy === filter.lazy);
|
|
64
|
+
}
|
|
65
|
+
if (filter.inherited !== undefined) {
|
|
66
|
+
result = result.filter((n) => n.inherited === filter.inherited);
|
|
67
|
+
}
|
|
68
|
+
if (filter.key !== undefined) {
|
|
69
|
+
const matcher = filter.key;
|
|
70
|
+
result = result.filter((n) => matcher instanceof RegExp
|
|
71
|
+
? matcher.test(n.key)
|
|
72
|
+
: n.key.includes(matcher));
|
|
73
|
+
}
|
|
74
|
+
return [...result];
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get a single (non-contextual) node by key
|
|
78
|
+
*/
|
|
79
|
+
getNode(key) {
|
|
80
|
+
return this.byPlainKey.get(key.toString());
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Get all edges, optionally filtered by source and/or target key
|
|
84
|
+
*/
|
|
85
|
+
getEdges(filter) {
|
|
86
|
+
if (!filter) {
|
|
87
|
+
return [...this.edges];
|
|
88
|
+
}
|
|
89
|
+
return this.edges.filter((e) => {
|
|
90
|
+
if (filter.from !== undefined && e.from !== filter.from.toString()) {
|
|
91
|
+
return false;
|
|
92
|
+
}
|
|
93
|
+
if (filter.to !== undefined && e.to !== filter.to.toString()) {
|
|
94
|
+
return false;
|
|
95
|
+
}
|
|
96
|
+
return true;
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Direct dependencies of a key - the services it needs
|
|
101
|
+
*/
|
|
102
|
+
dependenciesOf(key) {
|
|
103
|
+
const keyStr = key.toString();
|
|
104
|
+
return this.edges
|
|
105
|
+
.filter((e) => e.from === keyStr)
|
|
106
|
+
.map((e) => this.byPlainKey.get(e.to))
|
|
107
|
+
.filter((n) => n !== undefined);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Direct dependents of a key - the services that need it
|
|
111
|
+
*/
|
|
112
|
+
dependentsOf(key) {
|
|
113
|
+
const keyStr = key.toString();
|
|
114
|
+
return this.edges
|
|
115
|
+
.filter((e) => e.to === keyStr)
|
|
116
|
+
.map((e) => this.byPlainKey.get(e.from))
|
|
117
|
+
.filter((n) => n !== undefined);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Nodes that nothing else depends on (candidate entry points)
|
|
121
|
+
*/
|
|
122
|
+
roots() {
|
|
123
|
+
const dependedOn = new Set(this.edges.map((e) => e.to));
|
|
124
|
+
return this.nodes.filter((n) => !dependedOn.has(n.key));
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Nodes with no recorded dependencies (leaves of the graph)
|
|
128
|
+
*/
|
|
129
|
+
leaves() {
|
|
130
|
+
const withDeps = new Set(this.edges.map((e) => e.from));
|
|
131
|
+
return this.nodes.filter((n) => !withDeps.has(n.key));
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Build a nested tree starting at `key`, recursively expanding
|
|
135
|
+
* dependencies into `children`. Handy for rendering a dependency tree in
|
|
136
|
+
* a UI (e.g. a collapsible tree view).
|
|
137
|
+
*
|
|
138
|
+
* A node that reappears along the same branch (A depends on B, B depends
|
|
139
|
+
* on A, recorded from two separate resolve() calls) is marked
|
|
140
|
+
* `cyclic: true` instead of recursing forever - `children` stays empty
|
|
141
|
+
* there. Nodes that appear in multiple, unrelated branches (e.g. two
|
|
142
|
+
* services sharing the same `db` dependency) are duplicated as separate
|
|
143
|
+
* tree nodes, which is expected for a tree view.
|
|
144
|
+
*
|
|
145
|
+
* @param key The root key to build the tree from
|
|
146
|
+
* @returns The tree, or undefined if `key` isn't a known node
|
|
147
|
+
*
|
|
148
|
+
* @example
|
|
149
|
+
* ```typescript
|
|
150
|
+
* const tree = container.graph().toTree('service');
|
|
151
|
+
* // { key: 'service', children: [{ key: 'repo', children: [{ key: 'db', children: [] }] }] }
|
|
152
|
+
* ```
|
|
153
|
+
*/
|
|
154
|
+
toTree(key, _visited = new Set()) {
|
|
155
|
+
const keyStr = key.toString();
|
|
156
|
+
const node = this.byPlainKey.get(keyStr);
|
|
157
|
+
if (!node)
|
|
158
|
+
return undefined;
|
|
159
|
+
if (_visited.has(keyStr)) {
|
|
160
|
+
return { ...node, children: [], cyclic: true };
|
|
161
|
+
}
|
|
162
|
+
const visited = new Set(_visited);
|
|
163
|
+
visited.add(keyStr);
|
|
164
|
+
const children = this.dependenciesOf(keyStr)
|
|
165
|
+
.map((dep) => this.toTree(dep.key, visited))
|
|
166
|
+
.filter((n) => n !== undefined);
|
|
167
|
+
return { ...node, children };
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Build a tree for every root (nodes nothing else depends on), covering
|
|
171
|
+
* the whole graph at once - ready to hand to a UI as-is.
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```typescript
|
|
175
|
+
* const forest = container.graph().forest();
|
|
176
|
+
* // [{ key: 'service', children: [...] }, { key: 'unusedSingleton', children: [] }]
|
|
177
|
+
* ```
|
|
178
|
+
*/
|
|
179
|
+
forest() {
|
|
180
|
+
return this.roots()
|
|
181
|
+
.map((root) => this.toTree(root.key))
|
|
182
|
+
.filter((n) => n !== undefined);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Plain JSON-serializable snapshot of the graph
|
|
186
|
+
*/
|
|
187
|
+
toJSON() {
|
|
188
|
+
return { nodes: [...this.nodes], edges: [...this.edges] };
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Export as Graphviz DOT source, for visualizing the graph
|
|
192
|
+
*/
|
|
193
|
+
toDot() {
|
|
194
|
+
const lines = ['digraph Container {'];
|
|
195
|
+
for (const node of this.nodes) {
|
|
196
|
+
const label = `${node.key}\\n(${node.lifecycle}${node.lazy ? ', lazy' : ''})`;
|
|
197
|
+
lines.push(` "${node.key}" [label="${label}"];`);
|
|
198
|
+
}
|
|
199
|
+
for (const edge of this.edges) {
|
|
200
|
+
lines.push(` "${edge.from}" -> "${edge.to}";`);
|
|
201
|
+
}
|
|
202
|
+
lines.push('}');
|
|
203
|
+
return lines.join('\n');
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
exports.Graph = Graph;
|
|
207
|
+
//# sourceMappingURL=Graph.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Graph.js","sourceRoot":"","sources":["../../src/Graph.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
* - High-performance Map-based storage (v1.2.0)
|
|
19
19
|
* - Auto-dispose for IDisposable instances (v1.2.0)
|
|
20
20
|
* - Modular architecture (v1.2.0)
|
|
21
|
+
* - Dependency graph inspection with filtering, tree, and DOT export (v1.5.0)
|
|
21
22
|
*
|
|
22
23
|
* @example
|
|
23
24
|
* ```typescript
|
|
@@ -29,7 +30,7 @@
|
|
|
29
30
|
* ```
|
|
30
31
|
*/
|
|
31
32
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
|
-
exports.Scope = exports.Lazy = exports.Container = void 0;
|
|
33
|
+
exports.Graph = exports.Scope = exports.Lazy = exports.Container = void 0;
|
|
33
34
|
// Export main classes
|
|
34
35
|
var Container_1 = require("./Container");
|
|
35
36
|
Object.defineProperty(exports, "Container", { enumerable: true, get: function () { return Container_1.Container; } });
|
|
@@ -37,4 +38,6 @@ var Lazy_1 = require("./Lazy");
|
|
|
37
38
|
Object.defineProperty(exports, "Lazy", { enumerable: true, get: function () { return Lazy_1.Lazy; } });
|
|
38
39
|
var Scope_1 = require("./Scope");
|
|
39
40
|
Object.defineProperty(exports, "Scope", { enumerable: true, get: function () { return Scope_1.Scope; } });
|
|
41
|
+
var Graph_1 = require("./Graph");
|
|
42
|
+
Object.defineProperty(exports, "Graph", { enumerable: true, get: function () { return Graph_1.Graph; } });
|
|
40
43
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;;;AAEH,sBAAsB;AACtB,yCAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,+BAA8B;AAArB,4FAAA,IAAI,OAAA;AACb,iCAAgC;AAAvB,8FAAA,KAAK,OAAA;AACd,iCAAgC;AAAvB,8FAAA,KAAK,OAAA"}
|