@sylphx/lens-solid 2.1.5 → 2.2.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/dist/create.d.ts CHANGED
@@ -27,14 +27,33 @@
27
27
  import { type LensClientConfig, type QueryResult, type SelectionObject, type TypedClientConfig } from "@sylphx/lens-client";
28
28
  import type { MutationDef, QueryDef, RouterDef, RouterRoutes } from "@sylphx/lens-core";
29
29
  import { type Accessor } from "solid-js";
30
+ /**
31
+ * Debug callbacks for query primitives.
32
+ * @internal For debugging purposes only - not recommended for production use.
33
+ */
34
+ export interface QueryDebugOptions<T> {
35
+ /** Called when data is received */
36
+ onData?: (data: T) => void;
37
+ /** Called when an error occurs */
38
+ onError?: (error: Error) => void;
39
+ /** Called when subscription starts */
40
+ onSubscribe?: () => void;
41
+ /** Called when subscription ends */
42
+ onUnsubscribe?: () => void;
43
+ }
30
44
  /** Query primitive options */
31
- export interface QueryPrimitiveOptions<TInput> {
45
+ export interface QueryPrimitiveOptions<TInput, TOutput = unknown> {
32
46
  /** Query input parameters */
33
47
  input?: TInput;
34
48
  /** Field selection */
35
49
  select?: SelectionObject;
36
50
  /** Skip query execution */
37
51
  skip?: boolean;
52
+ /**
53
+ * Debug callbacks for development.
54
+ * @internal For debugging purposes only - not recommended for production use.
55
+ */
56
+ debug?: QueryDebugOptions<TOutput>;
38
57
  }
39
58
  /** Query primitive result */
40
59
  export interface QueryPrimitiveResult<T> {
@@ -80,7 +99,7 @@ export interface QueryEndpoint<TInput, TOutput> {
80
99
  select?: SelectionObject;
81
100
  }): QueryResult<TOutput>;
82
101
  /** SolidJS primitive for reactive queries */
83
- createQuery: (options?: TInput extends void ? QueryPrimitiveOptions<void> | void : QueryPrimitiveOptions<TInput>) => QueryPrimitiveResult<TOutput>;
102
+ createQuery: (options?: TInput extends void ? QueryPrimitiveOptions<void, TOutput> | void : QueryPrimitiveOptions<TInput, TOutput>) => QueryPrimitiveResult<TOutput>;
84
103
  }
85
104
  /** Mutation endpoint with SolidJS primitives */
86
105
  export interface MutationEndpoint<TInput, TOutput> {
@@ -1 +1 @@
1
- {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.d.ts","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -667,7 +667,12 @@ class ClientImpl {
667
667
  sub.unsubscribe = () => subscription.unsubscribe();
668
668
  }
669
669
  } else {
670
- this.executeQuery(path, input).then(() => {});
670
+ this.executeQuery(path, input).then(() => {
671
+ sub.completed = true;
672
+ for (const observer of sub.observers) {
673
+ observer.complete?.();
674
+ }
675
+ });
671
676
  }
672
677
  }
673
678
  async executeMutation(path, input, select) {
@@ -1114,6 +1119,7 @@ function createQueryPrimitiveFactory(getEndpoint) {
1114
1119
  const executeQuery = () => {
1115
1120
  if (unsubscribe) {
1116
1121
  unsubscribe();
1122
+ options?.debug?.onUnsubscribe?.();
1117
1123
  unsubscribe = null;
1118
1124
  }
1119
1125
  if (options?.skip) {
@@ -1126,19 +1132,23 @@ function createQueryPrimitiveFactory(getEndpoint) {
1126
1132
  const query = endpoint({ input: options?.input, select: options?.select });
1127
1133
  setLoading(true);
1128
1134
  setError(null);
1135
+ options?.debug?.onSubscribe?.();
1129
1136
  unsubscribe = query.subscribe((value) => {
1130
1137
  setData(() => value);
1131
1138
  setLoading(false);
1132
1139
  setError(null);
1140
+ options?.debug?.onData?.(value);
1133
1141
  });
1134
1142
  query.then((value) => {
1135
1143
  setData(() => value);
1136
1144
  setLoading(false);
1137
1145
  setError(null);
1146
+ options?.debug?.onData?.(value);
1138
1147
  }, (err) => {
1139
1148
  const queryError = err instanceof Error ? err : new Error(String(err));
1140
1149
  setError(queryError);
1141
1150
  setLoading(false);
1151
+ options?.debug?.onError?.(queryError);
1142
1152
  });
1143
1153
  };
1144
1154
  executeQuery();
@@ -1152,6 +1162,7 @@ function createQueryPrimitiveFactory(getEndpoint) {
1152
1162
  onCleanup(() => {
1153
1163
  if (unsubscribe) {
1154
1164
  unsubscribe();
1165
+ options?.debug?.onUnsubscribe?.();
1155
1166
  unsubscribe = null;
1156
1167
  }
1157
1168
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sylphx/lens-solid",
3
- "version": "2.1.5",
3
+ "version": "2.2.1",
4
4
  "description": "SolidJS bindings for Lens API framework",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -31,8 +31,8 @@
31
31
  "author": "SylphxAI",
32
32
  "license": "MIT",
33
33
  "dependencies": {
34
- "@sylphx/lens-client": "^2.3.1",
35
- "@sylphx/lens-core": "^2.2.0"
34
+ "@sylphx/lens-client": "^2.3.2",
35
+ "@sylphx/lens-core": "^2.3.0"
36
36
  },
37
37
  "peerDependencies": {
38
38
  "solid-js": ">=1.8.0"
package/src/create.ts CHANGED
@@ -39,14 +39,34 @@ import { type Accessor, createEffect, createSignal, on, onCleanup } from "solid-
39
39
  // Types
40
40
  // =============================================================================
41
41
 
42
+ /**
43
+ * Debug callbacks for query primitives.
44
+ * @internal For debugging purposes only - not recommended for production use.
45
+ */
46
+ export interface QueryDebugOptions<T> {
47
+ /** Called when data is received */
48
+ onData?: (data: T) => void;
49
+ /** Called when an error occurs */
50
+ onError?: (error: Error) => void;
51
+ /** Called when subscription starts */
52
+ onSubscribe?: () => void;
53
+ /** Called when subscription ends */
54
+ onUnsubscribe?: () => void;
55
+ }
56
+
42
57
  /** Query primitive options */
43
- export interface QueryPrimitiveOptions<TInput> {
58
+ export interface QueryPrimitiveOptions<TInput, TOutput = unknown> {
44
59
  /** Query input parameters */
45
60
  input?: TInput;
46
61
  /** Field selection */
47
62
  select?: SelectionObject;
48
63
  /** Skip query execution */
49
64
  skip?: boolean;
65
+ /**
66
+ * Debug callbacks for development.
67
+ * @internal For debugging purposes only - not recommended for production use.
68
+ */
69
+ debug?: QueryDebugOptions<TOutput>;
50
70
  }
51
71
 
52
72
  /** Query primitive result */
@@ -93,8 +113,8 @@ export interface QueryEndpoint<TInput, TOutput> {
93
113
  /** SolidJS primitive for reactive queries */
94
114
  createQuery: (
95
115
  options?: TInput extends void
96
- ? QueryPrimitiveOptions<void> | void
97
- : QueryPrimitiveOptions<TInput>,
116
+ ? QueryPrimitiveOptions<void, TOutput> | void
117
+ : QueryPrimitiveOptions<TInput, TOutput>,
98
118
  ) => QueryPrimitiveResult<TOutput>;
99
119
  }
100
120
 
@@ -135,7 +155,7 @@ function createQueryPrimitiveFactory<TInput, TOutput>(
135
155
  getEndpoint: () => (options: unknown) => QueryResult<TOutput>,
136
156
  ) {
137
157
  return function createQuery(
138
- options?: QueryPrimitiveOptions<TInput>,
158
+ options?: QueryPrimitiveOptions<TInput, TOutput>,
139
159
  ): QueryPrimitiveResult<TOutput> {
140
160
  const [data, setData] = createSignal<TOutput | null>(null);
141
161
  const [loading, setLoading] = createSignal(!options?.skip);
@@ -146,6 +166,7 @@ function createQueryPrimitiveFactory<TInput, TOutput>(
146
166
  const executeQuery = () => {
147
167
  if (unsubscribe) {
148
168
  unsubscribe();
169
+ options?.debug?.onUnsubscribe?.();
149
170
  unsubscribe = null;
150
171
  }
151
172
 
@@ -161,11 +182,13 @@ function createQueryPrimitiveFactory<TInput, TOutput>(
161
182
 
162
183
  setLoading(true);
163
184
  setError(null);
185
+ options?.debug?.onSubscribe?.();
164
186
 
165
187
  unsubscribe = query.subscribe((value) => {
166
188
  setData(() => value);
167
189
  setLoading(false);
168
190
  setError(null);
191
+ options?.debug?.onData?.(value);
169
192
  });
170
193
 
171
194
  query.then(
@@ -173,11 +196,13 @@ function createQueryPrimitiveFactory<TInput, TOutput>(
173
196
  setData(() => value);
174
197
  setLoading(false);
175
198
  setError(null);
199
+ options?.debug?.onData?.(value);
176
200
  },
177
201
  (err) => {
178
202
  const queryError = err instanceof Error ? err : new Error(String(err));
179
203
  setError(queryError);
180
204
  setLoading(false);
205
+ options?.debug?.onError?.(queryError);
181
206
  },
182
207
  );
183
208
  };
@@ -205,6 +230,7 @@ function createQueryPrimitiveFactory<TInput, TOutput>(
205
230
  onCleanup(() => {
206
231
  if (unsubscribe) {
207
232
  unsubscribe();
233
+ options?.debug?.onUnsubscribe?.();
208
234
  unsubscribe = null;
209
235
  }
210
236
  });