@akanjs/signal 0.9.57 → 0.9.58-canary.1
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/graphql.js +2 -2
- package/cjs/src/signalInfo.js +1 -1
- package/cjs/src/sliceInfo.js +2 -2
- package/esm/src/graphql.js +2 -2
- package/esm/src/signalInfo.js +1 -1
- package/esm/src/sliceInfo.js +2 -2
- package/package.json +2 -2
- package/src/gql.d.ts +3 -3
- package/src/signalDecorators.d.ts +6 -13
- package/src/signalInfo.d.ts +7 -7
package/cjs/src/graphql.js
CHANGED
|
@@ -38,7 +38,7 @@ const makeArgStr = (args) => {
|
|
|
38
38
|
return args.length ? `(${args.map((arg) => {
|
|
39
39
|
const argRef = import_constant.constantInfo.getModelRef(arg.refName, arg.modelType);
|
|
40
40
|
const argRefType = (0, import_base.isGqlScalar)(argRef) ? "gqlScalar" : "class";
|
|
41
|
-
const gqlTypeStr = "[".repeat(arg.arrDepth) + `${(0, import_constant.getGqlTypeStr)(argRef)}${argRefType === "class" ? "Input" : ""}` + "!]".repeat(arg.arrDepth);
|
|
41
|
+
const gqlTypeStr = "[".repeat(arg.arrDepth) + `${(0, import_constant.getGqlTypeStr)(argRef)}${argRefType === "class" ? import_constant.constantInfo.isObject(argRef) ? "Object" : "Input" : ""}` + "!]".repeat(arg.arrDepth);
|
|
42
42
|
return `$${arg.name}: ` + gqlTypeStr + (arg.argsOption.nullable ? "" : "!");
|
|
43
43
|
}).join(", ")})` : "";
|
|
44
44
|
};
|
|
@@ -115,7 +115,7 @@ function graphql(literals, ...args) {
|
|
|
115
115
|
literals = [literals];
|
|
116
116
|
let result = literals[0];
|
|
117
117
|
args.forEach((arg, i) => {
|
|
118
|
-
if (arg
|
|
118
|
+
if (arg?.kind === "Document")
|
|
119
119
|
result += arg.loc.source.body;
|
|
120
120
|
else
|
|
121
121
|
result += arg;
|
package/cjs/src/signalInfo.js
CHANGED
|
@@ -156,7 +156,7 @@ const signalInfo = {
|
|
|
156
156
|
const [argRef, arrDepth2] = (0, import_base.getNonArrayModel)(argMeta.returns());
|
|
157
157
|
const isGqlScalar2 = import_base.scalarNameMap.has(argRef);
|
|
158
158
|
const modelType2 = isGqlScalar2 ? "scalar" : import_constant.constantInfo.getModelType(argRef);
|
|
159
|
-
if (!["input", "insight", "scalar"].includes(modelType2))
|
|
159
|
+
if (!["input", "object", "insight", "scalar"].includes(modelType2))
|
|
160
160
|
throw new Error(`Invalid model type: ${modelType2}`);
|
|
161
161
|
const refName3 = isGqlScalar2 ? import_base.scalarNameMap.get(argRef) : import_constant.constantInfo.getRefName(argRef);
|
|
162
162
|
return {
|
package/cjs/src/sliceInfo.js
CHANGED
|
@@ -140,7 +140,7 @@ class SliceInfo {
|
|
|
140
140
|
const skipLimitSort = requestArgs.slice(argLength, argLength + 3);
|
|
141
141
|
const [skip = 0, limit = 20, sort = "latest"] = skipLimitSort;
|
|
142
142
|
const internalArgs = requestArgs.slice(argLength + 3);
|
|
143
|
-
const query = execFn.apply(this, [...args, ...internalArgs]);
|
|
143
|
+
const query = await execFn.apply(this, [...args, ...internalArgs]);
|
|
144
144
|
return await this[serviceName].__list(query, {
|
|
145
145
|
skip,
|
|
146
146
|
limit,
|
|
@@ -167,7 +167,7 @@ class SliceInfo {
|
|
|
167
167
|
const insightFn = async function(...requestArgs) {
|
|
168
168
|
const args = requestArgs.slice(0, argLength);
|
|
169
169
|
const internalArgs = requestArgs.slice(argLength);
|
|
170
|
-
const query = execFn.apply(this, [...args, ...internalArgs]);
|
|
170
|
+
const query = await execFn.apply(this, [...args, ...internalArgs]);
|
|
171
171
|
return await this[serviceName].__insight(
|
|
172
172
|
query
|
|
173
173
|
);
|
package/esm/src/graphql.js
CHANGED
|
@@ -14,7 +14,7 @@ const makeArgStr = (args) => {
|
|
|
14
14
|
return args.length ? `(${args.map((arg) => {
|
|
15
15
|
const argRef = constantInfo.getModelRef(arg.refName, arg.modelType);
|
|
16
16
|
const argRefType = isGqlScalar(argRef) ? "gqlScalar" : "class";
|
|
17
|
-
const gqlTypeStr = "[".repeat(arg.arrDepth) + `${getGqlTypeStr(argRef)}${argRefType === "class" ? "Input" : ""}` + "!]".repeat(arg.arrDepth);
|
|
17
|
+
const gqlTypeStr = "[".repeat(arg.arrDepth) + `${getGqlTypeStr(argRef)}${argRefType === "class" ? constantInfo.isObject(argRef) ? "Object" : "Input" : ""}` + "!]".repeat(arg.arrDepth);
|
|
18
18
|
return `$${arg.name}: ` + gqlTypeStr + (arg.argsOption.nullable ? "" : "!");
|
|
19
19
|
}).join(", ")})` : "";
|
|
20
20
|
};
|
|
@@ -91,7 +91,7 @@ function graphql(literals, ...args) {
|
|
|
91
91
|
literals = [literals];
|
|
92
92
|
let result = literals[0];
|
|
93
93
|
args.forEach((arg, i) => {
|
|
94
|
-
if (arg
|
|
94
|
+
if (arg?.kind === "Document")
|
|
95
95
|
result += arg.loc.source.body;
|
|
96
96
|
else
|
|
97
97
|
result += arg;
|
package/esm/src/signalInfo.js
CHANGED
|
@@ -142,7 +142,7 @@ const signalInfo = {
|
|
|
142
142
|
const [argRef, arrDepth2] = getNonArrayModel(argMeta.returns());
|
|
143
143
|
const isGqlScalar2 = scalarNameMap.has(argRef);
|
|
144
144
|
const modelType2 = isGqlScalar2 ? "scalar" : constantInfo.getModelType(argRef);
|
|
145
|
-
if (!["input", "insight", "scalar"].includes(modelType2))
|
|
145
|
+
if (!["input", "object", "insight", "scalar"].includes(modelType2))
|
|
146
146
|
throw new Error(`Invalid model type: ${modelType2}`);
|
|
147
147
|
const refName3 = isGqlScalar2 ? scalarNameMap.get(argRef) : constantInfo.getRefName(argRef);
|
|
148
148
|
return {
|
package/esm/src/sliceInfo.js
CHANGED
|
@@ -126,7 +126,7 @@ class SliceInfo {
|
|
|
126
126
|
const skipLimitSort = requestArgs.slice(argLength, argLength + 3);
|
|
127
127
|
const [skip = 0, limit = 20, sort = "latest"] = skipLimitSort;
|
|
128
128
|
const internalArgs = requestArgs.slice(argLength + 3);
|
|
129
|
-
const query = execFn.apply(this, [...args, ...internalArgs]);
|
|
129
|
+
const query = await execFn.apply(this, [...args, ...internalArgs]);
|
|
130
130
|
return await this[serviceName].__list(query, {
|
|
131
131
|
skip,
|
|
132
132
|
limit,
|
|
@@ -153,7 +153,7 @@ class SliceInfo {
|
|
|
153
153
|
const insightFn = async function(...requestArgs) {
|
|
154
154
|
const args = requestArgs.slice(0, argLength);
|
|
155
155
|
const internalArgs = requestArgs.slice(argLength);
|
|
156
|
-
const query = execFn.apply(this, [...args, ...internalArgs]);
|
|
156
|
+
const query = await execFn.apply(this, [...args, ...internalArgs]);
|
|
157
157
|
return await this[serviceName].__insight(
|
|
158
158
|
query
|
|
159
159
|
);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akanjs/signal",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.58-canary.1",
|
|
4
4
|
"sourceType": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@urql/core": "^5.1.0",
|
|
19
19
|
"immer": "^10.1.1",
|
|
20
|
-
"next": "
|
|
20
|
+
"next": "16.0.3",
|
|
21
21
|
"reflect-metadata": "^0.2.2",
|
|
22
22
|
"socket.io-client": "^4.8.1"
|
|
23
23
|
},
|
package/src/gql.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DataList, type GetActionObject, type GetStateObject, MergeAll, type MergedValues, type Prettify, type PromiseOrObject, Type } from "@akanjs/base";
|
|
1
|
+
import { BaseObject, DataList, type GetActionObject, type GetStateObject, MergeAll, type MergedValues, type Prettify, type PromiseOrObject, Type } from "@akanjs/base";
|
|
2
2
|
import { FetchPolicy } from "@akanjs/common";
|
|
3
3
|
import { ConstantModel, DefaultOf, DocumentModel, ProtoFile, QueryOf } from "@akanjs/constant";
|
|
4
4
|
import type { ExtractQuery, ExtractSort, FilterInstance } from "@akanjs/document";
|
|
@@ -155,11 +155,11 @@ export declare const getGqlOnStorage: (refName: string) => {
|
|
|
155
155
|
[key: string]: any;
|
|
156
156
|
};
|
|
157
157
|
export declare const setGqlOnStorage: (refName: string, modelGql: any) => void;
|
|
158
|
-
export declare const gqlOf: <T extends string, Input, Full extends {
|
|
158
|
+
export declare const gqlOf: <T extends string, Input, Obj extends BaseObject, Full extends {
|
|
159
159
|
id: string;
|
|
160
160
|
}, Light extends {
|
|
161
161
|
id: string;
|
|
162
|
-
}, Insight, Filter extends FilterInstance, Signal, _CapitalizedT extends string, _Default, _DefaultInput, _DefaultState, _DefaultStateInput, _DefaultInsight, _PurifiedInput, _Doc, _DocInput, _QueryOfDoc, _Sort = ExtractSort<Filter>, _SignalAction = GetActionObject<Signal>>(constant: ConstantModel<T, Input, Full, Light, Insight, _CapitalizedT, _Default, _DefaultInput, _DefaultState, _DefaultStateInput, _DefaultInsight, _PurifiedInput, _Doc, _DocInput, _QueryOfDoc>, filterRef: Type<Filter>, sigRef: Type<Signal>, option?: {
|
|
162
|
+
}, Insight, Filter extends FilterInstance, Signal, _CapitalizedT extends string, _Default, _DefaultInput, _DefaultState, _DefaultStateInput, _DefaultInsight, _PurifiedInput, _Doc, _DocInput, _QueryOfDoc, _Sort = ExtractSort<Filter>, _SignalAction = GetActionObject<Signal>>(constant: ConstantModel<T, Input, Obj, Full, Light, Insight, _CapitalizedT, _Default, _DefaultInput, _DefaultState, _DefaultStateInput, _DefaultInsight, _PurifiedInput, _Doc, _DocInput, _QueryOfDoc>, filterRef: Type<Filter>, sigRef: Type<Signal>, option?: {
|
|
163
163
|
overwrite?: {
|
|
164
164
|
[key: string]: any;
|
|
165
165
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
2
|
import { Assign, BaseInsight, BaseObject, Dayjs, EnumInstance, Environment, MergeAllTypes, Type, UnType } from "@akanjs/base";
|
|
3
|
-
import {
|
|
3
|
+
import { DocumentModel, GqlReturn, PurifiedModel, QueryOf } from "@akanjs/constant";
|
|
4
4
|
import type { Doc, ExtractSort, FilterInstance } from "@akanjs/document";
|
|
5
5
|
import type { Guard, InternalParam } from "@akanjs/nest";
|
|
6
6
|
import type { ServiceModule, Sig } from "@akanjs/service";
|
|
@@ -125,24 +125,17 @@ type ExtendSlices<T extends string, Full extends BaseObject, Light extends BaseO
|
|
|
125
125
|
type ExtendEndpoints<Full extends BaseObject, Light extends BaseObject, Insight extends BaseInsight, LibEndpoints extends Type[], _Endpoints = MergeAllTypes<LibEndpoints>> = {
|
|
126
126
|
[K in keyof _Endpoints]: _Endpoints[K] extends ApiInfo<infer ReqType, infer Srvs, infer ArgNames, infer Args, infer InternalArgs, infer ServerArgs, infer Returns, infer ServerReturns, infer Nullable> ? ApiInfo<ReqType, Srvs, ArgNames, Args, InternalArgs, ServerArgs, ExtendedGqlReturn<Returns, Full, Light, Insight>, ServerReturns, Nullable> : never;
|
|
127
127
|
};
|
|
128
|
-
export interface SrvOption<T extends string, Srv extends {
|
|
129
|
-
[key: string]: Type;
|
|
130
|
-
}, Input = never, Full = never, Light = never, Insight = never> {
|
|
131
|
-
ref: T;
|
|
132
|
-
srv: Srv;
|
|
133
|
-
cnst?: ConstantModel<T, Input, Full, Light, Insight>;
|
|
134
|
-
}
|
|
135
128
|
export declare function internal<Srv extends {
|
|
136
129
|
[key: string]: any;
|
|
137
|
-
}, Full, InternalBuilder extends InternalApiBuilder<Srv, Doc<Full>>, LibInternals extends Type[]>(srv: ServiceModule<string, Srv, any, Full, any, any>, internalBuilder: InternalBuilder, ...libInternals: LibInternals): Type<ReturnType<InternalBuilder> & MergeAllTypes<LibInternals>>;
|
|
138
|
-
export declare function slice<T extends string, Input, Full extends BaseObject, Light extends BaseObject, Insight extends BaseInsight, Srv extends {
|
|
130
|
+
}, Full, InternalBuilder extends InternalApiBuilder<Srv, Doc<Full>>, LibInternals extends Type[]>(srv: ServiceModule<string, Srv, any, any, Full, any, any>, internalBuilder: InternalBuilder, ...libInternals: LibInternals): Type<ReturnType<InternalBuilder> & MergeAllTypes<LibInternals>>;
|
|
131
|
+
export declare function slice<T extends string, Input, Full extends BaseObject, Object extends BaseObject, Light extends BaseObject, Insight extends BaseInsight, Srv extends {
|
|
139
132
|
[key: string]: any;
|
|
140
|
-
}, SliceBuilder extends SliceApiBuilder<T, Full, Light, Insight, Srv>, LibSlices extends Type[], _Query = QueryOf<DocumentModel<Full>>>(srv: ServiceModule<T, Srv, Input, Full, Light, Insight>, option: SliceOption, sliceBuilder: SliceBuilder, ...libSlices: LibSlices): Type<ReturnType<SliceBuilder> & {
|
|
133
|
+
}, SliceBuilder extends SliceApiBuilder<T, Full, Light, Insight, Srv>, LibSlices extends Type[], _Query = QueryOf<DocumentModel<Full>>>(srv: ServiceModule<T, Srv, Input, Object, Full, Light, Insight>, option: SliceOption, sliceBuilder: SliceBuilder, ...libSlices: LibSlices): Type<ReturnType<SliceBuilder> & {
|
|
141
134
|
[""]: SliceInfo<T, Full, Light, Insight, Srv, ["query"], [_Query], [], [_Query]>;
|
|
142
135
|
} & ExtendSlices<T, Full, Light, Insight, LibSlices>>;
|
|
143
|
-
export declare function endpoint<Input, Full extends BaseObject, Light extends BaseObject, Insight extends BaseInsight, Srv extends {
|
|
136
|
+
export declare function endpoint<Input, Object extends BaseObject, Full extends BaseObject, Light extends BaseObject, Insight extends BaseInsight, Srv extends {
|
|
144
137
|
[key: string]: any;
|
|
145
|
-
}, Builder extends ApiBuilder<Srv>, LibEndpoints extends Type[]>(srv: ServiceModule<string, Srv, Input, Full, Light, Insight>, builder: Builder, ...libEndpoints: LibEndpoints): Type<Assign<ReturnType<Builder>, ExtendEndpoints<Full, Light, Insight, LibEndpoints>>>;
|
|
138
|
+
}, Builder extends ApiBuilder<Srv>, LibEndpoints extends Type[]>(srv: ServiceModule<string, Srv, Input, Object, Full, Light, Insight>, builder: Builder, ...libEndpoints: LibEndpoints): Type<Assign<ReturnType<Builder>, ExtendEndpoints<Full, Light, Insight, LibEndpoints>>>;
|
|
146
139
|
export declare const mergeSignals: <Endpoint, Internal, Slice>(endpointRef: Type<Endpoint>, internalRef: Type<Internal>, sliceRef?: Type<Slice>) => Type<BuildApiSignal<Endpoint> & BuildInternalApiSignal<Internal> & BuildSliceSignal<Slice>>;
|
|
147
140
|
export declare const serverSignalOf: <Signal>(sigRef: Type<Signal>) => Type<Sig<Signal>>;
|
|
148
141
|
export type DefaultSignal<T extends string, Input, Full, Light, Insight, Filter extends FilterInstance, _CapitalizedT extends string = Capitalize<T>, _PurifiedInput = PurifiedModel<Input>, _QueryOfDoc = QueryOf<DocumentModel<Full>>, _Sort = ExtractSort<Filter>> = {
|
package/src/signalInfo.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export declare const signalInfo: {
|
|
|
18
18
|
serialize(sigRef: Type): SerializedSignal;
|
|
19
19
|
initialize(): object;
|
|
20
20
|
buildFetch(signals?: SerializedSignal[], cnstInfo?: {
|
|
21
|
-
database: Map<string, import("@akanjs/constant").ConstantModel<
|
|
21
|
+
database: Map<string, import("@akanjs/constant").ConstantModel<string, any, any, any, any, any, Capitalize<string>, import("@akanjs/constant").DefaultOf<any>, import("@akanjs/constant").DefaultOf<any>, import("@akanjs/base").GetStateObject<any>, import("@akanjs/base").GetStateObject<any>, import("@akanjs/constant").DefaultOf<any>, any, any, any, import("mongoose").FilterQuery<any>>>;
|
|
22
22
|
scalar: Map<string, import("@akanjs/constant").ScalarConstantModel<any, any, any, any, any>>;
|
|
23
23
|
modelRefNameMap: Map<new (...args: any[]) => any, string>;
|
|
24
24
|
getRefName<AllowEmpty extends boolean = false>(modelRef: Type, { allowEmpty }?: {
|
|
@@ -34,15 +34,15 @@ export declare const signalInfo: {
|
|
|
34
34
|
isInsight(modelRef: Type): boolean;
|
|
35
35
|
isFilter(modelRef: Type): boolean;
|
|
36
36
|
isScalar(modelRef: Type): boolean;
|
|
37
|
-
setDatabase(refName: string, cnst: import("@akanjs/constant").ConstantModel<
|
|
37
|
+
setDatabase(refName: string, cnst: import("@akanjs/constant").ConstantModel<string, any, any, any, any, any>): void;
|
|
38
38
|
getDatabase<AllowEmpty extends boolean = false>(refName: string, { allowEmpty }?: {
|
|
39
39
|
allowEmpty?: AllowEmpty;
|
|
40
|
-
}): AllowEmpty extends true ? import("@akanjs/constant").ConstantModel<
|
|
41
|
-
setScalar(refName: string, cnst: import("@akanjs/constant").ScalarConstantModel<
|
|
40
|
+
}): AllowEmpty extends true ? import("@akanjs/constant").ConstantModel<string, any, any, any, any, any> | undefined : import("@akanjs/constant").ConstantModel<string, any, any, any, any, any>;
|
|
41
|
+
setScalar(refName: string, cnst: import("@akanjs/constant").ScalarConstantModel<string, any, any, any, any>): void;
|
|
42
42
|
getScalar<AllowEmpty extends boolean = false>(refName: string, { allowEmpty }?: {
|
|
43
43
|
allowEmpty?: AllowEmpty;
|
|
44
|
-
}): AllowEmpty extends true ? import("@akanjs/constant").ScalarConstantModel<
|
|
45
|
-
getModelRef(refName: string, modelType: "input" | "full" | "light" | "insight" | "scalar"): Type | import("@akanjs/base").GqlScalar;
|
|
44
|
+
}): AllowEmpty extends true ? import("@akanjs/constant").ScalarConstantModel<string, any, any, any, any> | undefined : import("@akanjs/constant").ScalarConstantModel<string, any, any, any, any>;
|
|
45
|
+
getModelRef(refName: string, modelType: "input" | "object" | "full" | "light" | "insight" | "scalar"): Type | import("@akanjs/base").GqlScalar;
|
|
46
46
|
}): object;
|
|
47
47
|
registerClient: (cnst: any) => Promise<{
|
|
48
48
|
fetch: typeof fetch;
|
|
@@ -57,7 +57,7 @@ export interface SerializedReturns {
|
|
|
57
57
|
export interface SerializedArg {
|
|
58
58
|
type: ArgType;
|
|
59
59
|
refName: Exclude<GqlScalarName, "Map"> | (string & {});
|
|
60
|
-
modelType: "input" | "insight" | "scalar";
|
|
60
|
+
modelType: "input" | "object" | "insight" | "scalar";
|
|
61
61
|
name: string;
|
|
62
62
|
argsOption: ArgsOption;
|
|
63
63
|
arrDepth: number;
|