@lad-tech/nsc-toolkit 1.3.0 → 1.4.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/.eslintrc.json +104 -0
- package/.github/workflows/build-and-test.yml +22 -0
- package/.github/workflows/publish-package-to-npmjs.yml +5 -0
- package/CHANGELOG.md +2 -2
- package/README.md +2 -0
- package/coverage/clover.xml +578 -0
- package/coverage/coverage-final.json +12 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +146 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +196 -0
- package/coverage/lcov.info +1095 -0
- package/lefthook.yml +2 -2
- package/package.json +18 -10
- package/tsconfig.json +1 -1
- package/.eslintrc.js +0 -106
- package/dist/Client.js +0 -240
- package/dist/Client.js.map +0 -1
- package/dist/Method.js +0 -7
- package/dist/Method.js.map +0 -1
- package/dist/Root.js +0 -67
- package/dist/Root.js.map +0 -1
- package/dist/Service.js +0 -493
- package/dist/Service.js.map +0 -1
- package/dist/StreamManager.js +0 -109
- package/dist/StreamManager.js.map +0 -1
- package/dist/index.js +0 -22
- package/dist/index.js.map +0 -1
- package/dist/injector.js +0 -39
- package/dist/injector.js.map +0 -1
- package/dist/interfaces.js +0 -4
- package/dist/interfaces.js.map +0 -1
- package/dist/types/Client.d.ts +0 -29
- package/dist/types/Method.d.ts +0 -6
- package/dist/types/Root.d.ts +0 -26
- package/dist/types/Service.d.ts +0 -99
- package/dist/types/StreamManager.d.ts +0 -20
- package/dist/types/index.d.ts +0 -5
- package/dist/types/injector.d.ts +0 -11
- package/dist/types/interfaces.d.ts +0 -135
package/dist/injector.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.instance = exports.service = exports.related = exports.InstanceContainer = exports.ServiceContainer = void 0;
|
|
4
|
-
require("reflect-metadata");
|
|
5
|
-
const serviceMetaKey = Symbol('services');
|
|
6
|
-
const instanceMetaKey = Symbol('instance');
|
|
7
|
-
exports.ServiceContainer = new Map();
|
|
8
|
-
exports.InstanceContainer = new Map();
|
|
9
|
-
function related(target) {
|
|
10
|
-
const dependencies = Reflect.getMetadata(serviceMetaKey, target.prototype);
|
|
11
|
-
const instances = Reflect.getMetadata(instanceMetaKey, target.prototype);
|
|
12
|
-
exports.ServiceContainer.set(target.settings.action, dependencies);
|
|
13
|
-
exports.InstanceContainer.set(target.settings.action, instances);
|
|
14
|
-
}
|
|
15
|
-
exports.related = related;
|
|
16
|
-
function setMetaData(item, itemName, metaKey, target) {
|
|
17
|
-
let storage;
|
|
18
|
-
if (Reflect.hasMetadata(metaKey, target)) {
|
|
19
|
-
storage = Reflect.getMetadata(metaKey, target);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
storage = new Map();
|
|
23
|
-
Reflect.defineMetadata(metaKey, storage, target);
|
|
24
|
-
}
|
|
25
|
-
storage.set(itemName, item);
|
|
26
|
-
}
|
|
27
|
-
function service(dependence) {
|
|
28
|
-
return function (target, dependenceName) {
|
|
29
|
-
setMetaData(dependence, dependenceName, serviceMetaKey, target);
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
exports.service = service;
|
|
33
|
-
function instance(instance) {
|
|
34
|
-
return function (target, instanceName) {
|
|
35
|
-
setMetaData(instance, instanceName, instanceMetaKey, target);
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
exports.instance = instance;
|
|
39
|
-
//# sourceMappingURL=injector.js.map
|
package/dist/injector.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"injector.js","sourceRoot":"","sources":["../src/injector.ts"],"names":[],"mappings":";;;AAAA,4BAA0B;AAQ1B,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAC1C,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAE9B,QAAA,gBAAgB,GAAmC,IAAI,GAAG,EAAE,CAAC;AAC7D,QAAA,iBAAiB,GAAiC,IAAI,GAAG,EAAE,CAAC;AAEzE,SAAgB,OAAO,CAAmB,MAAS;IACjD,MAAM,YAAY,GAAsB,OAAO,CAAC,WAAW,CAAC,cAAc,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9F,MAAM,SAAS,GAAoB,OAAO,CAAC,WAAW,CAAC,eAAe,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1F,wBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC3D,yBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAC3D,CAAC;AALD,0BAKC;AAED,SAAS,WAAW,CAAC,IAA2B,EAAE,QAAgB,EAAE,OAAe,EAAE,MAAW;IAC9F,IAAI,OAA6B,CAAC;IAClC,IAAI,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;QACxC,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;KAChD;SAAM;QACL,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;QACpB,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KAClD;IACD,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,SAAgB,OAAO,CAAC,UAAsB;IAC5C,OAAO,UAAU,MAAW,EAAE,cAAsB;QAClD,WAAW,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAClE,CAAC,CAAC;AACJ,CAAC;AAJD,0BAIC;AAED,SAAgB,QAAQ,CAAC,QAAkB;IACzC,OAAO,UAAU,MAAW,EAAE,YAAoB;QAChD,WAAW,CAAC,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IAC/D,CAAC,CAAC;AACJ,CAAC;AAJD,4BAIC"}
|
package/dist/interfaces.js
DELETED
package/dist/interfaces.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../src/interfaces.ts"],"names":[],"mappings":";AAAA,SAAS"}
|
package/dist/types/Client.d.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" />
|
|
2
|
-
import { Readable } from 'stream';
|
|
3
|
-
import { Emitter, Listener, MethodSettings, ClientParam, GetListenerOptions } from './interfaces';
|
|
4
|
-
import { Root } from './Root';
|
|
5
|
-
declare type RequestData = Record<string, unknown> | Readable;
|
|
6
|
-
export declare class Client<E extends Emitter = Emitter> extends Root {
|
|
7
|
-
private serviceName;
|
|
8
|
-
private baggage?;
|
|
9
|
-
private cache?;
|
|
10
|
-
private events?;
|
|
11
|
-
private subscriptions;
|
|
12
|
-
private REQUEST_HTTP_SETTINGS_TIMEOUT;
|
|
13
|
-
constructor({ broker, events, loggerOutputFormatter, serviceName, baggage, cache }: ClientParam<E>);
|
|
14
|
-
private startWatch;
|
|
15
|
-
/**
|
|
16
|
-
* Make listener for service events. Auto subscribe and unsubscribe to subject
|
|
17
|
-
*/
|
|
18
|
-
getListener<A extends keyof E>(serviceNameFrom: string, options?: GetListenerOptions): Listener<E>;
|
|
19
|
-
private createCacheKey;
|
|
20
|
-
private validate;
|
|
21
|
-
protected request<R = any, P extends RequestData = RequestData>(subject: string, data: P, { options, request, response }: MethodSettings): Promise<R>;
|
|
22
|
-
private getHTTPSettingsFromRemoteService;
|
|
23
|
-
private isStream;
|
|
24
|
-
private makeBrokerRequest;
|
|
25
|
-
private makeHttpRequest;
|
|
26
|
-
private convertBaggaggeToExternalHeader;
|
|
27
|
-
private isJsMessage;
|
|
28
|
-
}
|
|
29
|
-
export {};
|
package/dist/types/Method.d.ts
DELETED
package/dist/types/Root.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Logs } from '@lad-tech/toolbelt';
|
|
2
|
-
import * as opentelemetry from '@opentelemetry/api';
|
|
3
|
-
import { NatsConnection } from 'nats';
|
|
4
|
-
import { Baggage } from './interfaces';
|
|
5
|
-
export declare class Root {
|
|
6
|
-
protected brocker: NatsConnection;
|
|
7
|
-
protected readonly SERVICE_SUBJECT_FOR_GET_HTTP_SETTINGS = "get_http_settings";
|
|
8
|
-
protected readonly CACHE_SERVICE_KEY = "CACHE";
|
|
9
|
-
protected readonly SUBJECT_DELIMITER = ".";
|
|
10
|
-
protected logger: Logs.Logger;
|
|
11
|
-
constructor(brocker: NatsConnection, outputFormatter?: Logs.OutputFormatter);
|
|
12
|
-
protected castToNumber(value?: string): number;
|
|
13
|
-
protected getSettingFromEnv(name: string, required?: boolean): string | undefined;
|
|
14
|
-
/**
|
|
15
|
-
* Make opentelemetry context from baggagge
|
|
16
|
-
*/
|
|
17
|
-
protected getContext(baggage?: Baggage): opentelemetry.Context | undefined;
|
|
18
|
-
protected getExpired(expired?: number, ownTimeout?: number): number;
|
|
19
|
-
protected buildErrorMessage(error: string | Error, code?: number): {
|
|
20
|
-
payload: null;
|
|
21
|
-
error: {
|
|
22
|
-
message: string;
|
|
23
|
-
code: number | undefined;
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
}
|
package/dist/types/Service.d.ts
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { Root } from './Root';
|
|
2
|
-
import { Emitter, ServiceOptions, Baggage, ExternalBaggage, ClientService } from './interfaces';
|
|
3
|
-
export declare class Service<E extends Emitter = Emitter> extends Root {
|
|
4
|
-
private options;
|
|
5
|
-
emitter: E;
|
|
6
|
-
private serviceName;
|
|
7
|
-
private httpServer?;
|
|
8
|
-
private httpProbServer?;
|
|
9
|
-
protected httpPort?: number;
|
|
10
|
-
protected ipAddress?: string;
|
|
11
|
-
private subscriptions;
|
|
12
|
-
private httpMethods;
|
|
13
|
-
private rootSpans;
|
|
14
|
-
constructor(options: ServiceOptions<E>);
|
|
15
|
-
/**
|
|
16
|
-
* Create global Tracer
|
|
17
|
-
*/
|
|
18
|
-
private createTracer;
|
|
19
|
-
/**
|
|
20
|
-
* Wrapper for async methods. Create span
|
|
21
|
-
*/
|
|
22
|
-
private perform;
|
|
23
|
-
/**
|
|
24
|
-
* Creating an object to inject into Method (business logic)
|
|
25
|
-
*/
|
|
26
|
-
private createObjectWithDependencies;
|
|
27
|
-
/**
|
|
28
|
-
* Create Method (business logic) context
|
|
29
|
-
*/
|
|
30
|
-
private createMethodContext;
|
|
31
|
-
/**
|
|
32
|
-
* Create Baggage from span. Expired one-on-one business logic call
|
|
33
|
-
*/
|
|
34
|
-
private getNextBaggage;
|
|
35
|
-
/**
|
|
36
|
-
* If there is no baggage. For example, in HTTP Gateway
|
|
37
|
-
*/
|
|
38
|
-
getRootBaggage(subject: string, headers?: ExternalBaggage, ownTimeout?: number): {
|
|
39
|
-
expired: number;
|
|
40
|
-
traceId: string;
|
|
41
|
-
spanId: string;
|
|
42
|
-
traceFlags: number;
|
|
43
|
-
};
|
|
44
|
-
/**
|
|
45
|
-
* End root baggage
|
|
46
|
-
*/
|
|
47
|
-
endRootSpan(traceId: string, error?: Error): void;
|
|
48
|
-
buildService<C extends ClientService>(Client: C, baggage?: Baggage): InstanceType<C>;
|
|
49
|
-
/**
|
|
50
|
-
* Create service Method for send HTTP settings
|
|
51
|
-
*/
|
|
52
|
-
private runServiceMethodForHttp;
|
|
53
|
-
private makeHttpSingleResponse;
|
|
54
|
-
/**
|
|
55
|
-
* Create transform stream for convert object to string in stream pipeline
|
|
56
|
-
*/
|
|
57
|
-
private getStringifyTransform;
|
|
58
|
-
private makeHttpStreamResponse;
|
|
59
|
-
/**
|
|
60
|
-
* Up HTTP server and start listen http routes
|
|
61
|
-
*/
|
|
62
|
-
private buildHTTPHandlers;
|
|
63
|
-
/**
|
|
64
|
-
* Run business logic for request
|
|
65
|
-
*/
|
|
66
|
-
private handled;
|
|
67
|
-
/**
|
|
68
|
-
* Start service. Subscribe for subject and up http server
|
|
69
|
-
*/
|
|
70
|
-
start(): Promise<void>;
|
|
71
|
-
/**
|
|
72
|
-
* Correct finish all connections
|
|
73
|
-
*/
|
|
74
|
-
private cleanupAndExit;
|
|
75
|
-
/**
|
|
76
|
-
* Handler for OS Signal
|
|
77
|
-
*/
|
|
78
|
-
private handleSignal;
|
|
79
|
-
/**
|
|
80
|
-
* Handler for Force OS Signal
|
|
81
|
-
*/
|
|
82
|
-
private handleFatalError;
|
|
83
|
-
/**
|
|
84
|
-
* Register listeners for Graceful Shutdown
|
|
85
|
-
*/
|
|
86
|
-
private registerGracefulShutdown;
|
|
87
|
-
/**
|
|
88
|
-
* Up Probe Route for container orchestration service
|
|
89
|
-
*/
|
|
90
|
-
private upProbeRoutes;
|
|
91
|
-
/**
|
|
92
|
-
* Build message for broker
|
|
93
|
-
*/
|
|
94
|
-
private buildMessage;
|
|
95
|
-
private upHTTPServer;
|
|
96
|
-
private getMyIpV4;
|
|
97
|
-
private getHttpSettings;
|
|
98
|
-
private getBaggageFromHTTPHeader;
|
|
99
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { StreamManagerParam, GetListenerOptions } from '.';
|
|
2
|
-
import { JetStreamSubscription } from 'nats';
|
|
3
|
-
import { Root } from './Root';
|
|
4
|
-
export declare class StreamManager extends Root {
|
|
5
|
-
private param;
|
|
6
|
-
private readonly STAR_WILDCARD;
|
|
7
|
-
private readonly GREATER_WILDCARD;
|
|
8
|
-
private readonly TWO_WEEKS_IN_SECOND;
|
|
9
|
-
private readonly ONE_DAY_IN_SECOND;
|
|
10
|
-
private readonly defaultStreamOption;
|
|
11
|
-
private jsm?;
|
|
12
|
-
constructor(param: StreamManagerParam);
|
|
13
|
-
createStreams(): Promise<void>;
|
|
14
|
-
createConsumer(serviceNameFrom: string, eventName: string, setting?: GetListenerOptions): Promise<JetStreamSubscription>;
|
|
15
|
-
private getStreamName;
|
|
16
|
-
private isNotFoundStreamError;
|
|
17
|
-
private buildPrefixForStreamName;
|
|
18
|
-
private capitalizeFirstLetter;
|
|
19
|
-
private convertSecondsToNanoseconds;
|
|
20
|
-
}
|
package/dist/types/index.d.ts
DELETED
package/dist/types/injector.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import 'reflect-metadata';
|
|
2
|
-
import { Method, ClientService } from './interfaces';
|
|
3
|
-
export declare type Instance = Record<string, (props: unknown) => Promise<unknown>>;
|
|
4
|
-
export declare type Dependence = ClientService<unknown>;
|
|
5
|
-
export declare type DependenceStorage = Map<string, Dependence>;
|
|
6
|
-
export declare type InstanceStorage = Map<string, Instance>;
|
|
7
|
-
export declare const ServiceContainer: Map<string, DependenceStorage>;
|
|
8
|
-
export declare const InstanceContainer: Map<string, InstanceStorage>;
|
|
9
|
-
export declare function related<T extends Method>(target: T): void;
|
|
10
|
-
export declare function service(dependence: Dependence): (target: any, dependenceName: string) => void;
|
|
11
|
-
export declare function instance(instance: Instance): (target: any, instanceName: string) => void;
|
|
@@ -1,135 +0,0 @@
|
|
|
1
|
-
import type { NatsConnection } from 'nats';
|
|
2
|
-
import type { Client } from './Client';
|
|
3
|
-
import type { Logs } from '@lad-tech/toolbelt';
|
|
4
|
-
export interface MethodOptions {
|
|
5
|
-
useStream?: {
|
|
6
|
-
request?: boolean;
|
|
7
|
-
response?: boolean;
|
|
8
|
-
};
|
|
9
|
-
cache?: number;
|
|
10
|
-
timeout?: number;
|
|
11
|
-
runTimeValidation?: {
|
|
12
|
-
request?: boolean;
|
|
13
|
-
response?: boolean;
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
export interface MethodSettings {
|
|
17
|
-
action: string;
|
|
18
|
-
options?: MethodOptions;
|
|
19
|
-
request?: Record<string, unknown>;
|
|
20
|
-
response?: Record<string, unknown>;
|
|
21
|
-
}
|
|
22
|
-
export interface Method {
|
|
23
|
-
settings: MethodSettings;
|
|
24
|
-
new (): {
|
|
25
|
-
handler: (params: any) => Promise<any>;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
export declare type ClientService<C = Client> = new (natsConnection: NatsConnection, baggage?: Baggage, cache?: CacheSettings, loggerOutputFormatter?: Logs.OutputFormatter) => C;
|
|
29
|
-
export declare type Baggage = {
|
|
30
|
-
traceId: string;
|
|
31
|
-
spanId: string;
|
|
32
|
-
traceFlags: number;
|
|
33
|
-
expired?: number;
|
|
34
|
-
};
|
|
35
|
-
export declare type ExternalBaggage = {
|
|
36
|
-
'nsc-expired'?: number;
|
|
37
|
-
'nsc-trace-id'?: string;
|
|
38
|
-
'nsc-span-id'?: string;
|
|
39
|
-
'nsc-trace-flags'?: number;
|
|
40
|
-
};
|
|
41
|
-
export interface Message<M = any> {
|
|
42
|
-
payload: M;
|
|
43
|
-
baggage?: Baggage;
|
|
44
|
-
error?: {
|
|
45
|
-
message: string;
|
|
46
|
-
code?: number;
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
export declare type Emitter = Record<string, (params: unknown) => void>;
|
|
50
|
-
export interface CacheSettings {
|
|
51
|
-
service: CacheService;
|
|
52
|
-
timeout: number;
|
|
53
|
-
}
|
|
54
|
-
export interface GracefulShutdownAdditionalService {
|
|
55
|
-
close: () => Promise<any>;
|
|
56
|
-
}
|
|
57
|
-
export interface ClientParam<E extends Emitter = Emitter> {
|
|
58
|
-
broker: NatsConnection;
|
|
59
|
-
serviceName: string;
|
|
60
|
-
baggage?: Baggage;
|
|
61
|
-
cache?: CacheSettings;
|
|
62
|
-
loggerOutputFormatter?: Logs.OutputFormatter;
|
|
63
|
-
events?: Events<E>;
|
|
64
|
-
}
|
|
65
|
-
export interface GetListenerOptions {
|
|
66
|
-
queue?: string;
|
|
67
|
-
deliver?: 'all' | 'new';
|
|
68
|
-
maxPending?: number;
|
|
69
|
-
}
|
|
70
|
-
export interface StreamManagerParam {
|
|
71
|
-
serviceName: string;
|
|
72
|
-
options: StreamOptions;
|
|
73
|
-
broker: NatsConnection;
|
|
74
|
-
outputFormatter?: Logs.OutputFormatter;
|
|
75
|
-
}
|
|
76
|
-
export interface EmitterEvent<D extends Record<string, any>> {
|
|
77
|
-
data: D;
|
|
78
|
-
}
|
|
79
|
-
export interface EmitterStreamEvent<D extends Record<string, any>> extends EmitterEvent<D> {
|
|
80
|
-
ack: () => void;
|
|
81
|
-
nak: (millis: number) => void;
|
|
82
|
-
}
|
|
83
|
-
export interface StreamAction {
|
|
84
|
-
action: string;
|
|
85
|
-
storage?: 'file' | 'memory' | string;
|
|
86
|
-
retentionPolicy?: 'limits' | 'interest' | 'workQueue' | string;
|
|
87
|
-
discardPolicy?: 'old' | 'new' | string;
|
|
88
|
-
messageTTL?: number;
|
|
89
|
-
duplicateTrackingTime?: number;
|
|
90
|
-
replication?: number;
|
|
91
|
-
rollUps?: boolean;
|
|
92
|
-
}
|
|
93
|
-
export interface StreamOptions {
|
|
94
|
-
prefix: string;
|
|
95
|
-
actions: StreamAction[];
|
|
96
|
-
}
|
|
97
|
-
export interface Event {
|
|
98
|
-
action: string;
|
|
99
|
-
options?: {
|
|
100
|
-
stream?: boolean;
|
|
101
|
-
};
|
|
102
|
-
description: string;
|
|
103
|
-
event: Record<string, unknown>;
|
|
104
|
-
}
|
|
105
|
-
export interface Events<E extends Emitter> {
|
|
106
|
-
list: Record<keyof E, Event>;
|
|
107
|
-
streamOptions: StreamOptions;
|
|
108
|
-
}
|
|
109
|
-
export interface ServiceOptions<E extends Emitter> {
|
|
110
|
-
name: string;
|
|
111
|
-
brokerConnection: NatsConnection;
|
|
112
|
-
methods: Method[];
|
|
113
|
-
events?: Events<E>;
|
|
114
|
-
cache?: CacheSettings;
|
|
115
|
-
loggerOutputFormatter?: Logs.OutputFormatter;
|
|
116
|
-
gracefulShutdown?: {
|
|
117
|
-
additional?: GracefulShutdownAdditionalService[];
|
|
118
|
-
timeout?: number;
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
export declare type EventStreamHandler<P extends Record<string, any>> = (params: EmitterStreamEvent<P>) => void;
|
|
122
|
-
export declare type EventHandler<P extends Record<string, any>> = (params: EmitterEvent<P>) => void;
|
|
123
|
-
export interface Listener<E extends Emitter> {
|
|
124
|
-
on<A extends keyof E>(action: A, handler: E[A]): void;
|
|
125
|
-
off<A extends keyof E>(action: A, handler: E[A]): void;
|
|
126
|
-
}
|
|
127
|
-
export interface HttpSettings {
|
|
128
|
-
ip?: string;
|
|
129
|
-
port?: number;
|
|
130
|
-
}
|
|
131
|
-
export interface CacheService {
|
|
132
|
-
set: (key: string, value: string, expired?: number) => Promise<void>;
|
|
133
|
-
get: (key: string) => Promise<string | undefined>;
|
|
134
|
-
delete: (key: string) => Promise<void>;
|
|
135
|
-
}
|