@akanjs/service 0.9.42 → 0.9.43
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/cjs/src/base.service.js
CHANGED
|
@@ -30,14 +30,10 @@ __export(base_service_exports, {
|
|
|
30
30
|
allSrvs: () => allSrvs
|
|
31
31
|
});
|
|
32
32
|
module.exports = __toCommonJS(base_service_exports);
|
|
33
|
-
var import_nest = require("@akanjs/nest");
|
|
34
33
|
var import_serviceDecorators = require("./serviceDecorators");
|
|
35
34
|
let BaseService = class extends (0, import_serviceDecorators.LogService)("BaseService") {
|
|
36
35
|
onCleanup;
|
|
37
36
|
baseSignal;
|
|
38
|
-
intervalPing() {
|
|
39
|
-
this.baseSignal.pubsubPing((/* @__PURE__ */ new Date()).toISOString());
|
|
40
|
-
}
|
|
41
37
|
async cleanup() {
|
|
42
38
|
if (!this.onCleanup)
|
|
43
39
|
throw new Error("onCleanup is not defined");
|
|
@@ -50,9 +46,6 @@ __decorateClass([
|
|
|
50
46
|
__decorateClass([
|
|
51
47
|
(0, import_serviceDecorators.Sig)()
|
|
52
48
|
], BaseService.prototype, "baseSignal", 2);
|
|
53
|
-
__decorateClass([
|
|
54
|
-
(0, import_nest.Interval)(5e3)
|
|
55
|
-
], BaseService.prototype, "intervalPing", 1);
|
|
56
49
|
BaseService = __decorateClass([
|
|
57
50
|
(0, import_serviceDecorators.Service)("BaseService")
|
|
58
51
|
], BaseService);
|
|
@@ -40,6 +40,7 @@ __export(serviceDecorators_exports, {
|
|
|
40
40
|
Sig: () => Sig,
|
|
41
41
|
Srv: () => Srv,
|
|
42
42
|
Use: () => Use,
|
|
43
|
+
getAllServiceRefs: () => getAllServiceRefs,
|
|
43
44
|
getServiceMeta: () => getServiceMeta,
|
|
44
45
|
getServiceRefs: () => getServiceRefs,
|
|
45
46
|
isServiceEnabled: () => isServiceEnabled,
|
|
@@ -57,6 +58,10 @@ class ServiceStorage {
|
|
|
57
58
|
const getServiceRefs = (refName) => {
|
|
58
59
|
return Reflect.getMetadata(refName, ServiceStorage.prototype) ?? [];
|
|
59
60
|
};
|
|
61
|
+
const getAllServiceRefs = () => {
|
|
62
|
+
const keys = Reflect.getMetadataKeys(ServiceStorage.prototype);
|
|
63
|
+
return keys.map((key) => getServiceRefs(key)[0]);
|
|
64
|
+
};
|
|
60
65
|
const setServiceRefs = (refName, services) => {
|
|
61
66
|
Reflect.defineMetadata(refName, services, ServiceStorage.prototype);
|
|
62
67
|
};
|
|
@@ -157,14 +162,16 @@ const serviceOf = (target) => {
|
|
|
157
162
|
(0, import_common2.Injectable)()(srvRef);
|
|
158
163
|
return srvRef;
|
|
159
164
|
};
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
165
|
+
function MixSrvs(...services) {
|
|
166
|
+
if (services.length === 0)
|
|
167
|
+
throw new Error("MixSrvs requires at least one service");
|
|
168
|
+
const [baseService, ...restServices] = services;
|
|
169
|
+
class Mix extends baseService {
|
|
163
170
|
}
|
|
164
171
|
const injectMetadataMap = new Map(
|
|
165
|
-
|
|
172
|
+
restServices.reduce((acc, srvRef) => {
|
|
166
173
|
const injectMetadataMap2 = getServiceInjectMetaMapOnPrototype(srvRef);
|
|
167
|
-
(0, import_common.applyMixins)(Mix, [srvRef]
|
|
174
|
+
(0, import_common.applyMixins)(Mix, [srvRef]);
|
|
168
175
|
return [...acc, ...injectMetadataMap2];
|
|
169
176
|
}, [])
|
|
170
177
|
);
|
|
@@ -246,6 +253,15 @@ const DbService = (database, sigRef) => {
|
|
|
246
253
|
async _postRemove(doc) {
|
|
247
254
|
return doc;
|
|
248
255
|
}
|
|
256
|
+
async _preSummarize() {
|
|
257
|
+
return {};
|
|
258
|
+
}
|
|
259
|
+
async summarize() {
|
|
260
|
+
if (!database.Summary)
|
|
261
|
+
return {};
|
|
262
|
+
const [dbSummary, serviceSummary] = await Promise.all([this.__databaseModel.getSummary(), this._preSummarize()]);
|
|
263
|
+
return { ...dbSummary, ...serviceSummary };
|
|
264
|
+
}
|
|
249
265
|
async [`get${className}`](id) {
|
|
250
266
|
return await this.__databaseModel[`get${className}`](id);
|
|
251
267
|
}
|
|
@@ -398,6 +414,7 @@ const makeProvidersForSrv = (srvRef) => {
|
|
|
398
414
|
Sig,
|
|
399
415
|
Srv,
|
|
400
416
|
Use,
|
|
417
|
+
getAllServiceRefs,
|
|
401
418
|
getServiceMeta,
|
|
402
419
|
getServiceRefs,
|
|
403
420
|
isServiceEnabled,
|
package/esm/src/base.service.js
CHANGED
|
@@ -9,14 +9,10 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
9
9
|
__defProp(target, key, result);
|
|
10
10
|
return result;
|
|
11
11
|
};
|
|
12
|
-
import { Interval } from "@akanjs/nest";
|
|
13
12
|
import { Gen, LogService, Service, Sig } from "./serviceDecorators";
|
|
14
13
|
let BaseService = class extends LogService("BaseService") {
|
|
15
14
|
onCleanup;
|
|
16
15
|
baseSignal;
|
|
17
|
-
intervalPing() {
|
|
18
|
-
this.baseSignal.pubsubPing((/* @__PURE__ */ new Date()).toISOString());
|
|
19
|
-
}
|
|
20
16
|
async cleanup() {
|
|
21
17
|
if (!this.onCleanup)
|
|
22
18
|
throw new Error("onCleanup is not defined");
|
|
@@ -29,9 +25,6 @@ __decorateClass([
|
|
|
29
25
|
__decorateClass([
|
|
30
26
|
Sig()
|
|
31
27
|
], BaseService.prototype, "baseSignal", 2);
|
|
32
|
-
__decorateClass([
|
|
33
|
-
Interval(5e3)
|
|
34
|
-
], BaseService.prototype, "intervalPing", 1);
|
|
35
28
|
BaseService = __decorateClass([
|
|
36
29
|
Service("BaseService")
|
|
37
30
|
], BaseService);
|
|
@@ -22,6 +22,10 @@ class ServiceStorage {
|
|
|
22
22
|
const getServiceRefs = (refName) => {
|
|
23
23
|
return Reflect.getMetadata(refName, ServiceStorage.prototype) ?? [];
|
|
24
24
|
};
|
|
25
|
+
const getAllServiceRefs = () => {
|
|
26
|
+
const keys = Reflect.getMetadataKeys(ServiceStorage.prototype);
|
|
27
|
+
return keys.map((key) => getServiceRefs(key)[0]);
|
|
28
|
+
};
|
|
25
29
|
const setServiceRefs = (refName, services) => {
|
|
26
30
|
Reflect.defineMetadata(refName, services, ServiceStorage.prototype);
|
|
27
31
|
};
|
|
@@ -122,14 +126,16 @@ const serviceOf = (target) => {
|
|
|
122
126
|
Injectable()(srvRef);
|
|
123
127
|
return srvRef;
|
|
124
128
|
};
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
129
|
+
function MixSrvs(...services) {
|
|
130
|
+
if (services.length === 0)
|
|
131
|
+
throw new Error("MixSrvs requires at least one service");
|
|
132
|
+
const [baseService, ...restServices] = services;
|
|
133
|
+
class Mix extends baseService {
|
|
128
134
|
}
|
|
129
135
|
const injectMetadataMap = new Map(
|
|
130
|
-
|
|
136
|
+
restServices.reduce((acc, srvRef) => {
|
|
131
137
|
const injectMetadataMap2 = getServiceInjectMetaMapOnPrototype(srvRef);
|
|
132
|
-
applyMixins(Mix, [srvRef]
|
|
138
|
+
applyMixins(Mix, [srvRef]);
|
|
133
139
|
return [...acc, ...injectMetadataMap2];
|
|
134
140
|
}, [])
|
|
135
141
|
);
|
|
@@ -211,6 +217,15 @@ const DbService = (database, sigRef) => {
|
|
|
211
217
|
async _postRemove(doc) {
|
|
212
218
|
return doc;
|
|
213
219
|
}
|
|
220
|
+
async _preSummarize() {
|
|
221
|
+
return {};
|
|
222
|
+
}
|
|
223
|
+
async summarize() {
|
|
224
|
+
if (!database.Summary)
|
|
225
|
+
return {};
|
|
226
|
+
const [dbSummary, serviceSummary] = await Promise.all([this.__databaseModel.getSummary(), this._preSummarize()]);
|
|
227
|
+
return { ...dbSummary, ...serviceSummary };
|
|
228
|
+
}
|
|
214
229
|
async [`get${className}`](id) {
|
|
215
230
|
return await this.__databaseModel[`get${className}`](id);
|
|
216
231
|
}
|
|
@@ -362,6 +377,7 @@ export {
|
|
|
362
377
|
Sig,
|
|
363
378
|
Srv,
|
|
364
379
|
Use,
|
|
380
|
+
getAllServiceRefs,
|
|
365
381
|
getServiceMeta,
|
|
366
382
|
getServiceRefs,
|
|
367
383
|
isServiceEnabled,
|
package/package.json
CHANGED
package/src/base.service.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
|
-
import { BaseObject, type Prettify, Type } from "@akanjs/base";
|
|
2
|
+
import { BaseObject, type MergeAllTypes, type Prettify, type PromiseOrObject, Type, type UnType } from "@akanjs/base";
|
|
3
3
|
import { Logger } from "@akanjs/common";
|
|
4
4
|
import { type DocumentModel, type FilterType, FindQueryOption, type GetActionObject, ListQueryOption, QueryOf, type SortOf } from "@akanjs/constant";
|
|
5
|
-
import type { BaseMiddleware, Database, DatabaseModel, DataInputOf } from "@akanjs/document";
|
|
5
|
+
import type { BaseMiddleware, Database, DatabaseModel, DataInputOf, QueryMethodPart } from "@akanjs/document";
|
|
6
6
|
import { FilterOutInternalArgs } from "@akanjs/signal";
|
|
7
7
|
import { type Provider } from "@nestjs/common";
|
|
8
8
|
import type { Job, Queue as BullQueue } from "bull";
|
|
@@ -11,7 +11,7 @@ import type { Server } from "socket.io";
|
|
|
11
11
|
export type GetServices<AllSrvs extends {
|
|
12
12
|
[key: string]: Type | undefined;
|
|
13
13
|
}> = {
|
|
14
|
-
[
|
|
14
|
+
[K in keyof AllSrvs]: UnType<NonNullable<AllSrvs[K]>>;
|
|
15
15
|
};
|
|
16
16
|
export declare class ServiceStorage {
|
|
17
17
|
}
|
|
@@ -20,6 +20,7 @@ interface ServiceMeta {
|
|
|
20
20
|
enabled: boolean;
|
|
21
21
|
}
|
|
22
22
|
export declare const getServiceRefs: (refName: string) => Type[];
|
|
23
|
+
export declare const getAllServiceRefs: () => Type[];
|
|
23
24
|
export declare const getServiceMeta: (srvRef: Type) => ServiceMeta | undefined;
|
|
24
25
|
export declare const isServiceEnabled: (srvRef: Type) => boolean;
|
|
25
26
|
export interface ServiceInjectMeta {
|
|
@@ -37,117 +38,84 @@ export declare function Srv(name?: string): PropertyDecorator;
|
|
|
37
38
|
export declare function Use(name?: string): PropertyDecorator;
|
|
38
39
|
export declare function Env(envKey: string, generateFactory?: (envValue: string, options: any) => any): PropertyDecorator;
|
|
39
40
|
export declare function Gen(generateFactory: (options: any) => any): PropertyDecorator;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
queue: BullQueue;
|
|
41
|
+
export declare function Sig(name?: string): PropertyDecorator;
|
|
42
|
+
type ServiceSignalReturnType = {
|
|
43
|
+
__Returns__: "Done";
|
|
44
|
+
} | {
|
|
45
|
+
__Returns__: "Subscribe";
|
|
46
46
|
};
|
|
47
|
-
type
|
|
48
|
-
[K in keyof Signal as K extends
|
|
49
|
-
__Returns__: "
|
|
50
|
-
}> ?
|
|
51
|
-
__Returns__: "Subscribe";
|
|
52
|
-
} ? K : never : never]: Signal[K] extends (...args: infer Args) => Promise<{
|
|
53
|
-
__Returns__: "Subscribe";
|
|
54
|
-
} & infer R> ? (...args: [...FilterOutInternalArgs<Args>, data: DocumentModel<R>]) => Promise<void> : Signal[K] extends (...args: infer Args) => {
|
|
47
|
+
export type Sig<Signal> = {
|
|
48
|
+
[K in keyof Signal as Signal[K] extends (...args: any) => PromiseOrObject<ServiceSignalReturnType> ? K : never]: Signal[K] extends (...args: infer Args) => PromiseOrObject<{
|
|
49
|
+
__Returns__: "Done";
|
|
50
|
+
}> ? (...args: FilterOutInternalArgs<Args>) => Promise<Job> : Signal[K] extends (...args: infer Args) => PromiseOrObject<{
|
|
55
51
|
__Returns__: "Subscribe";
|
|
56
|
-
} & infer
|
|
52
|
+
} & infer Return> ? (...args: [...FilterOutInternalArgs<Args>, data: DocumentModel<Return>]) => void : never;
|
|
57
53
|
} & {
|
|
54
|
+
queue: BullQueue;
|
|
58
55
|
websocket: Server;
|
|
59
56
|
};
|
|
60
|
-
export declare function Sig(name?: string): PropertyDecorator;
|
|
61
|
-
export type Sig<Signal> = Queue<Signal> & Websocket<Signal>;
|
|
62
57
|
export declare function Db(name: string): PropertyDecorator;
|
|
63
58
|
export declare const serviceOf: (target: Type) => Type;
|
|
64
|
-
export declare function MixSrvs<
|
|
59
|
+
export declare function MixSrvs<T extends Type[]>(...services: [...T]): Type<MergeAllTypes<T>>;
|
|
65
60
|
export declare const LogService: <T extends string>(name: T) => {
|
|
66
61
|
new (): {
|
|
67
62
|
logger: Logger;
|
|
68
63
|
};
|
|
69
64
|
};
|
|
70
|
-
type
|
|
71
|
-
|
|
72
|
-
__Returns__: "Done";
|
|
73
|
-
}> ? K : never : never]: Signal[K] extends (...args: infer Args) => Promise<infer R> ? (...args: FilterOutInternalArgs<Args>) => Promise<Job> : never;
|
|
74
|
-
};
|
|
75
|
-
type DatabaseService<T extends string, Input, Doc, Obj, Model, Insight, Filter, Summary> = DatabaseServiceWithQuerySort<T, Input, Doc, Obj, Model, Insight, GetActionObject<Filter>, SortOf<Filter>>;
|
|
76
|
-
type DatabaseServiceWithQuerySort<T extends string, Input, Doc, Obj, Model, Insight, Query, Sort> = {
|
|
65
|
+
type DatabaseService<T extends string, Input, Doc, Obj, Model, Insight, Filter, Summary> = DatabaseServiceWithQuerySort<T, Input, Doc, Obj, Model, Insight, Summary, GetActionObject<Filter>, SortOf<Filter>>;
|
|
66
|
+
type DatabaseServiceWithQuerySort<T extends string, Input, Doc, Obj, Model, Insight, Summary, Query, Sort, _CapitalizedT extends Capitalize<T> = Capitalize<T>, _DataInputOfDoc extends DataInputOf<Input, Doc> = DataInputOf<Input, Doc>, _QueryOfDoc extends QueryOf<Doc> = QueryOf<Doc>, _FindQueryOption extends FindQueryOption<Sort, Obj> = FindQueryOption<Sort, Obj>, _ListQueryOption extends ListQueryOption<Sort, Obj> = ListQueryOption<Sort, Obj>> = {
|
|
77
67
|
logger: Logger;
|
|
78
68
|
__databaseModel: Model;
|
|
79
|
-
__list(query?:
|
|
80
|
-
__listIds(query?:
|
|
81
|
-
__find(query?:
|
|
82
|
-
__findId(query?:
|
|
83
|
-
__pick(query?:
|
|
84
|
-
__pickId(query?:
|
|
85
|
-
__exists(query?:
|
|
86
|
-
__count(query?:
|
|
87
|
-
__insight(query?:
|
|
88
|
-
__search(query:
|
|
69
|
+
__list(query?: _QueryOfDoc, queryOption?: _ListQueryOption): Promise<Doc[]>;
|
|
70
|
+
__listIds(query?: _QueryOfDoc, queryOption?: _ListQueryOption): Promise<string[]>;
|
|
71
|
+
__find(query?: _QueryOfDoc, queryOption?: _FindQueryOption): Promise<Doc | null>;
|
|
72
|
+
__findId(query?: _QueryOfDoc, queryOption?: _FindQueryOption): Promise<string | null>;
|
|
73
|
+
__pick(query?: _QueryOfDoc, queryOption?: _FindQueryOption): Promise<Doc>;
|
|
74
|
+
__pickId(query?: _QueryOfDoc, queryOption?: _FindQueryOption): Promise<string>;
|
|
75
|
+
__exists(query?: _QueryOfDoc): Promise<string | null>;
|
|
76
|
+
__count(query?: _QueryOfDoc): Promise<number>;
|
|
77
|
+
__insight(query?: _QueryOfDoc): Promise<Insight>;
|
|
78
|
+
__search(query: _QueryOfDoc, queryOption?: _ListQueryOption): Promise<{
|
|
89
79
|
docs: Doc[];
|
|
90
80
|
count: number;
|
|
91
81
|
}>;
|
|
92
|
-
__searchDocs(query:
|
|
93
|
-
__searchCount(query:
|
|
94
|
-
_preCreate(data:
|
|
82
|
+
__searchDocs(query: _QueryOfDoc, queryOption?: _ListQueryOption): Promise<Doc[]>;
|
|
83
|
+
__searchCount(query: _QueryOfDoc): Promise<number>;
|
|
84
|
+
_preCreate(data: _DataInputOfDoc): PromiseOrObject<_DataInputOfDoc>;
|
|
95
85
|
_postCreate(doc: Doc): Promise<Doc> | Doc;
|
|
96
|
-
_preUpdate(id: string, data: Partial<Doc>):
|
|
86
|
+
_preUpdate(id: string, data: Partial<Doc>): PromiseOrObject<Partial<Doc>>;
|
|
97
87
|
_postUpdate(doc: Doc): Promise<Doc> | Doc;
|
|
98
88
|
_preRemove(id: string): Promise<void> | void;
|
|
99
89
|
_postRemove(doc: Doc): Promise<Doc> | Doc;
|
|
90
|
+
_preSummarize(): PromiseOrObject<Partial<Summary>>;
|
|
91
|
+
summarize(): Promise<Summary>;
|
|
100
92
|
} & Prettify<{
|
|
101
93
|
[key in `${T}Model`]: Model;
|
|
102
94
|
} & {
|
|
103
|
-
[K in `get${
|
|
95
|
+
[K in `get${_CapitalizedT}`]: (id: string) => Promise<Doc>;
|
|
104
96
|
} & {
|
|
105
|
-
[K in `load${
|
|
97
|
+
[K in `load${_CapitalizedT}`]: (id?: string) => Promise<Doc | null>;
|
|
106
98
|
} & {
|
|
107
|
-
[K in `load${
|
|
99
|
+
[K in `load${_CapitalizedT}Many`]: (ids: string[]) => Promise<Doc[]>;
|
|
108
100
|
} & {
|
|
109
|
-
[K in `create${
|
|
101
|
+
[K in `create${_CapitalizedT}`]: (data: _DataInputOfDoc) => Promise<Doc>;
|
|
110
102
|
} & {
|
|
111
|
-
[K in `update${
|
|
103
|
+
[K in `update${_CapitalizedT}`]: (id: string, data: Partial<Doc>) => Promise<Doc>;
|
|
112
104
|
} & {
|
|
113
|
-
[K in `remove${
|
|
105
|
+
[K in `remove${_CapitalizedT}`]: (id: string) => Promise<Doc>;
|
|
114
106
|
} & {
|
|
115
|
-
[K in `search${
|
|
107
|
+
[K in `search${_CapitalizedT}`]: (searchText: string, queryOption?: _ListQueryOption) => Promise<{
|
|
116
108
|
docs: Doc[];
|
|
117
109
|
count: number;
|
|
118
110
|
}>;
|
|
119
111
|
} & {
|
|
120
|
-
[K in `searchDocs${
|
|
121
|
-
} & {
|
|
122
|
-
[K in `searchCount${Capitalize<T>}`]: (searchText: string) => Promise<number>;
|
|
123
|
-
} & {
|
|
124
|
-
[K in keyof Query as K extends string ? `list${Capitalize<K>}` : never]: Query[K] extends (...args: infer Args) => any ? (...args: [...Args, queryOption?: ListQueryOption<Sort, Obj>]) => Promise<Doc[]> : never;
|
|
125
|
-
} & {
|
|
126
|
-
[K in keyof Query as K extends string ? `listIds${Capitalize<K>}` : never]: Query[K] extends (...args: infer Args) => any ? (...args: [...Args, queryOption?: ListQueryOption<Sort, Obj>]) => Promise<string[]> : never;
|
|
127
|
-
} & {
|
|
128
|
-
[K in keyof Query as K extends string ? `find${Capitalize<K>}` : never]: Query[K] extends (...args: infer Args) => any ? (...args: [...Args, queryOption?: FindQueryOption<Sort, Obj>]) => Promise<Doc | null> : never;
|
|
129
|
-
} & {
|
|
130
|
-
[K in keyof Query as K extends string ? `findId${Capitalize<K>}` : never]: Query[K] extends (...args: infer Args) => any ? (...args: [...Args, queryOption?: FindQueryOption<Sort, Obj>]) => Promise<string | null> : never;
|
|
131
|
-
} & {
|
|
132
|
-
[K in keyof Query as K extends string ? `pick${Capitalize<K>}` : never]: Query[K] extends (...args: infer Args) => any ? (...args: [...Args, queryOption?: FindQueryOption<Sort, Obj>]) => Promise<Doc> : never;
|
|
133
|
-
} & {
|
|
134
|
-
[K in keyof Query as K extends string ? `pickId${Capitalize<K>}` : never]: Query[K] extends (...args: infer Args) => any ? (...args: [...Args, queryOption?: FindQueryOption<Sort, Obj>]) => Promise<string> : never;
|
|
135
|
-
} & {
|
|
136
|
-
[K in keyof Query as K extends string ? `exists${Capitalize<K>}` : never]: Query[K] extends (...args: infer Args) => any ? (...args: [...Args]) => Promise<string | null> : never;
|
|
137
|
-
} & {
|
|
138
|
-
[K in keyof Query as K extends string ? `count${Capitalize<K>}` : never]: Query[K] extends (...args: infer Args) => any ? (...args: [...Args]) => Promise<number> : never;
|
|
112
|
+
[K in `searchDocs${_CapitalizedT}`]: (searchText: string, queryOption?: _ListQueryOption) => Promise<Doc[]>;
|
|
139
113
|
} & {
|
|
140
|
-
[K in
|
|
141
|
-
}
|
|
142
|
-
export declare const DbService: <T extends string, Input, Doc extends HydratedDocument<any>, Model extends DatabaseModel<T, Input, Doc, Obj, Insight, Filter, Summary>, Middleware extends BaseMiddleware, Obj, Insight, Filter extends FilterType, Summary, Signal = unknown>(database: Database<T, Input, Doc, Model, Middleware, Obj, Insight, Filter, Summary>, sigRef?: Type<Signal>) => Type<DatabaseService<T, Input, Doc, Obj, Model, Insight, Filter, Summary>>;
|
|
143
|
-
export declare const ExtendedUserService: <T extends string, Input, Doc extends HydratedDocument<any>, Model extends DatabaseModel<T, Input, Doc, Obj, Insight, Filter, Summary>, Middleware extends BaseMiddleware, Obj, Insight, Filter extends FilterType, Summary, Srv, Signal = unknown>(database: Database<T, Input, Doc, Model, Middleware, Obj, Insight, Filter, Summary>, srvRef: Type<Srv>, sigRef?: Type<Signal>) => Type<DatabaseService<T, Input, Doc, BaseObject, Model, Insight, Filter, Summary> & {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
export declare const ExtendedSummaryService: <T extends string, Input, Doc extends HydratedDocument<any>, Model, Middleware extends BaseMiddleware, Obj, Insight, Filter extends FilterType, Summary, Srv, Signal = unknown>(database: Database<T, Input, Doc, Model, Middleware, Obj, Insight, Filter, Summary>, srvRef: Type<Srv>, sigRef?: Type<Signal>) => Type<Omit<DatabaseService<T, Input, Doc, Obj, Model, Insight, Filter, Summary> & {
|
|
147
|
-
queue: QueueService<Signal>;
|
|
148
|
-
} & { [K in keyof Srv]: Srv[K] extends (...args: infer Args) => Promise<BaseObject> ? (...args: Args) => Promise<Doc> : Srv[K] extends (...args: infer Args) => Promise<BaseObject[]> ? (...args: Args) => Promise<Doc[]> : Srv[K] extends BaseObject ? Doc : Srv[K] extends BaseObject[] ? Doc[] : Srv[K]; }, "userService">>;
|
|
149
|
-
export declare const ExtendedSettingService: <T extends string, Input, Doc extends HydratedDocument<any>, Model extends DatabaseModel<T, Input, Doc, Obj, Insight, Filter, Summary>, Middleware extends BaseMiddleware, Obj, Insight, Filter extends FilterType, Summary, Srv, Signal = unknown>(database: Database<T, Input, Doc, Model, Middleware, Obj, Insight, Filter, Summary>, srvRef: Type<Srv>, sigRef?: Type<Signal>) => Type<DatabaseService<T, Input, Doc, BaseObject, Model, Insight, Filter, Summary> & {
|
|
150
|
-
queue: QueueService<Signal>;
|
|
151
|
-
} & { [K in keyof Srv]: Srv[K] extends (...args: infer Args) => Promise<BaseObject> ? (...args: Args) => Promise<Doc> : Srv[K] extends (...args: infer Args) => Promise<BaseObject[]> ? (...args: Args) => Promise<Doc[]> : Srv[K] extends BaseObject ? Doc : Srv[K] extends BaseObject[] ? Doc[] : Srv[K]; }>;
|
|
114
|
+
[K in `searchCount${_CapitalizedT}`]: (searchText: string) => Promise<number>;
|
|
115
|
+
} & QueryMethodPart<Query, Sort, Obj, Doc, Insight, _FindQueryOption, _ListQueryOption>>;
|
|
116
|
+
export declare const DbService: <T extends string, Input, Doc extends HydratedDocument<any>, Model extends DatabaseModel<T, Input, Doc, Obj, Insight, Filter, Summary, _CapitalizedT, _QueryOfDoc, _Query, _Sort, _DataInputOfDoc, _FindQueryOption, _ListQueryOption>, Middleware extends BaseMiddleware, Obj, Insight, Filter extends FilterType, Summary, Signal = unknown, _CapitalizedT extends string = Capitalize<T>, _QueryOfDoc extends QueryOf<Doc> = QueryOf<Doc>, _Query extends GetActionObject<Filter> = GetActionObject<Filter>, _Sort extends SortOf<Filter> = SortOf<Filter>, _DataInputOfDoc extends DataInputOf<Input, Doc> = DataInputOf<Input, Doc>, _FindQueryOption extends FindQueryOption<_Sort, Obj> = FindQueryOption<_Sort, Obj>, _ListQueryOption extends ListQueryOption<_Sort, Obj> = ListQueryOption<_Sort, Obj>>(database: Database<T, Input, Doc, Model, Middleware, Obj, Insight, Filter, Summary>, sigRef?: Type<Signal>) => Type<DatabaseService<T, Input, Doc, Obj, Model, Insight, Filter, Summary>>;
|
|
117
|
+
export declare const ExtendedUserService: <T extends string, Input, Doc extends HydratedDocument<any>, Model extends DatabaseModel<T, Input, Doc, Obj, Insight, Filter, Summary>, Middleware extends BaseMiddleware, Obj, Insight, Filter extends FilterType, Summary, Srv, Signal = unknown>(database: Database<T, Input, Doc, Model, Middleware, Obj, Insight, Filter, Summary>, srvRef: Type<Srv>, sigRef?: Type<Signal>) => Type<DatabaseService<T, Input, Doc, BaseObject, Model, Insight, Filter, Summary> & { [K in keyof Srv]: Srv[K] extends (...args: infer Args) => Promise<BaseObject> ? (...args: Args) => Promise<Doc> : Srv[K] extends (...args: infer Args) => Promise<BaseObject[]> ? (...args: Args) => Promise<Doc[]> : Srv[K] extends BaseObject ? Doc : Srv[K] extends BaseObject[] ? Doc[] : Srv[K]; }>;
|
|
118
|
+
export declare const ExtendedSummaryService: <T extends string, Input, Doc extends HydratedDocument<any>, Model, Middleware extends BaseMiddleware, Obj, Insight, Filter extends FilterType, Summary, Srv, Signal = unknown>(database: Database<T, Input, Doc, Model, Middleware, Obj, Insight, Filter, Summary>, srvRef: Type<Srv>, sigRef?: Type<Signal>) => Type<Omit<DatabaseService<T, Input, Doc, Obj, Model, Insight, Filter, Summary> & { [K in keyof Srv]: Srv[K] extends (...args: infer Args) => Promise<BaseObject> ? (...args: Args) => Promise<Doc> : Srv[K] extends (...args: infer Args) => Promise<BaseObject[]> ? (...args: Args) => Promise<Doc[]> : Srv[K] extends BaseObject ? Doc : Srv[K] extends BaseObject[] ? Doc[] : Srv[K]; }, "userService">>;
|
|
119
|
+
export declare const ExtendedSettingService: <T extends string, Input, Doc extends HydratedDocument<any>, Model extends DatabaseModel<T, Input, Doc, Obj, Insight, Filter, Summary>, Middleware extends BaseMiddleware, Obj, Insight, Filter extends FilterType, Summary, Srv, Signal = unknown>(database: Database<T, Input, Doc, Model, Middleware, Obj, Insight, Filter, Summary>, srvRef: Type<Srv>, sigRef?: Type<Signal>) => Type<DatabaseService<T, Input, Doc, BaseObject, Model, Insight, Filter, Summary> & { [K in keyof Srv]: Srv[K] extends (...args: infer Args) => Promise<BaseObject> ? (...args: Args) => Promise<Doc> : Srv[K] extends (...args: infer Args) => Promise<BaseObject[]> ? (...args: Args) => Promise<Doc[]> : Srv[K] extends BaseObject ? Doc : Srv[K] extends BaseObject[] ? Doc[] : Srv[K]; }>;
|
|
152
120
|
export declare const makeProvidersForSrv: (srvRef: Type) => Provider[];
|
|
153
121
|
export {};
|