akanjs 2.3.5-rc.12 → 2.3.5-rc.13
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/constant/via.ts +6 -1
- package/dictionary/dictInfo.ts +22 -9
- package/dictionary/locale.ts +21 -11
- package/document/into.ts +5 -5
- package/package.json +1 -1
- package/service/types.ts +17 -13
- package/signal/internalInfo.ts +13 -11
- package/signal/serverSignal.ts +16 -14
- package/signal/slice.ts +1 -1
- package/signal/sliceInfo.ts +3 -16
- package/signal/types.ts +3 -3
- package/types/constant/via.d.ts +2 -1
- package/types/dictionary/dictInfo.d.ts +14 -7
- package/types/dictionary/locale.d.ts +17 -10
- package/types/document/into.d.ts +2 -1
- package/types/service/types.d.ts +8 -2
- package/types/signal/internalInfo.d.ts +2 -0
- package/types/signal/serverSignal.d.ts +13 -15
- package/types/signal/sliceInfo.d.ts +1 -7
- package/types/signal/types.d.ts +3 -3
package/constant/via.ts
CHANGED
|
@@ -239,8 +239,13 @@ const makeBaseScalar = <FieldMap extends FieldInfoObject>(
|
|
|
239
239
|
>;
|
|
240
240
|
};
|
|
241
241
|
|
|
242
|
+
type ConstantSetReturn<Self, Schema> = Self extends Schema & ConstantMethods<Schema> & infer Model
|
|
243
|
+
? unknown extends Model
|
|
244
|
+
? Self
|
|
245
|
+
: Model
|
|
246
|
+
: Self;
|
|
242
247
|
export interface ConstantMethods<Schema = any> {
|
|
243
|
-
set:
|
|
248
|
+
set<Self extends Schema & ConstantMethods<Schema>>(this: Self, obj: Partial<Schema>): ConstantSetReturn<Self, Schema>;
|
|
244
249
|
}
|
|
245
250
|
|
|
246
251
|
type DatabaseSchemaOf<Schema, HiddenKey> = {
|
package/dictionary/dictInfo.ts
CHANGED
|
@@ -1,12 +1,22 @@
|
|
|
1
1
|
import type { GetStateObject } from "akanjs/base";
|
|
2
2
|
import { capitalize } from "akanjs/common";
|
|
3
3
|
import type { BaseInsight, BaseObject } from "akanjs/constant";
|
|
4
|
-
import type { BaseFilterQueryKey, BaseFilterSortKey, FilterInfo, FilterInstance } from "akanjs/document";
|
|
4
|
+
import type { BaseFilterQueryKey, BaseFilterSortKey, FilterCls, FilterInfo, FilterInstance } from "akanjs/document";
|
|
5
5
|
import type { EndpInfoArgNames, EndpointInfo, SliceInfo, SliceInfoArgNames } from "akanjs/signal";
|
|
6
6
|
import type { DictionaryNode, RootDictionary } from "./trans";
|
|
7
7
|
|
|
8
8
|
type MutableDictionaryNode = DictionaryNode & { t?: string; desc?: DictionaryNode };
|
|
9
9
|
type EnumValueKey = string | number;
|
|
10
|
+
type AnyFilterShape = FilterInstance<Record<string, FilterInfo>, Record<string, unknown>>;
|
|
11
|
+
type DictFilterShape<Filter> = Filter extends FilterInstance
|
|
12
|
+
? Filter
|
|
13
|
+
: Filter extends FilterCls<infer FilterShape>
|
|
14
|
+
? FilterShape
|
|
15
|
+
: Filter extends { query: Record<string, FilterInfo>; sort: Record<string, unknown> }
|
|
16
|
+
? Filter
|
|
17
|
+
: AnyFilterShape;
|
|
18
|
+
type DictFilterQuery<Filter> = DictFilterShape<Filter>["query"];
|
|
19
|
+
type DictFilterSort<Filter> = DictFilterShape<Filter>["sort"];
|
|
10
20
|
|
|
11
21
|
const ensureNode = (target: DictionaryNode, key: string): MutableDictionaryNode => {
|
|
12
22
|
target[key] ??= {};
|
|
@@ -250,24 +260,27 @@ export class ModelDictInfo<
|
|
|
250
260
|
EtcKey
|
|
251
261
|
>;
|
|
252
262
|
}
|
|
253
|
-
query<Filter
|
|
263
|
+
query<Filter>(
|
|
254
264
|
translate: (fn: (trans: Languages) => FunctionTranslation<Languages>) => {
|
|
255
|
-
[K in Exclude<keyof Filter
|
|
265
|
+
[K in Exclude<keyof DictFilterQuery<Filter>, QueryKey>]: DictFilterQuery<Filter>[K] extends FilterInfo<
|
|
266
|
+
infer ArgNames,
|
|
267
|
+
any
|
|
268
|
+
>
|
|
256
269
|
? FunctionTranslation<Languages, ArgNames[number]>
|
|
257
270
|
: never;
|
|
258
271
|
},
|
|
259
272
|
) {
|
|
260
273
|
Object.assign(this.queryDictionary, translate(fn), ModelDictInfo.baseQueryDictionary) as unknown as {
|
|
261
|
-
[K in keyof Filter
|
|
274
|
+
[K in keyof DictFilterQuery<Filter>]: FunctionTranslation<
|
|
262
275
|
Languages,
|
|
263
|
-
Filter[
|
|
276
|
+
DictFilterQuery<Filter>[K] extends FilterInfo<infer ArgNames, any> ? ArgNames[number] : never
|
|
264
277
|
>;
|
|
265
278
|
};
|
|
266
279
|
return this as unknown as ModelDictInfo<
|
|
267
280
|
Languages,
|
|
268
281
|
ModelKey,
|
|
269
282
|
InsightKey,
|
|
270
|
-
keyof Filter
|
|
283
|
+
keyof DictFilterQuery<Filter> & string,
|
|
271
284
|
SortKey,
|
|
272
285
|
EnumKey,
|
|
273
286
|
BaseSignalKey,
|
|
@@ -277,9 +290,9 @@ export class ModelDictInfo<
|
|
|
277
290
|
EtcKey
|
|
278
291
|
>;
|
|
279
292
|
}
|
|
280
|
-
sort<Filter
|
|
293
|
+
sort<Filter>(
|
|
281
294
|
translate: (t: (trans: Languages) => FieldTranslation<Languages>) => {
|
|
282
|
-
[K in Exclude<keyof Filter
|
|
295
|
+
[K in Exclude<keyof DictFilterSort<Filter>, SortKey>]: FieldTranslation<Languages>;
|
|
283
296
|
},
|
|
284
297
|
) {
|
|
285
298
|
Object.assign(
|
|
@@ -292,7 +305,7 @@ export class ModelDictInfo<
|
|
|
292
305
|
ModelKey,
|
|
293
306
|
InsightKey,
|
|
294
307
|
QueryKey,
|
|
295
|
-
keyof Filter
|
|
308
|
+
keyof DictFilterSort<Filter> & string,
|
|
296
309
|
EnumKey,
|
|
297
310
|
BaseSignalKey,
|
|
298
311
|
SliceKey,
|
package/dictionary/locale.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GetStateObject, MergedValues } from "akanjs/base";
|
|
2
2
|
import type { BaseInsight, BaseObject } from "akanjs/constant";
|
|
3
|
-
import type { FilterInfo, FilterInstance } from "akanjs/document";
|
|
3
|
+
import type { FilterCls, FilterInfo, FilterInstance } from "akanjs/document";
|
|
4
4
|
import type { EndpInfoArgNames, EndpointInfo, SliceInfo, SliceInfoArgNames, SliceInfoRefName } from "akanjs/signal";
|
|
5
5
|
import type { ModelDictInfo, ScalarDictInfo, ServiceDictInfo } from ".";
|
|
6
6
|
|
|
@@ -16,16 +16,26 @@ interface FnTrans<ArgKey extends string> {
|
|
|
16
16
|
desc?: string;
|
|
17
17
|
arg?: { [key in ArgKey]: FieldTrans };
|
|
18
18
|
}
|
|
19
|
-
type
|
|
20
|
-
|
|
19
|
+
type AnyFilterShape = FilterInstance<Record<string, FilterInfo>, Record<string, unknown>>;
|
|
20
|
+
type DictFilterShape<Filter> = Filter extends FilterInstance
|
|
21
|
+
? Filter
|
|
22
|
+
: Filter extends FilterCls<infer FilterShape>
|
|
23
|
+
? FilterShape
|
|
24
|
+
: Filter extends { query: Record<string, FilterInfo>; sort: Record<string, unknown> }
|
|
25
|
+
? Filter
|
|
26
|
+
: AnyFilterShape;
|
|
27
|
+
type DictFilterQuery<Filter> = DictFilterShape<Filter>["query"];
|
|
28
|
+
type DictFilterSort<Filter> = DictFilterShape<Filter>["sort"];
|
|
29
|
+
type FilterTranslatorKey<Filter> = {
|
|
30
|
+
[Key in keyof DictFilterQuery<Filter> & string]:
|
|
21
31
|
| `${Key}`
|
|
22
32
|
| `${Key}.desc`
|
|
23
|
-
| (Filter[
|
|
33
|
+
| (DictFilterQuery<Filter>[Key] extends FilterInfo<infer ArgNames, any>
|
|
24
34
|
? ArgNames[number] extends string
|
|
25
35
|
? `${Key}.arg.${ArgNames[number]}` | `${Key}.arg.${ArgNames[number]}.desc`
|
|
26
36
|
: never
|
|
27
37
|
: never);
|
|
28
|
-
}[keyof Filter
|
|
38
|
+
}[keyof DictFilterQuery<Filter> & string];
|
|
29
39
|
type EndpointTranslatorKey<Endpoint extends { [key: string]: EndpointInfo }> = {
|
|
30
40
|
[Key in keyof Endpoint & string]:
|
|
31
41
|
| `${Key}`
|
|
@@ -73,7 +83,7 @@ export type ModelTrans<
|
|
|
73
83
|
T extends string,
|
|
74
84
|
Model extends BaseObject,
|
|
75
85
|
Insight extends BaseInsight,
|
|
76
|
-
Filter
|
|
86
|
+
Filter,
|
|
77
87
|
Slice extends { [key: string]: SliceInfo },
|
|
78
88
|
Endpoint extends { [key: string]: EndpointInfo },
|
|
79
89
|
ErrorKey extends string,
|
|
@@ -84,11 +94,11 @@ export type ModelTrans<
|
|
|
84
94
|
model: { [K in keyof GetStateObject<Model>]: FieldTrans };
|
|
85
95
|
insight: { [K in keyof GetStateObject<Insight>]: FieldTrans };
|
|
86
96
|
query: {
|
|
87
|
-
[K in keyof Filter
|
|
97
|
+
[K in keyof DictFilterQuery<Filter>]: DictFilterQuery<Filter>[K] extends FilterInfo<infer ArgNames, any>
|
|
88
98
|
? FnTrans<ArgNames[number]>
|
|
89
99
|
: never;
|
|
90
100
|
};
|
|
91
|
-
sort: { [K in keyof Filter
|
|
101
|
+
sort: { [K in keyof DictFilterSort<Filter>]: FieldTrans };
|
|
92
102
|
api: {
|
|
93
103
|
[K in keyof Endpoint]: FnTrans<EndpInfoArgNames<Endpoint[K]>[number]>;
|
|
94
104
|
} & BaseModelCrudGetApiTrans<T> &
|
|
@@ -101,7 +111,7 @@ export type ModelTranslatorKey<
|
|
|
101
111
|
T extends string,
|
|
102
112
|
Model,
|
|
103
113
|
Insight,
|
|
104
|
-
Filter
|
|
114
|
+
Filter,
|
|
105
115
|
Slice extends { [key: string]: SliceInfo },
|
|
106
116
|
Endpoint extends { [key: string]: EndpointInfo },
|
|
107
117
|
EtcKey extends string,
|
|
@@ -111,7 +121,7 @@ export type ModelTranslatorKey<
|
|
|
111
121
|
| `${T}.${keyof GetStateObject<Model> & string}${"" | ".desc"}`
|
|
112
122
|
| `${T}.insight.${keyof GetStateObject<Insight> & string}${"" | ".desc"}`
|
|
113
123
|
| `${T}.query.${FilterTranslatorKey<Filter>}`
|
|
114
|
-
| `${T}.sort.${keyof Filter
|
|
124
|
+
| `${T}.sort.${keyof DictFilterSort<Filter> & string}${"" | ".desc"}`
|
|
115
125
|
| `${T}.signal.${EndpointTranslatorKey<Endpoint> | SliceTranslatorKey<Slice>}`
|
|
116
126
|
| `${T}.${EtcKey}`;
|
|
117
127
|
|
|
@@ -159,7 +169,7 @@ export const registerModelTrans = <
|
|
|
159
169
|
RefName extends string,
|
|
160
170
|
Model extends BaseObject,
|
|
161
171
|
Insight extends BaseInsight,
|
|
162
|
-
Filter
|
|
172
|
+
Filter,
|
|
163
173
|
Slice extends { [key: string]: SliceInfo },
|
|
164
174
|
Endpoint extends { [key: string]: EndpointInfo },
|
|
165
175
|
ModelDict extends ModelDictInfo<any>,
|
package/document/into.ts
CHANGED
|
@@ -90,6 +90,7 @@ interface IntoConstantModel<T extends string, _CapitalizedRefName extends string
|
|
|
90
90
|
_CapitalizedRefName: _CapitalizedRefName;
|
|
91
91
|
_Full: Raw;
|
|
92
92
|
}
|
|
93
|
+
type NoInferType<T> = [T][T extends unknown ? 0 : never];
|
|
93
94
|
type IntoModelActions<
|
|
94
95
|
T extends string,
|
|
95
96
|
_CapitalizedRefName extends string,
|
|
@@ -119,19 +120,18 @@ type IntoModelActions<
|
|
|
119
120
|
} & QueryMethodPart<_Query, _Sort, Raw, Doc, unknown, unknown, unknown, _QueryOfDoc>;
|
|
120
121
|
|
|
121
122
|
export const into = <
|
|
122
|
-
|
|
123
|
+
Doc,
|
|
123
124
|
FilterRef extends FilterCls,
|
|
124
125
|
T extends string,
|
|
125
126
|
Raw,
|
|
126
127
|
AddDbModels extends ModelCls[],
|
|
127
128
|
_CapitalizedRefName extends string,
|
|
128
|
-
Doc = InstanceType<DocRef>,
|
|
129
129
|
_QueryOfDoc = QueryOf<Doc>,
|
|
130
130
|
_Query = FilterQueryOf<FilterRef>,
|
|
131
131
|
_Sort = FilterSortOf<FilterRef>,
|
|
132
|
-
_LoaderBuilder extends LoaderBuilder<Doc
|
|
132
|
+
_LoaderBuilder extends LoaderBuilder<NoInferType<Doc>> = LoaderBuilder<Doc>,
|
|
133
133
|
>(
|
|
134
|
-
docRef:
|
|
134
|
+
docRef: Cls<Doc>,
|
|
135
135
|
filterRef: FilterRef,
|
|
136
136
|
cnst: IntoConstantModel<T, _CapitalizedRefName, Raw>,
|
|
137
137
|
loaderBuilder: _LoaderBuilder,
|
|
@@ -140,7 +140,7 @@ export const into = <
|
|
|
140
140
|
IntoModelActions<T, _CapitalizedRefName, Doc, Raw, _Query, _Sort, _QueryOfDoc>,
|
|
141
141
|
ReturnType<_LoaderBuilder>
|
|
142
142
|
> => {
|
|
143
|
-
const loaderInfoMap = loaderBuilder(makeLoaderBuilder());
|
|
143
|
+
const loaderInfoMap = loaderBuilder(makeLoaderBuilder<Doc>());
|
|
144
144
|
const libsOnSchemaFns = addMdls.map((mdl) => mdl._onSchema);
|
|
145
145
|
const DefaultModel = Object.assign(class DefaultModel {}, {
|
|
146
146
|
[LOADER_META]: Object.assign({}, ...addMdls.map((mdl) => mdl[LOADER_META]), loaderInfoMap),
|
package/package.json
CHANGED
package/service/types.ts
CHANGED
|
@@ -4,9 +4,7 @@ import type { QueryOf } from "akanjs/constant";
|
|
|
4
4
|
import type {
|
|
5
5
|
CRUDEventType,
|
|
6
6
|
DatabaseModel,
|
|
7
|
-
DatabaseInstance,
|
|
8
7
|
DataInputOf,
|
|
9
|
-
Doc as HydratedDoc,
|
|
10
8
|
FilterInstance,
|
|
11
9
|
FindQueryOption,
|
|
12
10
|
GetDocObject,
|
|
@@ -44,19 +42,25 @@ type DatabaseQueryMethods<Query, Sort, Obj, Doc, Insight, FindQueryOption, ListQ
|
|
|
44
42
|
DocQuery
|
|
45
43
|
>;
|
|
46
44
|
|
|
45
|
+
type DocumentLike = {
|
|
46
|
+
id: string;
|
|
47
|
+
set: (...args: never[]) => unknown;
|
|
48
|
+
save: (...args: never[]) => unknown;
|
|
49
|
+
};
|
|
50
|
+
type MixedLibServiceReturn<Value, Doc, DocObjectOfDoc> = Value extends (infer SingleValue)[]
|
|
51
|
+
? SingleValue extends DocumentLike
|
|
52
|
+
? GetDocObject<SingleValue> extends DocObjectOfDoc
|
|
53
|
+
? Doc[]
|
|
54
|
+
: Value
|
|
55
|
+
: Value
|
|
56
|
+
: Value extends DocumentLike
|
|
57
|
+
? GetDocObject<Value> extends DocObjectOfDoc
|
|
58
|
+
? Doc
|
|
59
|
+
: Value
|
|
60
|
+
: Value;
|
|
47
61
|
type MixedLibServiceMethods<MixedLibSrv, Doc, DocObjectOfDoc> = {
|
|
48
62
|
[K in keyof MixedLibSrv]: MixedLibSrv[K] extends (...args: infer Args) => Promise<infer Value>
|
|
49
|
-
? Value
|
|
50
|
-
? SingleValue extends DatabaseInstance
|
|
51
|
-
? DocObjectOfDoc extends GetDocObject<SingleValue>
|
|
52
|
-
? (...args: Args) => Promise<Doc[]>
|
|
53
|
-
: MixedLibSrv[K]
|
|
54
|
-
: MixedLibSrv[K]
|
|
55
|
-
: Value extends HydratedDoc<any>
|
|
56
|
-
? DocObjectOfDoc extends GetDocObject<Value>
|
|
57
|
-
? (...args: Args) => Promise<Doc>
|
|
58
|
-
: MixedLibSrv[K]
|
|
59
|
-
: MixedLibSrv[K]
|
|
63
|
+
? (...args: Args) => Promise<MixedLibServiceReturn<Value, Doc, DocObjectOfDoc>>
|
|
60
64
|
: MixedLibSrv[K];
|
|
61
65
|
};
|
|
62
66
|
|
package/signal/internalInfo.ts
CHANGED
|
@@ -194,17 +194,19 @@ export type InternalBuilder<
|
|
|
194
194
|
},
|
|
195
195
|
> = (builder: BuildInternal<SrvModule>) => [_Cnst] extends [never]
|
|
196
196
|
? { [key: string]: InternalInfo<Exclude<InternalType, "resolveField">> }
|
|
197
|
-
:
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
197
|
+
: [_FullCls] extends [never]
|
|
198
|
+
? { [key: string]: InternalInfo<Exclude<InternalType, "resolveField">> }
|
|
199
|
+
: {
|
|
200
|
+
[K in keyof _ResolveFieldObj]: _ResolveFieldObj[K] extends ConstantField<
|
|
201
|
+
"resolve",
|
|
202
|
+
infer Value,
|
|
203
|
+
any,
|
|
204
|
+
any,
|
|
205
|
+
infer Nullable
|
|
206
|
+
>
|
|
207
|
+
? InternalInfo<"resolveField", any, any, any, any, NonNullable<Value>, Nullable>
|
|
208
|
+
: InternalInfo<Exclude<InternalType, "resolveField">>;
|
|
209
|
+
};
|
|
208
210
|
|
|
209
211
|
export const buildInternal = {
|
|
210
212
|
resolveField: (returnRef: Cls, signalOption?: SignalOption) =>
|
package/signal/serverSignal.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { ENDPOINT_META, INJECT_META, INTERNAL_META } from "akanjs/base";
|
|
2
|
-
import type { DocumentModel } from "akanjs/constant";
|
|
3
2
|
import {
|
|
4
3
|
type Adaptor,
|
|
5
4
|
type AdaptorCls,
|
|
@@ -13,41 +12,44 @@ import type { ServerWebSocket } from "bun";
|
|
|
13
12
|
import type { EndpointCls } from "./endpoint";
|
|
14
13
|
import type { EndpInfoClientReturns, EndpInfoReqType, EndpInfoServerArgs, EndpointInfo } from "./endpointInfo";
|
|
15
14
|
import type { InternalCls } from "./internal";
|
|
16
|
-
import type { InternalInfo, InternalInfoReqType, InternalInfoServerArgs
|
|
15
|
+
import type { InternalInfo, InternalInfoReqType, InternalInfoServerArgs } from "./internalInfo";
|
|
17
16
|
|
|
18
17
|
export interface ServerSignal extends Adaptor {
|
|
19
18
|
readonly websocket: ServerWebSocket;
|
|
20
19
|
readonly queue: QueueAdaptor;
|
|
21
20
|
}
|
|
22
21
|
|
|
23
|
-
type EndpointServerSignalMethods<EnpCls> = EnpCls extends { [ENDPOINT_META]: infer EndpointInfoObj }
|
|
22
|
+
type EndpointServerSignalMethods<EnpCls> = [EnpCls] extends [{ [ENDPOINT_META]: infer EndpointInfoObj }]
|
|
24
23
|
? {
|
|
25
24
|
[K in keyof EndpointInfoObj as EndpInfoReqType<EndpointInfoObj[K]> extends "pubsub" ? K : never]: (
|
|
26
|
-
...args: [
|
|
27
|
-
...EndpInfoServerArgs<EndpointInfoObj[K]>,
|
|
28
|
-
data: DocumentModel<EndpInfoClientReturns<EndpointInfoObj[K]>>,
|
|
29
|
-
]
|
|
25
|
+
...args: [...EndpInfoServerArgs<EndpointInfoObj[K]>, data: EndpInfoClientReturns<EndpointInfoObj[K]>]
|
|
30
26
|
) => void;
|
|
31
27
|
}
|
|
32
|
-
: never
|
|
28
|
+
: Record<never, never>;
|
|
33
29
|
|
|
34
|
-
type InternalServerSignalMethods<IntCls> = IntCls extends { [INTERNAL_META]: infer InternalInfoObj }
|
|
30
|
+
type InternalServerSignalMethods<IntCls> = [IntCls] extends [{ [INTERNAL_META]: infer InternalInfoObj }]
|
|
35
31
|
? {
|
|
36
32
|
[K in keyof InternalInfoObj as InternalInfoReqType<InternalInfoObj[K]> extends "process" ? K : never]: (
|
|
37
33
|
...args: [...args: InternalInfoServerArgs<InternalInfoObj[K]>, jobOptions?: AkanJobOptions]
|
|
38
|
-
) => Promise<AkanJob<
|
|
34
|
+
) => Promise<AkanJob<unknown, unknown>>;
|
|
39
35
|
}
|
|
40
|
-
: never
|
|
36
|
+
: Record<never, never>;
|
|
41
37
|
|
|
42
|
-
type ServerSignalClsStatics = {
|
|
38
|
+
export type ServerSignalClsStatics = {
|
|
43
39
|
readonly refName: string;
|
|
44
40
|
readonly [INJECT_META]: { queue: QueueAdaptor };
|
|
45
41
|
readonly [ENDPOINT_META]: { [key: string]: EndpointInfo };
|
|
46
42
|
readonly [INTERNAL_META]: { [key: string]: InternalInfo };
|
|
47
43
|
};
|
|
48
44
|
|
|
49
|
-
export type
|
|
50
|
-
|
|
45
|
+
export type ServerSignalMethods<EnpCls, IntCls> = EndpointServerSignalMethods<EnpCls> &
|
|
46
|
+
InternalServerSignalMethods<IntCls>;
|
|
47
|
+
|
|
48
|
+
export type TypedServerSignalCls<EnpCls, IntCls> = AdaptorCls<ServerSignalMethods<EnpCls, IntCls> & ServerSignal> &
|
|
49
|
+
ServerSignalClsStatics;
|
|
50
|
+
|
|
51
|
+
export type ServerSignalCls<EnpCls = unknown, IntCls = unknown> = AdaptorCls<
|
|
52
|
+
ServerSignalMethods<EnpCls, IntCls> & ServerSignal
|
|
51
53
|
> &
|
|
52
54
|
ServerSignalClsStatics;
|
|
53
55
|
|
package/signal/slice.ts
CHANGED
package/signal/sliceInfo.ts
CHANGED
|
@@ -262,22 +262,9 @@ export type SliceBuilder<
|
|
|
262
262
|
_Light = CnstLight<SrvModule>,
|
|
263
263
|
_Insight = CnstInsight<SrvModule>,
|
|
264
264
|
_Filter extends FilterInstance = DbFilter<SrvModule>,
|
|
265
|
+
_SliceInfo = SliceInfo<SrvRefName<SrvModule>, _Input, _Full, _Light, _Insight, _Filter, SrvMap<SrvModule>>,
|
|
265
266
|
> = (
|
|
266
267
|
init: (
|
|
267
268
|
signalOption?: SignalOption,
|
|
268
|
-
) => SliceInfo<
|
|
269
|
-
|
|
270
|
-
_Input,
|
|
271
|
-
_Full,
|
|
272
|
-
_Light,
|
|
273
|
-
_Insight,
|
|
274
|
-
_Filter,
|
|
275
|
-
SrvMap<SrvModule>,
|
|
276
|
-
[],
|
|
277
|
-
[],
|
|
278
|
-
[],
|
|
279
|
-
[]
|
|
280
|
-
>,
|
|
281
|
-
) => {
|
|
282
|
-
[key: string]: SliceInfo<SrvRefName<SrvModule>, _Input, _Full, _Light, _Insight, _Filter, SrvMap<SrvModule>>;
|
|
283
|
-
};
|
|
269
|
+
) => SliceInfo<SrvRefName<SrvModule>, _Input, _Full, _Light, _Insight, _Filter, SrvMap<SrvModule>, [], [], [], []>,
|
|
270
|
+
) => Record<string, _SliceInfo>;
|
package/signal/types.ts
CHANGED
|
@@ -12,9 +12,9 @@ export type SrvMap<S extends ServiceModel> = S["srvMap"];
|
|
|
12
12
|
|
|
13
13
|
export type CnstRefName<S extends ServiceModel> = CnstOf<S>["refName"];
|
|
14
14
|
export type CnstInput<S extends ServiceModel> = CnstOf<S>["_Input"];
|
|
15
|
-
export type CnstFull<S extends ServiceModel> = CnstOf<S>["_Full"];
|
|
16
|
-
export type CnstLight<S extends ServiceModel> = CnstOf<S>["_Light"];
|
|
17
|
-
export type CnstInsight<S extends ServiceModel> = CnstOf<S>["_Insight"];
|
|
15
|
+
export type CnstFull<S extends ServiceModel> = UnCls<CnstOf<S>["full"]> & CnstOf<S>["_Full"];
|
|
16
|
+
export type CnstLight<S extends ServiceModel> = UnCls<CnstOf<S>["light"]> & CnstOf<S>["_Light"];
|
|
17
|
+
export type CnstInsight<S extends ServiceModel> = UnCls<CnstOf<S>["insight"]> & CnstOf<S>["_Insight"];
|
|
18
18
|
export type CnstDefault<S extends ServiceModel> = CnstOf<S>["_Default"];
|
|
19
19
|
export type CnstDefaultInput<S extends ServiceModel> = CnstOf<S>["_DefaultInput"];
|
|
20
20
|
export type CnstDefaultState<S extends ServiceModel> = CnstOf<S>["_DefaultState"];
|
package/types/constant/via.d.ts
CHANGED
|
@@ -18,8 +18,9 @@ type BuiltSchema<BuildField extends (builder: FieldBuilder) => FieldInfoObject>
|
|
|
18
18
|
type BuiltFieldObject<BuildField extends (builder: FieldBuilder) => FieldInfoObject> = FieldInfoObjectToFieldObject<ReturnType<BuildField>>;
|
|
19
19
|
type ResolvedSchema<ResolveField extends (resolve: FieldResolver) => FieldInfoObject> = ExtractFieldInfoObject<ReturnType<ResolveField>>;
|
|
20
20
|
type ResolvedFieldObject<ResolveField extends (resolve: FieldResolver) => FieldInfoObject> = FieldInfoObjectToFieldObject<ReturnType<ResolveField>>;
|
|
21
|
+
type ConstantSetReturn<Self, Schema> = Self extends Schema & ConstantMethods<Schema> & infer Model ? unknown extends Model ? Self : Model : Self;
|
|
21
22
|
export interface ConstantMethods<Schema = any> {
|
|
22
|
-
set:
|
|
23
|
+
set<Self extends Schema & ConstantMethods<Schema>>(this: Self, obj: Partial<Schema>): ConstantSetReturn<Self, Schema>;
|
|
23
24
|
}
|
|
24
25
|
type DatabaseSchemaOf<Schema, HiddenKey> = {
|
|
25
26
|
[K in keyof Schema]: K extends HiddenKey ? NonNullable<Schema[K]> : Schema[K];
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import type { GetStateObject } from "akanjs/base";
|
|
2
2
|
import type { BaseInsight, BaseObject } from "akanjs/constant";
|
|
3
|
-
import type { BaseFilterQueryKey, BaseFilterSortKey, FilterInfo, FilterInstance } from "akanjs/document";
|
|
3
|
+
import type { BaseFilterQueryKey, BaseFilterSortKey, FilterCls, FilterInfo, FilterInstance } from "akanjs/document";
|
|
4
4
|
import type { EndpInfoArgNames, EndpointInfo, SliceInfo, SliceInfoArgNames } from "akanjs/signal";
|
|
5
5
|
import type { RootDictionary } from "./trans.d.ts";
|
|
6
6
|
type EnumValueKey = string | number;
|
|
7
|
+
type AnyFilterShape = FilterInstance<Record<string, FilterInfo>, Record<string, unknown>>;
|
|
8
|
+
type DictFilterShape<Filter> = Filter extends FilterInstance ? Filter : Filter extends FilterCls<infer FilterShape> ? FilterShape : Filter extends {
|
|
9
|
+
query: Record<string, FilterInfo>;
|
|
10
|
+
sort: Record<string, unknown>;
|
|
11
|
+
} ? Filter : AnyFilterShape;
|
|
12
|
+
type DictFilterQuery<Filter> = DictFilterShape<Filter>["query"];
|
|
13
|
+
type DictFilterSort<Filter> = DictFilterShape<Filter>["sort"];
|
|
7
14
|
declare class FieldTranslation<Languages extends [string, ...string[]]> {
|
|
8
15
|
static translate: <Languages_1 extends [string, ...string[]]>(trans: Languages_1) => FieldTranslation<Languages_1>;
|
|
9
16
|
trans: Languages;
|
|
@@ -95,12 +102,12 @@ export declare class ModelDictInfo<Languages extends [string, ...string[]] = [st
|
|
|
95
102
|
insight<Insight extends object>(translate: (t: (trans: Languages) => FieldTranslation<Languages>) => {
|
|
96
103
|
[K in Exclude<keyof GetStateObject<Insight>, InsightKey>]: FieldTranslation<Languages>;
|
|
97
104
|
}): ModelDictInfo<Languages, ModelKey, keyof GetStateObject<Insight> & string, QueryKey, SortKey, EnumKey, BaseSignalKey, SliceKey, EndpointKey, ErrorKey, EtcKey>;
|
|
98
|
-
query<Filter
|
|
99
|
-
[K in Exclude<keyof Filter
|
|
100
|
-
}): ModelDictInfo<Languages, ModelKey, InsightKey, keyof Filter
|
|
101
|
-
sort<Filter
|
|
102
|
-
[K in Exclude<keyof Filter
|
|
103
|
-
}): ModelDictInfo<Languages, ModelKey, InsightKey, QueryKey, keyof Filter
|
|
105
|
+
query<Filter>(translate: (fn: (trans: Languages) => FunctionTranslation<Languages>) => {
|
|
106
|
+
[K in Exclude<keyof DictFilterQuery<Filter>, QueryKey>]: DictFilterQuery<Filter>[K] extends FilterInfo<infer ArgNames, any> ? FunctionTranslation<Languages, ArgNames[number]> : never;
|
|
107
|
+
}): ModelDictInfo<Languages, ModelKey, InsightKey, keyof DictFilterQuery<Filter> & string, SortKey, EnumKey, BaseSignalKey, SliceKey, EndpointKey, ErrorKey, EtcKey>;
|
|
108
|
+
sort<Filter>(translate: (t: (trans: Languages) => FieldTranslation<Languages>) => {
|
|
109
|
+
[K in Exclude<keyof DictFilterSort<Filter>, SortKey>]: FieldTranslation<Languages>;
|
|
110
|
+
}): ModelDictInfo<Languages, ModelKey, InsightKey, QueryKey, keyof DictFilterSort<Filter> & string, EnumKey, BaseSignalKey, SliceKey, EndpointKey, ErrorKey, EtcKey>;
|
|
104
111
|
enum<Enum extends {
|
|
105
112
|
refName: string;
|
|
106
113
|
value: EnumValueKey;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GetStateObject, MergedValues } from "akanjs/base";
|
|
2
2
|
import type { BaseInsight, BaseObject } from "akanjs/constant";
|
|
3
|
-
import type { FilterInfo, FilterInstance } from "akanjs/document";
|
|
3
|
+
import type { FilterCls, FilterInfo, FilterInstance } from "akanjs/document";
|
|
4
4
|
import type { EndpInfoArgNames, EndpointInfo, SliceInfo, SliceInfoArgNames, SliceInfoRefName } from "akanjs/signal";
|
|
5
5
|
import type { ModelDictInfo, ScalarDictInfo, ServiceDictInfo } from ".";
|
|
6
6
|
interface Trans {
|
|
@@ -17,9 +17,16 @@ interface FnTrans<ArgKey extends string> {
|
|
|
17
17
|
[key in ArgKey]: FieldTrans;
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
-
type
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
type AnyFilterShape = FilterInstance<Record<string, FilterInfo>, Record<string, unknown>>;
|
|
21
|
+
type DictFilterShape<Filter> = Filter extends FilterInstance ? Filter : Filter extends FilterCls<infer FilterShape> ? FilterShape : Filter extends {
|
|
22
|
+
query: Record<string, FilterInfo>;
|
|
23
|
+
sort: Record<string, unknown>;
|
|
24
|
+
} ? Filter : AnyFilterShape;
|
|
25
|
+
type DictFilterQuery<Filter> = DictFilterShape<Filter>["query"];
|
|
26
|
+
type DictFilterSort<Filter> = DictFilterShape<Filter>["sort"];
|
|
27
|
+
type FilterTranslatorKey<Filter> = {
|
|
28
|
+
[Key in keyof DictFilterQuery<Filter> & string]: `${Key}` | `${Key}.desc` | (DictFilterQuery<Filter>[Key] extends FilterInfo<infer ArgNames, any> ? ArgNames[number] extends string ? `${Key}.arg.${ArgNames[number]}` | `${Key}.arg.${ArgNames[number]}.desc` : never : never);
|
|
29
|
+
}[keyof DictFilterQuery<Filter> & string];
|
|
23
30
|
type EndpointTranslatorKey<Endpoint extends {
|
|
24
31
|
[key: string]: EndpointInfo;
|
|
25
32
|
}> = {
|
|
@@ -44,7 +51,7 @@ type BaseModelCrudGetApiTrans<T extends string> = {
|
|
|
44
51
|
} & {
|
|
45
52
|
[K in `remove${T}`]: FnTrans<`${T}Id`>;
|
|
46
53
|
};
|
|
47
|
-
export type ModelTrans<T extends string, Model extends BaseObject, Insight extends BaseInsight, Filter
|
|
54
|
+
export type ModelTrans<T extends string, Model extends BaseObject, Insight extends BaseInsight, Filter, Slice extends {
|
|
48
55
|
[key: string]: SliceInfo;
|
|
49
56
|
}, Endpoint extends {
|
|
50
57
|
[key: string]: EndpointInfo;
|
|
@@ -58,10 +65,10 @@ export type ModelTrans<T extends string, Model extends BaseObject, Insight exten
|
|
|
58
65
|
[K in keyof GetStateObject<Insight>]: FieldTrans;
|
|
59
66
|
};
|
|
60
67
|
query: {
|
|
61
|
-
[K in keyof Filter
|
|
68
|
+
[K in keyof DictFilterQuery<Filter>]: DictFilterQuery<Filter>[K] extends FilterInfo<infer ArgNames, any> ? FnTrans<ArgNames[number]> : never;
|
|
62
69
|
};
|
|
63
70
|
sort: {
|
|
64
|
-
[K in keyof Filter
|
|
71
|
+
[K in keyof DictFilterSort<Filter>]: FieldTrans;
|
|
65
72
|
};
|
|
66
73
|
api: {
|
|
67
74
|
[K in keyof Endpoint]: FnTrans<EndpInfoArgNames<Endpoint[K]>[number]>;
|
|
@@ -74,11 +81,11 @@ export type ModelTrans<T extends string, Model extends BaseObject, Insight exten
|
|
|
74
81
|
} & {
|
|
75
82
|
[K in EtcKey]: Trans;
|
|
76
83
|
};
|
|
77
|
-
export type ModelTranslatorKey<T extends string, Model, Insight, Filter
|
|
84
|
+
export type ModelTranslatorKey<T extends string, Model, Insight, Filter, Slice extends {
|
|
78
85
|
[key: string]: SliceInfo;
|
|
79
86
|
}, Endpoint extends {
|
|
80
87
|
[key: string]: EndpointInfo;
|
|
81
|
-
}, EtcKey extends string> = `${T}.modelName` | `${T}.modelDesc` | `${T}.${keyof GetStateObject<Model> & string}${"" | ".desc"}` | `${T}.insight.${keyof GetStateObject<Insight> & string}${"" | ".desc"}` | `${T}.query.${FilterTranslatorKey<Filter>}` | `${T}.sort.${keyof Filter
|
|
88
|
+
}, EtcKey extends string> = `${T}.modelName` | `${T}.modelDesc` | `${T}.${keyof GetStateObject<Model> & string}${"" | ".desc"}` | `${T}.insight.${keyof GetStateObject<Insight> & string}${"" | ".desc"}` | `${T}.query.${FilterTranslatorKey<Filter>}` | `${T}.sort.${keyof DictFilterSort<Filter> & string}${"" | ".desc"}` | `${T}.signal.${EndpointTranslatorKey<Endpoint> | SliceTranslatorKey<Slice>}` | `${T}.${EtcKey}`;
|
|
82
89
|
export type ScalarTrans<T extends string, Model, ErrorKey extends string, EtcKey extends string> = {
|
|
83
90
|
name: Trans;
|
|
84
91
|
desc: Trans;
|
|
@@ -116,7 +123,7 @@ export interface DictModule<DictKey extends string, ErrorKey extends string> {
|
|
|
116
123
|
__Error_Key__: ErrorKey;
|
|
117
124
|
dict: ModelDictInfo<any> | ScalarDictInfo<any> | ServiceDictInfo<any>;
|
|
118
125
|
}
|
|
119
|
-
export declare const registerModelTrans: <RefName extends string, Model extends BaseObject, Insight extends BaseInsight, Filter
|
|
126
|
+
export declare const registerModelTrans: <RefName extends string, Model extends BaseObject, Insight extends BaseInsight, Filter, Slice extends {
|
|
120
127
|
[key: string]: SliceInfo;
|
|
121
128
|
}, Endpoint extends {
|
|
122
129
|
[key: string]: EndpointInfo;
|
package/types/document/into.d.ts
CHANGED
|
@@ -68,6 +68,7 @@ interface IntoConstantModel<T extends string, _CapitalizedRefName extends string
|
|
|
68
68
|
_CapitalizedRefName: _CapitalizedRefName;
|
|
69
69
|
_Full: Raw;
|
|
70
70
|
}
|
|
71
|
+
type NoInferType<T> = [T][T extends unknown ? 0 : never];
|
|
71
72
|
type IntoModelActions<T extends string, _CapitalizedRefName extends string, Doc, Raw, _Query, _Sort, _QueryOfDoc = QueryOf<Doc>> = {
|
|
72
73
|
[key in _CapitalizedRefName]: Mdl<Doc, Raw>;
|
|
73
74
|
} & {
|
|
@@ -87,5 +88,5 @@ type IntoModelActions<T extends string, _CapitalizedRefName extends string, Doc,
|
|
|
87
88
|
} & {
|
|
88
89
|
[K in `remove${_CapitalizedRefName}`]: (id: string) => Promise<Doc>;
|
|
89
90
|
} & QueryMethodPart<_Query, _Sort, Raw, Doc, unknown, unknown, unknown, _QueryOfDoc>;
|
|
90
|
-
export declare const into: <
|
|
91
|
+
export declare const into: <Doc, FilterRef extends FilterCls, T extends string, Raw, AddDbModels extends ModelCls[], _CapitalizedRefName extends string, _QueryOfDoc = QueryOf<Doc>, _Query = FilterQueryOf<FilterRef>, _Sort = FilterSortOf<FilterRef>, _LoaderBuilder extends LoaderBuilder<NoInferType<Doc>> = LoaderBuilder<Doc>>(docRef: Cls<Doc>, filterRef: FilterRef, cnst: IntoConstantModel<T, _CapitalizedRefName, Raw>, loaderBuilder: _LoaderBuilder, ...addMdls: [...AddDbModels]) => ModelCls<IntoModelActions<T, _CapitalizedRefName, Doc, Raw, _Query, _Sort, _QueryOfDoc>, ReturnType<_LoaderBuilder>>;
|
|
91
92
|
export {};
|
package/types/service/types.d.ts
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import type { Cls, MergeAllTypes, PromiseOrObject } from "akanjs/base";
|
|
2
2
|
import type { Logger } from "akanjs/common";
|
|
3
3
|
import type { QueryOf } from "akanjs/constant";
|
|
4
|
-
import type { CRUDEventType, DatabaseModel,
|
|
4
|
+
import type { CRUDEventType, DatabaseModel, DataInputOf, FilterInstance, FindQueryOption, GetDocObject, ListQueryOption, QueryMethodPart, SaveEventType } from "akanjs/document";
|
|
5
5
|
type ServiceMixinOmitKey = "onInit" | "onDestroy" | "_libsOnInit" | "_libsOnDestroy" | "_preCreate" | "_postCreate" | "_preUpdate" | "_postUpdate" | "_preRemove" | "_postRemove" | "_libsPreCreate" | "_libsPostCreate" | "_libsPreUpdate" | "_libsPostUpdate" | "_libsPreRemove" | "_libsPostRemove";
|
|
6
6
|
type DatabaseQueryMethods<Query, Sort, Obj, Doc, Insight, FindQueryOption, ListQueryOption, DocQuery> = QueryMethodPart<Query, Sort, Obj, Doc, Insight, FindQueryOption, ListQueryOption, DocQuery>;
|
|
7
|
+
type DocumentLike = {
|
|
8
|
+
id: string;
|
|
9
|
+
set: (...args: never[]) => unknown;
|
|
10
|
+
save: (...args: never[]) => unknown;
|
|
11
|
+
};
|
|
12
|
+
type MixedLibServiceReturn<Value, Doc, DocObjectOfDoc> = Value extends (infer SingleValue)[] ? SingleValue extends DocumentLike ? GetDocObject<SingleValue> extends DocObjectOfDoc ? Doc[] : Value : Value : Value extends DocumentLike ? GetDocObject<Value> extends DocObjectOfDoc ? Doc : Value : Value;
|
|
7
13
|
type MixedLibServiceMethods<MixedLibSrv, Doc, DocObjectOfDoc> = {
|
|
8
|
-
[K in keyof MixedLibSrv]: MixedLibSrv[K] extends (...args: infer Args) => Promise<infer Value> ?
|
|
14
|
+
[K in keyof MixedLibSrv]: MixedLibSrv[K] extends (...args: infer Args) => Promise<infer Value> ? (...args: Args) => Promise<MixedLibServiceReturn<Value, Doc, DocObjectOfDoc>> : MixedLibSrv[K];
|
|
9
15
|
};
|
|
10
16
|
export type DbRefName<Db extends DatabaseModel> = Db["refName"];
|
|
11
17
|
export type DbInput<Db extends DatabaseModel> = Db["_Input"];
|
|
@@ -68,6 +68,8 @@ export type InternalBuilder<SrvModule extends ServiceModel, _Cnst = CnstOf<SrvMo
|
|
|
68
68
|
[K in keyof _FieldObj as _FieldObj[K] extends ConstantField<"resolve", any, any, any, any, any> ? K : never]: _FieldObj[K];
|
|
69
69
|
}> = (builder: BuildInternal<SrvModule>) => [_Cnst] extends [never] ? {
|
|
70
70
|
[key: string]: InternalInfo<Exclude<InternalType, "resolveField">>;
|
|
71
|
+
} : [_FullCls] extends [never] ? {
|
|
72
|
+
[key: string]: InternalInfo<Exclude<InternalType, "resolveField">>;
|
|
71
73
|
} : {
|
|
72
74
|
[K in keyof _ResolveFieldObj]: _ResolveFieldObj[K] extends ConstantField<"resolve", infer Value, any, any, infer Nullable> ? InternalInfo<"resolveField", any, any, any, any, NonNullable<Value>, Nullable> : InternalInfo<Exclude<InternalType, "resolveField">>;
|
|
73
75
|
};
|
|
@@ -1,27 +1,23 @@
|
|
|
1
1
|
import { ENDPOINT_META, INJECT_META, INTERNAL_META } from "akanjs/base";
|
|
2
|
-
import type { DocumentModel } from "akanjs/constant";
|
|
3
2
|
import { type Adaptor, type AdaptorCls, type AkanJob, type AkanJobOptions, type QueueAdaptor } from "akanjs/service";
|
|
4
3
|
import type { ServerWebSocket } from "bun";
|
|
5
4
|
import type { EndpInfoClientReturns, EndpInfoReqType, EndpInfoServerArgs, EndpointInfo } from "./endpointInfo.d.ts";
|
|
6
|
-
import type { InternalInfo, InternalInfoReqType, InternalInfoServerArgs
|
|
5
|
+
import type { InternalInfo, InternalInfoReqType, InternalInfoServerArgs } from "./internalInfo.d.ts";
|
|
7
6
|
export interface ServerSignal extends Adaptor {
|
|
8
7
|
readonly websocket: ServerWebSocket;
|
|
9
8
|
readonly queue: QueueAdaptor;
|
|
10
9
|
}
|
|
11
|
-
type EndpointServerSignalMethods<EnpCls> = EnpCls extends {
|
|
10
|
+
type EndpointServerSignalMethods<EnpCls> = [EnpCls] extends [{
|
|
12
11
|
[ENDPOINT_META]: infer EndpointInfoObj;
|
|
13
|
-
} ? {
|
|
14
|
-
[K in keyof EndpointInfoObj as EndpInfoReqType<EndpointInfoObj[K]> extends "pubsub" ? K : never]: (...args: [
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
]) => void;
|
|
18
|
-
} : never;
|
|
19
|
-
type InternalServerSignalMethods<IntCls> = IntCls extends {
|
|
12
|
+
}] ? {
|
|
13
|
+
[K in keyof EndpointInfoObj as EndpInfoReqType<EndpointInfoObj[K]> extends "pubsub" ? K : never]: (...args: [...EndpInfoServerArgs<EndpointInfoObj[K]>, data: EndpInfoClientReturns<EndpointInfoObj[K]>]) => void;
|
|
14
|
+
} : Record<never, never>;
|
|
15
|
+
type InternalServerSignalMethods<IntCls> = [IntCls] extends [{
|
|
20
16
|
[INTERNAL_META]: infer InternalInfoObj;
|
|
21
|
-
} ? {
|
|
22
|
-
[K in keyof InternalInfoObj as InternalInfoReqType<InternalInfoObj[K]> extends "process" ? K : never]: (...args: [...args: InternalInfoServerArgs<InternalInfoObj[K]>, jobOptions?: AkanJobOptions]) => Promise<AkanJob<
|
|
23
|
-
} : never
|
|
24
|
-
type ServerSignalClsStatics = {
|
|
17
|
+
}] ? {
|
|
18
|
+
[K in keyof InternalInfoObj as InternalInfoReqType<InternalInfoObj[K]> extends "process" ? K : never]: (...args: [...args: InternalInfoServerArgs<InternalInfoObj[K]>, jobOptions?: AkanJobOptions]) => Promise<AkanJob<unknown, unknown>>;
|
|
19
|
+
} : Record<never, never>;
|
|
20
|
+
export type ServerSignalClsStatics = {
|
|
25
21
|
readonly refName: string;
|
|
26
22
|
readonly [INJECT_META]: {
|
|
27
23
|
queue: QueueAdaptor;
|
|
@@ -33,7 +29,9 @@ type ServerSignalClsStatics = {
|
|
|
33
29
|
[key: string]: InternalInfo;
|
|
34
30
|
};
|
|
35
31
|
};
|
|
36
|
-
export type
|
|
32
|
+
export type ServerSignalMethods<EnpCls, IntCls> = EndpointServerSignalMethods<EnpCls> & InternalServerSignalMethods<IntCls>;
|
|
33
|
+
export type TypedServerSignalCls<EnpCls, IntCls> = AdaptorCls<ServerSignalMethods<EnpCls, IntCls> & ServerSignal> & ServerSignalClsStatics;
|
|
34
|
+
export type ServerSignalCls<EnpCls = unknown, IntCls = unknown> = AdaptorCls<ServerSignalMethods<EnpCls, IntCls> & ServerSignal> & ServerSignalClsStatics;
|
|
37
35
|
/** Composes endpoint and internal classes into a server-side signal class. */
|
|
38
36
|
export declare const serverSignal: <EnpCls, IntCls>(endpointRef: EnpCls, internalRef: IntCls) => ServerSignalCls<EnpCls, IntCls>;
|
|
39
37
|
export {};
|
|
@@ -68,11 +68,5 @@ export type SliceInfoArgNames<S> = SliceInfoParts<S>["argNames"];
|
|
|
68
68
|
export type SliceInfoArgs<S> = SliceInfoParts<S>["args"];
|
|
69
69
|
export type SliceInfoInternalArgs<S> = SliceInfoParts<S>["internalArgs"];
|
|
70
70
|
export type SliceInfoServerArgs<S> = SliceInfoParts<S>["serverArgs"];
|
|
71
|
-
export type SliceBuilder<SrvModule extends ServiceModel, _Input = CnstInput<SrvModule>, _Full = CnstFull<SrvModule>, _Light = CnstLight<SrvModule>, _Insight = CnstInsight<SrvModule>, _Filter extends FilterInstance = DbFilter<SrvModule
|
|
72
|
-
], [
|
|
73
|
-
], [
|
|
74
|
-
], [
|
|
75
|
-
]>) => {
|
|
76
|
-
[key: string]: SliceInfo<SrvRefName<SrvModule>, _Input, _Full, _Light, _Insight, _Filter, SrvMap<SrvModule>>;
|
|
77
|
-
};
|
|
71
|
+
export type SliceBuilder<SrvModule extends ServiceModel, _Input = CnstInput<SrvModule>, _Full = CnstFull<SrvModule>, _Light = CnstLight<SrvModule>, _Insight = CnstInsight<SrvModule>, _Filter extends FilterInstance = DbFilter<SrvModule>, _SliceInfo = SliceInfo<SrvRefName<SrvModule>, _Input, _Full, _Light, _Insight, _Filter, SrvMap<SrvModule>>> = (init: (signalOption?: SignalOption) => SliceInfo<SrvRefName<SrvModule>, _Input, _Full, _Light, _Insight, _Filter, SrvMap<SrvModule>, [], [], [], []>) => Record<string, _SliceInfo>;
|
|
78
72
|
export {};
|
package/types/signal/types.d.ts
CHANGED
|
@@ -10,9 +10,9 @@ export type SrvRefName<S extends ServiceModel> = SrvOf<S>["refName"];
|
|
|
10
10
|
export type SrvMap<S extends ServiceModel> = S["srvMap"];
|
|
11
11
|
export type CnstRefName<S extends ServiceModel> = CnstOf<S>["refName"];
|
|
12
12
|
export type CnstInput<S extends ServiceModel> = CnstOf<S>["_Input"];
|
|
13
|
-
export type CnstFull<S extends ServiceModel> = CnstOf<S>["_Full"];
|
|
14
|
-
export type CnstLight<S extends ServiceModel> = CnstOf<S>["_Light"];
|
|
15
|
-
export type CnstInsight<S extends ServiceModel> = CnstOf<S>["_Insight"];
|
|
13
|
+
export type CnstFull<S extends ServiceModel> = UnCls<CnstOf<S>["full"]> & CnstOf<S>["_Full"];
|
|
14
|
+
export type CnstLight<S extends ServiceModel> = UnCls<CnstOf<S>["light"]> & CnstOf<S>["_Light"];
|
|
15
|
+
export type CnstInsight<S extends ServiceModel> = UnCls<CnstOf<S>["insight"]> & CnstOf<S>["_Insight"];
|
|
16
16
|
export type CnstDefault<S extends ServiceModel> = CnstOf<S>["_Default"];
|
|
17
17
|
export type CnstDefaultInput<S extends ServiceModel> = CnstOf<S>["_DefaultInput"];
|
|
18
18
|
export type CnstDefaultState<S extends ServiceModel> = CnstOf<S>["_DefaultState"];
|