@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.
@@ -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 && arg.kind === "Document")
118
+ if (arg?.kind === "Document")
119
119
  result += arg.loc.source.body;
120
120
  else
121
121
  result += arg;
@@ -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 {
@@ -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
  );
@@ -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 && arg.kind === "Document")
94
+ if (arg?.kind === "Document")
95
95
  result += arg.loc.source.body;
96
96
  else
97
97
  result += arg;
@@ -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 {
@@ -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.57",
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": "15.3.2",
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 { ConstantModel, DocumentModel, GqlReturn, PurifiedModel, QueryOf } from "@akanjs/constant";
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>> = {
@@ -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<any, any, any, any, any, any, 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>>>;
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<any, any, any, any, any, any>): void;
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<any, any, any, any, any, any> | undefined : import("@akanjs/constant").ConstantModel<any, any, any, any, any, any>;
41
- setScalar(refName: string, cnst: import("@akanjs/constant").ScalarConstantModel<any, any, any, any, any>): void;
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<any, any, any, any, any> | undefined : import("@akanjs/constant").ScalarConstantModel<any, any, any, any, any>;
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;