akanjs 2.3.5-rc.13 → 2.3.5-rc.14
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/document/by.ts +37 -14
- package/package.json +1 -1
- package/service/types.ts +2 -2
- package/signal/internalInfo.ts +3 -3
- package/signal/serverSignal.ts +4 -1
- package/types/document/by.d.ts +14 -8
- package/types/service/serviceModule.d.ts +5 -5
- package/types/service/types.d.ts +1 -1
- package/types/signal/internalInfo.d.ts +4 -2
- package/types/signal/serverSignal.d.ts +3 -1
package/document/by.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Cls, FIELD_META, type GetActionObject,
|
|
1
|
+
import { type Cls, FIELD_META, type GetActionObject, SERVER_VALUE } from "akanjs/base";
|
|
2
2
|
import { applyMixins } from "akanjs/common";
|
|
3
3
|
import {
|
|
4
4
|
ConstantRegistry,
|
|
@@ -7,7 +7,12 @@ import {
|
|
|
7
7
|
type FieldObject,
|
|
8
8
|
} from "akanjs/constant";
|
|
9
9
|
|
|
10
|
-
export type DatabaseCls<Schema =
|
|
10
|
+
export type DatabaseCls<Schema = unknown> = Cls<Schema, { refName: string; [FIELD_META]: FieldObject }>;
|
|
11
|
+
export type DatabaseInstanceOf<DatabaseRef extends DatabaseCls> = DatabaseRef extends new (
|
|
12
|
+
...args: never[]
|
|
13
|
+
) => infer Instance
|
|
14
|
+
? Instance
|
|
15
|
+
: never;
|
|
11
16
|
type ConstantModelCls = DocumentConstantModelRef<unknown>;
|
|
12
17
|
|
|
13
18
|
export interface DefaultDocMtds<TDocument> {
|
|
@@ -38,8 +43,13 @@ interface ChainableHydratedMethods<TDocument>
|
|
|
38
43
|
type ChainableHydratedDocument<TDocument> = TDocument & {
|
|
39
44
|
id: string;
|
|
40
45
|
} & ChainableHydratedMethods<TDocument>;
|
|
41
|
-
export type Doc<M =
|
|
46
|
+
export type Doc<M = unknown> = HydratedDocumentWithId<DocumentModel<M>>;
|
|
42
47
|
type DatabaseSchemaOf<ModelCls> = ModelCls extends { _DatabaseSchema: infer Schema } ? Schema : never;
|
|
48
|
+
type ConstantValueOf<ModelCls> = ModelCls extends { [SERVER_VALUE]: infer Schema }
|
|
49
|
+
? Schema
|
|
50
|
+
: ModelCls extends new (...args: never[]) => infer Schema
|
|
51
|
+
? Schema
|
|
52
|
+
: never;
|
|
43
53
|
type ObjectDocumentModelType = "object" | "full" | "light";
|
|
44
54
|
type ModelTypeOf<ModelCls> = ModelCls extends { _ModelType: infer ModelType } ? ModelType : never;
|
|
45
55
|
type IsObjectModel<ModelCls> = ModelTypeOf<ModelCls> extends ObjectDocumentModelType ? true : false;
|
|
@@ -48,27 +58,40 @@ type DocModelOf<ModelCls, Schema = DatabaseSchemaOf<ModelCls>> =
|
|
|
48
58
|
type DocActionOmitKey<ModelCls, Schema = DatabaseSchemaOf<ModelCls>> =
|
|
49
59
|
| (keyof Schema & string)
|
|
50
60
|
| (IsObjectModel<ModelCls> extends true ? keyof DefaultDocMtds<unknown> | "id" : never);
|
|
51
|
-
type DatabaseSchemaFor<ModelCls extends ConstantModelCls> = DatabaseSchemaOf<ModelCls>;
|
|
61
|
+
type DatabaseSchemaFor<ModelCls extends ConstantModelCls> = DatabaseSchemaOf<ModelCls> & ConstantValueOf<ModelCls>;
|
|
52
62
|
type DocModelFor<ModelCls extends ConstantModelCls> = DocModelOf<ModelCls, DatabaseSchemaFor<ModelCls>>;
|
|
53
63
|
type DocActionOmitKeyFor<ModelCls extends ConstantModelCls> = DocActionOmitKey<ModelCls, DatabaseSchemaFor<ModelCls>>;
|
|
54
|
-
type
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
64
|
+
type StrictDocumentActions<T> = string extends keyof T
|
|
65
|
+
? T[string] extends never
|
|
66
|
+
? Record<never, never>
|
|
67
|
+
: GetActionObject<T>
|
|
68
|
+
: GetActionObject<T>;
|
|
69
|
+
type DocumentActionsOf<AddDbModel extends DatabaseCls, OmitKey extends string> = Omit<
|
|
70
|
+
StrictDocumentActions<DatabaseInstanceOf<AddDbModel>>,
|
|
71
|
+
OmitKey
|
|
72
|
+
>;
|
|
73
|
+
type MergeDocumentActions<
|
|
74
|
+
AddDbModels extends readonly DatabaseCls[],
|
|
75
|
+
OmitKey extends string,
|
|
76
|
+
Acc = Record<never, never>,
|
|
77
|
+
> = AddDbModels extends readonly [infer First extends DatabaseCls, ...infer Rest extends readonly DatabaseCls[]]
|
|
78
|
+
? MergeDocumentActions<Rest, OmitKey, Acc & DocumentActionsOf<First, OmitKey>>
|
|
79
|
+
: AddDbModels extends readonly (infer AddDbModel extends DatabaseCls)[]
|
|
80
|
+
? Acc & DocumentActionsOf<AddDbModel, OmitKey>
|
|
81
|
+
: Acc;
|
|
59
82
|
type ByInstance<
|
|
60
83
|
ModelCls extends ConstantModelCls,
|
|
61
|
-
AddDbModels extends DatabaseCls[],
|
|
84
|
+
AddDbModels extends readonly DatabaseCls[],
|
|
62
85
|
_OmitKey extends string = DocActionOmitKeyFor<ModelCls> & string,
|
|
63
86
|
_DocModel = DocModelFor<ModelCls>,
|
|
64
|
-
> =
|
|
87
|
+
> = MergeDocumentActions<AddDbModels, _OmitKey> & _DocModel;
|
|
65
88
|
|
|
66
89
|
export function by<ModelCls extends ConstantModelCls>(modelRef: ModelCls): DatabaseCls<DocModelFor<ModelCls>>;
|
|
67
90
|
export function by<ModelCls extends ConstantModelCls, AddDbModel extends DatabaseCls>(
|
|
68
91
|
modelRef: ModelCls,
|
|
69
92
|
addRef: AddDbModel,
|
|
70
|
-
): DatabaseCls<
|
|
71
|
-
export function by<ModelCls extends ConstantModelCls, AddDbModels extends DatabaseCls[]>(
|
|
93
|
+
): DatabaseCls<DocumentActionsOf<AddDbModel, DocActionOmitKeyFor<ModelCls> & string> & DocModelFor<ModelCls>>;
|
|
94
|
+
export function by<ModelCls extends ConstantModelCls, const AddDbModels extends DatabaseCls[]>(
|
|
72
95
|
modelRef: ModelCls,
|
|
73
96
|
...addRefs: AddDbModels
|
|
74
97
|
): DatabaseCls<ByInstance<ModelCls, AddDbModels>>;
|
|
@@ -79,5 +102,5 @@ export function by(modelRef: ConstantModelCls, ...addRefs: DatabaseCls[]): Datab
|
|
|
79
102
|
static [FIELD_META] = modelRef[FIELD_META];
|
|
80
103
|
};
|
|
81
104
|
applyMixins(databaseCls as Cls, addRefs);
|
|
82
|
-
return databaseCls as
|
|
105
|
+
return databaseCls as unknown as DatabaseCls;
|
|
83
106
|
}
|
package/package.json
CHANGED
package/service/types.ts
CHANGED
|
@@ -49,12 +49,12 @@ type DocumentLike = {
|
|
|
49
49
|
};
|
|
50
50
|
type MixedLibServiceReturn<Value, Doc, DocObjectOfDoc> = Value extends (infer SingleValue)[]
|
|
51
51
|
? SingleValue extends DocumentLike
|
|
52
|
-
? GetDocObject<SingleValue>
|
|
52
|
+
? DocObjectOfDoc extends GetDocObject<SingleValue>
|
|
53
53
|
? Doc[]
|
|
54
54
|
: Value
|
|
55
55
|
: Value
|
|
56
56
|
: Value extends DocumentLike
|
|
57
|
-
? GetDocObject<Value>
|
|
57
|
+
? DocObjectOfDoc extends GetDocObject<Value>
|
|
58
58
|
? Doc
|
|
59
59
|
: Value
|
|
60
60
|
: Value;
|
package/signal/internalInfo.ts
CHANGED
|
@@ -193,9 +193,9 @@ export type InternalBuilder<
|
|
|
193
193
|
: never]: _FieldObj[K];
|
|
194
194
|
},
|
|
195
195
|
> = (builder: BuildInternal<SrvModule>) => [_Cnst] extends [never]
|
|
196
|
-
? { [key: string]: InternalInfo<
|
|
196
|
+
? { [key: string]: InternalInfo<InternalType> }
|
|
197
197
|
: [_FullCls] extends [never]
|
|
198
|
-
? { [key: string]: InternalInfo<
|
|
198
|
+
? { [key: string]: InternalInfo<InternalType> }
|
|
199
199
|
: {
|
|
200
200
|
[K in keyof _ResolveFieldObj]: _ResolveFieldObj[K] extends ConstantField<
|
|
201
201
|
"resolve",
|
|
@@ -206,7 +206,7 @@ export type InternalBuilder<
|
|
|
206
206
|
>
|
|
207
207
|
? InternalInfo<"resolveField", any, any, any, any, NonNullable<Value>, Nullable>
|
|
208
208
|
: InternalInfo<Exclude<InternalType, "resolveField">>;
|
|
209
|
-
};
|
|
209
|
+
} & { [key: string]: InternalInfo<InternalType> };
|
|
210
210
|
|
|
211
211
|
export const buildInternal = {
|
|
212
212
|
resolveField: (returnRef: Cls, signalOption?: SignalOption) =>
|
package/signal/serverSignal.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ENDPOINT_META, INJECT_META, INTERNAL_META } from "akanjs/base";
|
|
2
|
+
import type { DocumentModel } from "akanjs/constant";
|
|
2
3
|
import {
|
|
3
4
|
type Adaptor,
|
|
4
5
|
type AdaptorCls,
|
|
@@ -14,6 +15,8 @@ import type { EndpInfoClientReturns, EndpInfoReqType, EndpInfoServerArgs, Endpoi
|
|
|
14
15
|
import type { InternalCls } from "./internal";
|
|
15
16
|
import type { InternalInfo, InternalInfoReqType, InternalInfoServerArgs } from "./internalInfo";
|
|
16
17
|
|
|
18
|
+
type EndpointPubsubPayload<E> = EndpInfoClientReturns<E> | DocumentModel<EndpInfoClientReturns<E>>;
|
|
19
|
+
|
|
17
20
|
export interface ServerSignal extends Adaptor {
|
|
18
21
|
readonly websocket: ServerWebSocket;
|
|
19
22
|
readonly queue: QueueAdaptor;
|
|
@@ -22,7 +25,7 @@ export interface ServerSignal extends Adaptor {
|
|
|
22
25
|
type EndpointServerSignalMethods<EnpCls> = [EnpCls] extends [{ [ENDPOINT_META]: infer EndpointInfoObj }]
|
|
23
26
|
? {
|
|
24
27
|
[K in keyof EndpointInfoObj as EndpInfoReqType<EndpointInfoObj[K]> extends "pubsub" ? K : never]: (
|
|
25
|
-
...args: [...EndpInfoServerArgs<EndpointInfoObj[K]>, data:
|
|
28
|
+
...args: [...EndpInfoServerArgs<EndpointInfoObj[K]>, data: EndpointPubsubPayload<EndpointInfoObj[K]>]
|
|
26
29
|
) => void;
|
|
27
30
|
}
|
|
28
31
|
: Record<never, never>;
|
package/types/document/by.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { type Cls, FIELD_META, type GetActionObject,
|
|
1
|
+
import { type Cls, FIELD_META, type GetActionObject, SERVER_VALUE } from "akanjs/base";
|
|
2
2
|
import { type DocumentConstantModelRef, type DocumentModel, type FieldObject } from "akanjs/constant";
|
|
3
|
-
export type DatabaseCls<Schema =
|
|
3
|
+
export type DatabaseCls<Schema = unknown> = Cls<Schema, {
|
|
4
4
|
refName: string;
|
|
5
5
|
[FIELD_META]: FieldObject;
|
|
6
6
|
}>;
|
|
7
|
+
export type DatabaseInstanceOf<DatabaseRef extends DatabaseCls> = DatabaseRef extends new (...args: never[]) => infer Instance ? Instance : never;
|
|
7
8
|
type ConstantModelCls = DocumentConstantModelRef<unknown>;
|
|
8
9
|
export interface DefaultDocMtds<TDocument> {
|
|
9
10
|
refresh(): Promise<this>;
|
|
@@ -31,10 +32,13 @@ interface ChainableHydratedMethods<TDocument> extends Omit<DefaultDocMtds<TDocum
|
|
|
31
32
|
type ChainableHydratedDocument<TDocument> = TDocument & {
|
|
32
33
|
id: string;
|
|
33
34
|
} & ChainableHydratedMethods<TDocument>;
|
|
34
|
-
export type Doc<M =
|
|
35
|
+
export type Doc<M = unknown> = HydratedDocumentWithId<DocumentModel<M>>;
|
|
35
36
|
type DatabaseSchemaOf<ModelCls> = ModelCls extends {
|
|
36
37
|
_DatabaseSchema: infer Schema;
|
|
37
38
|
} ? Schema : never;
|
|
39
|
+
type ConstantValueOf<ModelCls> = ModelCls extends {
|
|
40
|
+
[SERVER_VALUE]: infer Schema;
|
|
41
|
+
} ? Schema : ModelCls extends new (...args: never[]) => infer Schema ? Schema : never;
|
|
38
42
|
type ObjectDocumentModelType = "object" | "full" | "light";
|
|
39
43
|
type ModelTypeOf<ModelCls> = ModelCls extends {
|
|
40
44
|
_ModelType: infer ModelType;
|
|
@@ -42,12 +46,14 @@ type ModelTypeOf<ModelCls> = ModelCls extends {
|
|
|
42
46
|
type IsObjectModel<ModelCls> = ModelTypeOf<ModelCls> extends ObjectDocumentModelType ? true : false;
|
|
43
47
|
type DocModelOf<ModelCls, Schema = DatabaseSchemaOf<ModelCls>> = IsObjectModel<ModelCls> extends true ? ChainableHydratedDocument<DocumentModel<Schema>> : DocumentModel<Schema>;
|
|
44
48
|
type DocActionOmitKey<ModelCls, Schema = DatabaseSchemaOf<ModelCls>> = (keyof Schema & string) | (IsObjectModel<ModelCls> extends true ? keyof DefaultDocMtds<unknown> | "id" : never);
|
|
45
|
-
type DatabaseSchemaFor<ModelCls extends ConstantModelCls> = DatabaseSchemaOf<ModelCls>;
|
|
49
|
+
type DatabaseSchemaFor<ModelCls extends ConstantModelCls> = DatabaseSchemaOf<ModelCls> & ConstantValueOf<ModelCls>;
|
|
46
50
|
type DocModelFor<ModelCls extends ConstantModelCls> = DocModelOf<ModelCls, DatabaseSchemaFor<ModelCls>>;
|
|
47
51
|
type DocActionOmitKeyFor<ModelCls extends ConstantModelCls> = DocActionOmitKey<ModelCls, DatabaseSchemaFor<ModelCls>>;
|
|
48
|
-
type
|
|
49
|
-
type
|
|
52
|
+
type StrictDocumentActions<T> = string extends keyof T ? T[string] extends never ? Record<never, never> : GetActionObject<T> : GetActionObject<T>;
|
|
53
|
+
type DocumentActionsOf<AddDbModel extends DatabaseCls, OmitKey extends string> = Omit<StrictDocumentActions<DatabaseInstanceOf<AddDbModel>>, OmitKey>;
|
|
54
|
+
type MergeDocumentActions<AddDbModels extends readonly DatabaseCls[], OmitKey extends string, Acc = Record<never, never>> = AddDbModels extends readonly [infer First extends DatabaseCls, ...infer Rest extends readonly DatabaseCls[]] ? MergeDocumentActions<Rest, OmitKey, Acc & DocumentActionsOf<First, OmitKey>> : AddDbModels extends readonly (infer AddDbModel extends DatabaseCls)[] ? Acc & DocumentActionsOf<AddDbModel, OmitKey> : Acc;
|
|
55
|
+
type ByInstance<ModelCls extends ConstantModelCls, AddDbModels extends readonly DatabaseCls[], _OmitKey extends string = DocActionOmitKeyFor<ModelCls> & string, _DocModel = DocModelFor<ModelCls>> = MergeDocumentActions<AddDbModels, _OmitKey> & _DocModel;
|
|
50
56
|
export declare function by<ModelCls extends ConstantModelCls>(modelRef: ModelCls): DatabaseCls<DocModelFor<ModelCls>>;
|
|
51
|
-
export declare function by<ModelCls extends ConstantModelCls, AddDbModel extends DatabaseCls>(modelRef: ModelCls, addRef: AddDbModel): DatabaseCls<
|
|
52
|
-
export declare function by<ModelCls extends ConstantModelCls, AddDbModels extends DatabaseCls[]>(modelRef: ModelCls, ...addRefs: AddDbModels): DatabaseCls<ByInstance<ModelCls, AddDbModels>>;
|
|
57
|
+
export declare function by<ModelCls extends ConstantModelCls, AddDbModel extends DatabaseCls>(modelRef: ModelCls, addRef: AddDbModel): DatabaseCls<DocumentActionsOf<AddDbModel, DocActionOmitKeyFor<ModelCls> & string> & DocModelFor<ModelCls>>;
|
|
58
|
+
export declare function by<ModelCls extends ConstantModelCls, const AddDbModels extends DatabaseCls[]>(modelRef: ModelCls, ...addRefs: AddDbModels): DatabaseCls<ByInstance<ModelCls, AddDbModels>>;
|
|
53
59
|
export {};
|
|
@@ -19,7 +19,7 @@ export declare class ServiceModel<Srv extends ServiceCls = ServiceCls, CnstModel
|
|
|
19
19
|
static from<Srv extends ServiceCls>(srv: Srv): ServiceModel<Srv, never, never, { [K in `${Uncapitalize<Srv["refName"]>}Service`]: UnCls<Srv>; }>;
|
|
20
20
|
with<SrvModules extends ServiceModel[]>(...srvs: SrvModules): ServiceModel<Srv, CnstModel, DbModel, SrvMap & MergeAllKeyOfObjects<SrvModules, "srvMap">>;
|
|
21
21
|
static getDefaultDbServiceMethods(className: string): {
|
|
22
|
-
[x: string]: ((this: DatabaseService, query: QueryOf<any>, queryOption?: ListQueryOption) => Promise<any>) | ((this: DatabaseService, query: QueryOf<any>, queryOption?: FindQueryOption) => Promise<any>) | ((this: DatabaseService, type: SaveEventType, listener: (doc: Doc, type: CRUDEventType) => PromiseOrObject<void>) => any) | ((this: DatabaseService, id: string, data: DataInputOf) => Promise<any>);
|
|
22
|
+
[x: string]: ((this: DatabaseService, query: QueryOf<any>, queryOption?: ListQueryOption) => Promise<any>) | ((this: DatabaseService, query: QueryOf<any>, queryOption?: FindQueryOption) => Promise<any>) | ((this: DatabaseService, id: string, data: Partial<Doc>) => Promise<Partial<Doc>>) | ((this: DatabaseService, type: SaveEventType, listener: (doc: Doc, type: CRUDEventType) => PromiseOrObject<void>) => any) | ((this: DatabaseService, id: string, data: DataInputOf) => Promise<any>);
|
|
23
23
|
__get(this: DatabaseService, id: string): Promise<any>;
|
|
24
24
|
__load(this: DatabaseService, id?: string): Promise<any>;
|
|
25
25
|
__loadMany(this: DatabaseService, ids: string[]): Promise<any>;
|
|
@@ -33,11 +33,11 @@ export declare class ServiceModel<Srv extends ServiceCls = ServiceCls, CnstModel
|
|
|
33
33
|
__count(this: DatabaseService, query: QueryOf<any>): Promise<any>;
|
|
34
34
|
__insight(this: DatabaseService, query: QueryOf<any>): Promise<any>;
|
|
35
35
|
_preCreate(this: DatabaseService, data: DataInputOf): Promise<DataInputOf>;
|
|
36
|
-
_postCreate(this: DatabaseService, doc: Doc): Promise<
|
|
37
|
-
_preUpdate(this: DatabaseService, id: string, data: Partial<Doc>): Promise<Partial<
|
|
38
|
-
_postUpdate(this: DatabaseService, doc: Doc): Promise<
|
|
36
|
+
_postCreate(this: DatabaseService, doc: Doc): Promise<Doc>;
|
|
37
|
+
_preUpdate(this: DatabaseService, id: string, data: Partial<Doc>): Promise<Partial<Doc>>;
|
|
38
|
+
_postUpdate(this: DatabaseService, doc: Doc): Promise<Doc>;
|
|
39
39
|
_preRemove(this: DatabaseService, id: string): Promise<void>;
|
|
40
|
-
_postRemove(this: DatabaseService, doc: Doc): Promise<
|
|
40
|
+
_postRemove(this: DatabaseService, doc: Doc): Promise<Doc>;
|
|
41
41
|
listenPre(this: DatabaseService, type: SaveEventType, listener: (doc: Doc, type: CRUDEventType) => PromiseOrObject<void>): any;
|
|
42
42
|
listenPost(this: DatabaseService, type: SaveEventType, listener: (doc: Doc, type: CRUDEventType) => PromiseOrObject<void>): any;
|
|
43
43
|
__create(this: DatabaseService, data: DataInputOf): Promise<any>;
|
package/types/service/types.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ type DocumentLike = {
|
|
|
9
9
|
set: (...args: never[]) => unknown;
|
|
10
10
|
save: (...args: never[]) => unknown;
|
|
11
11
|
};
|
|
12
|
-
type MixedLibServiceReturn<Value, Doc, DocObjectOfDoc> = Value extends (infer SingleValue)[] ? SingleValue extends DocumentLike ? GetDocObject<SingleValue>
|
|
12
|
+
type MixedLibServiceReturn<Value, Doc, DocObjectOfDoc> = Value extends (infer SingleValue)[] ? SingleValue extends DocumentLike ? DocObjectOfDoc extends GetDocObject<SingleValue> ? Doc[] : Value : Value : Value extends DocumentLike ? DocObjectOfDoc extends GetDocObject<Value> ? Doc : Value : Value;
|
|
13
13
|
type MixedLibServiceMethods<MixedLibSrv, Doc, DocObjectOfDoc> = {
|
|
14
14
|
[K in keyof MixedLibSrv]: MixedLibSrv[K] extends (...args: infer Args) => Promise<infer Value> ? (...args: Args) => Promise<MixedLibServiceReturn<Value, Doc, DocObjectOfDoc>> : MixedLibSrv[K];
|
|
15
15
|
};
|
|
@@ -67,11 +67,13 @@ export type InternalBuilder<SrvModule extends ServiceModel, _Cnst = CnstOf<SrvMo
|
|
|
67
67
|
} ? Full : never, _FieldObj extends FieldObject = _FullCls[typeof FIELD_META], _ResolveFieldObj extends FieldObject = {
|
|
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
|
-
[key: string]: InternalInfo<
|
|
70
|
+
[key: string]: InternalInfo<InternalType>;
|
|
71
71
|
} : [_FullCls] extends [never] ? {
|
|
72
|
-
[key: string]: InternalInfo<
|
|
72
|
+
[key: string]: InternalInfo<InternalType>;
|
|
73
73
|
} : {
|
|
74
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">>;
|
|
75
|
+
} & {
|
|
76
|
+
[key: string]: InternalInfo<InternalType>;
|
|
75
77
|
};
|
|
76
78
|
export declare const buildInternal: BuildInternal<any, any>;
|
|
77
79
|
export {};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { ENDPOINT_META, INJECT_META, INTERNAL_META } from "akanjs/base";
|
|
2
|
+
import type { DocumentModel } from "akanjs/constant";
|
|
2
3
|
import { type Adaptor, type AdaptorCls, type AkanJob, type AkanJobOptions, type QueueAdaptor } from "akanjs/service";
|
|
3
4
|
import type { ServerWebSocket } from "bun";
|
|
4
5
|
import type { EndpInfoClientReturns, EndpInfoReqType, EndpInfoServerArgs, EndpointInfo } from "./endpointInfo.d.ts";
|
|
5
6
|
import type { InternalInfo, InternalInfoReqType, InternalInfoServerArgs } from "./internalInfo.d.ts";
|
|
7
|
+
type EndpointPubsubPayload<E> = EndpInfoClientReturns<E> | DocumentModel<EndpInfoClientReturns<E>>;
|
|
6
8
|
export interface ServerSignal extends Adaptor {
|
|
7
9
|
readonly websocket: ServerWebSocket;
|
|
8
10
|
readonly queue: QueueAdaptor;
|
|
@@ -10,7 +12,7 @@ export interface ServerSignal extends Adaptor {
|
|
|
10
12
|
type EndpointServerSignalMethods<EnpCls> = [EnpCls] extends [{
|
|
11
13
|
[ENDPOINT_META]: infer EndpointInfoObj;
|
|
12
14
|
}] ? {
|
|
13
|
-
[K in keyof EndpointInfoObj as EndpInfoReqType<EndpointInfoObj[K]> extends "pubsub" ? K : never]: (...args: [...EndpInfoServerArgs<EndpointInfoObj[K]>, data:
|
|
15
|
+
[K in keyof EndpointInfoObj as EndpInfoReqType<EndpointInfoObj[K]> extends "pubsub" ? K : never]: (...args: [...EndpInfoServerArgs<EndpointInfoObj[K]>, data: EndpointPubsubPayload<EndpointInfoObj[K]>]) => void;
|
|
14
16
|
} : Record<never, never>;
|
|
15
17
|
type InternalServerSignalMethods<IntCls> = [IntCls] extends [{
|
|
16
18
|
[INTERNAL_META]: infer InternalInfoObj;
|