snugkv-nest 0.6.0 → 0.7.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 +12 -0
- package/dist/core/service-map.d.ts +25 -0
- package/dist/core/service-map.js +14 -0
- package/dist/core/service-map.js.map +1 -1
- package/dist/nest/module.d.ts +4 -1
- package/dist/nest/module.js.map +1 -1
- package/dist/nest/runtime.js +17 -0
- package/dist/nest/runtime.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -200,6 +200,18 @@ The card is a JSON string at `snug:svc:<service>:<instance>`, refreshed every 15
|
|
|
200
200
|
}
|
|
201
201
|
```
|
|
202
202
|
|
|
203
|
+
The card also lists **dependencies**: things outside the app it uses or is called by. SnugKV is added by itself; declare the rest once at startup so the map shows the whole picture:
|
|
204
|
+
|
|
205
|
+
```ts
|
|
206
|
+
import { declareDependency } from 'snugkv-nest';
|
|
207
|
+
|
|
208
|
+
declareDependency({ kind: 'mongodb', name: 'MongoDB', address: 'mongo:27017' });
|
|
209
|
+
declareDependency({ kind: 'http', name: 'Alchemy', direction: 'in', routes: ['/api/evm/alchemy-webhook'] }); // calls us
|
|
210
|
+
declareDependency({ kind: 'http', name: 'Alchemy', hosts: ['eth-sepolia.g.alchemy.com'] }); // we call it
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
or pass them as `serviceMap: { dependencies: [...] }`. Credentials in addresses are removed.
|
|
214
|
+
|
|
203
215
|
Routes come from the app's controllers (with the global prefix). Queues and topics are recorded as they are used: registered with `SnugKvQueueModule`, added to, processed by a worker, published to or subscribed to. Turn it off with `serviceMap: false`. With `tracing: true` the Map page also draws what actually happens (traffic, errors, external hosts, databases) from the traces.
|
|
204
216
|
|
|
205
217
|
## Messaging (streams)
|
|
@@ -15,6 +15,23 @@ export interface ServiceRoute {
|
|
|
15
15
|
/** `Controller.method` */
|
|
16
16
|
handler?: string;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Something outside the app that it depends on or that calls it: a database,
|
|
20
|
+
* SnugKV itself, a third-party API, a webhook provider.
|
|
21
|
+
*/
|
|
22
|
+
export interface ServiceDependency {
|
|
23
|
+
/** `snugkv`, `mongodb`, `postgres`, `redis`, `http`, … */
|
|
24
|
+
kind: string;
|
|
25
|
+
/** Shown on the map, e.g. `MongoDB`, `Alchemy`. */
|
|
26
|
+
name: string;
|
|
27
|
+
/** `host:port` or a host name; never credentials. */
|
|
28
|
+
address?: string;
|
|
29
|
+
/** `out` (default): the app calls it. `in`: it calls the app (webhooks). */
|
|
30
|
+
direction?: 'in' | 'out';
|
|
31
|
+
/** For `in`: the routes it calls. For `out` HTTP APIs: host names it is reached at. */
|
|
32
|
+
routes?: string[];
|
|
33
|
+
hosts?: string[];
|
|
34
|
+
}
|
|
18
35
|
export interface ServiceCard {
|
|
19
36
|
service: string;
|
|
20
37
|
instance: string;
|
|
@@ -40,7 +57,15 @@ export interface ServiceCard {
|
|
|
40
57
|
group?: string;
|
|
41
58
|
}>;
|
|
42
59
|
};
|
|
60
|
+
dependencies: ServiceDependency[];
|
|
43
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
* Adds something this app uses or is called by to its service card, for the
|
|
64
|
+
* console's map: `declareDependency({ kind: 'mongodb', name: 'MongoDB', address: 'mongo:27017' })`,
|
|
65
|
+
* `declareDependency({ kind: 'http', name: 'Alchemy', direction: 'in', routes: ['/api/webhooks/alchemy'] })`.
|
|
66
|
+
* Declaring the same kind and name again replaces it.
|
|
67
|
+
*/
|
|
68
|
+
export declare function declareDependency(dep: ServiceDependency): void;
|
|
44
69
|
/** @internal Called by Queue.add, registered queues and FlowProducer. */
|
|
45
70
|
export declare function noteQueueProducer(queue: string): void;
|
|
46
71
|
/** @internal Called when a Worker starts. */
|
package/dist/core/service-map.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ServiceCardReporter = exports.SERVICE_CARD_PREFIX = void 0;
|
|
4
|
+
exports.declareDependency = declareDependency;
|
|
4
5
|
exports.noteQueueProducer = noteQueueProducer;
|
|
5
6
|
exports.noteQueueWorker = noteQueueWorker;
|
|
6
7
|
exports.notePublish = notePublish;
|
|
@@ -23,7 +24,18 @@ const seen = {
|
|
|
23
24
|
processes: new Map(),
|
|
24
25
|
publishes: new Set(),
|
|
25
26
|
subscribes: new Map(),
|
|
27
|
+
dependencies: new Map(),
|
|
26
28
|
};
|
|
29
|
+
/**
|
|
30
|
+
* Adds something this app uses or is called by to its service card, for the
|
|
31
|
+
* console's map: `declareDependency({ kind: 'mongodb', name: 'MongoDB', address: 'mongo:27017' })`,
|
|
32
|
+
* `declareDependency({ kind: 'http', name: 'Alchemy', direction: 'in', routes: ['/api/webhooks/alchemy'] })`.
|
|
33
|
+
* Declaring the same kind and name again replaces it.
|
|
34
|
+
*/
|
|
35
|
+
function declareDependency(dep) {
|
|
36
|
+
const address = dep.address?.replace(/\/\/[^@/]*@/, '//').replace(/^[^@/]*@/, '');
|
|
37
|
+
seen.dependencies.set(`${dep.kind}\u0000${dep.name}\u0000${dep.direction ?? 'out'}`, { ...dep, address });
|
|
38
|
+
}
|
|
27
39
|
/** @internal Called by Queue.add, registered queues and FlowProducer. */
|
|
28
40
|
function noteQueueProducer(queue) {
|
|
29
41
|
seen.produces.add(queue);
|
|
@@ -46,6 +58,7 @@ function resetServiceMap() {
|
|
|
46
58
|
seen.processes.clear();
|
|
47
59
|
seen.publishes.clear();
|
|
48
60
|
seen.subscribes.clear();
|
|
61
|
+
seen.dependencies.clear();
|
|
49
62
|
}
|
|
50
63
|
/** Writes this process's card until stopped. Never throws into the app. */
|
|
51
64
|
class ServiceCardReporter {
|
|
@@ -80,6 +93,7 @@ class ServiceCardReporter {
|
|
|
80
93
|
publishes: [...seen.publishes].sort(),
|
|
81
94
|
subscribes: [...seen.subscribes].map(([topic, group]) => ({ topic, group })).sort((a, b) => a.topic.localeCompare(b.topic)),
|
|
82
95
|
},
|
|
96
|
+
dependencies: [...seen.dependencies.values()],
|
|
83
97
|
};
|
|
84
98
|
}
|
|
85
99
|
/** Writes the card now. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service-map.js","sourceRoot":"","sources":["../../src/core/service-map.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"service-map.js","sourceRoot":"","sources":["../../src/core/service-map.ts"],"names":[],"mappings":"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"}
|
package/dist/nest/module.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { DynamicModule, InjectionToken, ModuleMetadata, OptionalFactoryDependenc
|
|
|
2
2
|
import { SnugKvBusOptions } from '../core/bus';
|
|
3
3
|
import { CacheOptions } from '../core/cache';
|
|
4
4
|
import { TracerOptions } from '../core/trace';
|
|
5
|
+
import type { ServiceDependency } from '../core/service-map';
|
|
5
6
|
export interface SnugKvModuleOptions extends Omit<SnugKvBusOptions, 'service'> {
|
|
6
7
|
/** Name of this app. Needed for messaging (default consumer group); defaults to `app`. */
|
|
7
8
|
service?: string;
|
|
@@ -29,7 +30,9 @@ export interface SnugKvModuleOptions extends Omit<SnugKvBusOptions, 'service'> {
|
|
|
29
30
|
* Describe this app in SnugKV (`snug:svc:<service>:<instance>`): its HTTP
|
|
30
31
|
* routes, queues and topics, for the console's Map page. Default true.
|
|
31
32
|
*/
|
|
32
|
-
serviceMap?: boolean
|
|
33
|
+
serviceMap?: boolean | {
|
|
34
|
+
dependencies?: ServiceDependency[];
|
|
35
|
+
};
|
|
33
36
|
}
|
|
34
37
|
export interface SnugTracingOptions extends Omit<TracerOptions, 'service'> {
|
|
35
38
|
/** Make every incoming HTTP request a trace (default true). */
|
package/dist/nest/module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/nest/module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAoI;AACpI,uCAAgE;AAChE,qCAA0D;AAC1D,yCAA0D;AAC1D,2CAA8C;AAC9C,uCAA2C;AAC3C,6CAAkD;AAClD,2CAAkD;AAClD,iDAAsD;AACtD,yCAAiE;AACjE,mDAA0D;
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/nest/module.ts"],"names":[],"mappings":"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"}
|
package/dist/nest/runtime.js
CHANGED
|
@@ -17,6 +17,7 @@ const common_1 = require("@nestjs/common");
|
|
|
17
17
|
const constants_1 = require("@nestjs/common/constants");
|
|
18
18
|
const core_1 = require("@nestjs/core");
|
|
19
19
|
const service_map_1 = require("../core/service-map");
|
|
20
|
+
const util_1 = require("../core/util");
|
|
20
21
|
const bus_1 = require("../core/bus");
|
|
21
22
|
const worker_1 = require("../core/queue/worker");
|
|
22
23
|
const trace_1 = require("../core/trace");
|
|
@@ -75,6 +76,22 @@ let SnugKvRuntime = class SnugKvRuntime {
|
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
78
|
if (this.options.serviceMap !== false) {
|
|
79
|
+
// SnugKV itself is always a dependency.
|
|
80
|
+
let address;
|
|
81
|
+
try {
|
|
82
|
+
if (this.options.url) {
|
|
83
|
+
const u = (0, util_1.parseUrl)(this.options.url);
|
|
84
|
+
address = `${u.host}:${u.port}`;
|
|
85
|
+
}
|
|
86
|
+
else if (this.options.host)
|
|
87
|
+
address = `${this.options.host}:${this.options.port ?? 6379}`;
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
/* unusual URL: leave the address out */
|
|
91
|
+
}
|
|
92
|
+
(0, service_map_1.declareDependency)({ kind: 'snugkv', name: 'SnugKV', address });
|
|
93
|
+
for (const d of (typeof this.options.serviceMap === 'object' ? this.options.serviceMap.dependencies : undefined) ?? [])
|
|
94
|
+
(0, service_map_1.declareDependency)(d);
|
|
78
95
|
this.card = new service_map_1.ServiceCardReporter(this.bus.client, { service: this.bus.service, instance: this.bus.instance, http: this.routes() });
|
|
79
96
|
this.card.start();
|
|
80
97
|
}
|
package/dist/nest/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/nest/runtime.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAkI;AAClI,wDAA0E;AAC1E,uCAA8E;AAC9E,
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/nest/runtime.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "snugkv-nest",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "NestJS module and TypeScript client for SnugKV: data types, cache, locks, rate limits, pub/sub, transactions, job queues, flow tracing and a durable stream message bus.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nestjs",
|