@sylphx/lens-solid 2.1.5 → 2.2.0

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
@@ -1114,6 +1114,7 @@ function createQueryPrimitiveFactory(getEndpoint) {
1114
1114
  const executeQuery = () => {
1115
1115
  if (unsubscribe) {
1116
1116
  unsubscribe();
1117
+ options?.debug?.onUnsubscribe?.();
1117
1118
  unsubscribe = null;
1118
1119
  }
1119
1120
  if (options?.skip) {
@@ -1126,19 +1127,23 @@ function createQueryPrimitiveFactory(getEndpoint) {
1126
1127
  const query = endpoint({ input: options?.input, select: options?.select });
1127
1128
  setLoading(true);
1128
1129
  setError(null);
1130
+ options?.debug?.onSubscribe?.();
1129
1131
  unsubscribe = query.subscribe((value) => {
1130
1132
  setData(() => value);
1131
1133
  setLoading(false);
1132
1134
  setError(null);
1135
+ options?.debug?.onData?.(value);
1133
1136
  });
1134
1137
  query.then((value) => {
1135
1138
  setData(() => value);
1136
1139
  setLoading(false);
1137
1140
  setError(null);
1141
+ options?.debug?.onData?.(value);
1138
1142
  }, (err) => {
1139
1143
  const queryError = err instanceof Error ? err : new Error(String(err));
1140
1144
  setError(queryError);
1141
1145
  setLoading(false);
1146
+ options?.debug?.onError?.(queryError);
1142
1147
  });
1143
1148
  };
1144
1149
  executeQuery();
@@ -1152,6 +1157,7 @@ function createQueryPrimitiveFactory(getEndpoint) {
1152
1157
  onCleanup(() => {
1153
1158
  if (unsubscribe) {
1154
1159
  unsubscribe();
1160
+ options?.debug?.onUnsubscribe?.();
1155
1161
  unsubscribe = null;
1156
1162
  }
1157
1163
  });
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.0",
4
4
  "description": "SolidJS bindings for Lens API framework",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
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
  });