@mearie/solid 0.2.4 → 0.3.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/index.cjs CHANGED
@@ -22,6 +22,7 @@ const createQuery = ((query, variables, options) => {
22
22
  const [data, setData] = (0, solid_js.createSignal)(initialOpts?.initialData);
23
23
  const [loading, setLoading] = (0, solid_js.createSignal)(!initialOpts?.skip && !initialOpts?.initialData);
24
24
  const [error, setError] = (0, solid_js.createSignal)();
25
+ const [metadata, setMetadata] = (0, solid_js.createSignal)();
25
26
  let unsubscribe = null;
26
27
  let initialized = false;
27
28
  const execute = () => {
@@ -31,6 +32,7 @@ const createQuery = ((query, variables, options) => {
31
32
  initialized = true;
32
33
  setError(void 0);
33
34
  unsubscribe = (0, _mearie_core_stream.pipe)(client.executeQuery(query, typeof variables === "function" ? variables() : variables, options?.()), (0, _mearie_core_stream.subscribe)({ next: (result) => {
35
+ setMetadata(result.metadata);
34
36
  if (result.errors && result.errors.length > 0) {
35
37
  setError(new _mearie_core.AggregatedError(result.errors));
36
38
  setLoading(false);
@@ -60,6 +62,9 @@ const createQuery = ((query, variables, options) => {
60
62
  get error() {
61
63
  return error();
62
64
  },
65
+ get metadata() {
66
+ return metadata();
67
+ },
63
68
  refetch
64
69
  };
65
70
  });
@@ -71,11 +76,13 @@ const createSubscription = (subscription, ...[variables, options]) => {
71
76
  const [data, setData] = (0, solid_js.createSignal)();
72
77
  const [loading, setLoading] = (0, solid_js.createSignal)(!options?.()?.skip);
73
78
  const [error, setError] = (0, solid_js.createSignal)();
79
+ const [metadata, setMetadata] = (0, solid_js.createSignal)();
74
80
  (0, solid_js.createEffect)(() => {
75
81
  if (options?.()?.skip) return;
76
82
  setLoading(true);
77
83
  setError(void 0);
78
84
  const unsubscribe = (0, _mearie_core_stream.pipe)(client.executeSubscription(subscription, typeof variables === "function" ? variables() : variables, options?.()), (0, _mearie_core_stream.subscribe)({ next: (result) => {
85
+ setMetadata(result.metadata);
79
86
  if (result.errors && result.errors.length > 0) {
80
87
  const err = new _mearie_core.AggregatedError(result.errors);
81
88
  setError(err);
@@ -102,6 +109,9 @@ const createSubscription = (subscription, ...[variables, options]) => {
102
109
  },
103
110
  get error() {
104
111
  return error();
112
+ },
113
+ get metadata() {
114
+ return metadata();
105
115
  }
106
116
  };
107
117
  };
@@ -113,11 +123,14 @@ const createMutation = (mutation) => {
113
123
  const [data, setData] = (0, solid_js.createSignal)();
114
124
  const [loading, setLoading] = (0, solid_js.createSignal)(false);
115
125
  const [error, setError] = (0, solid_js.createSignal)();
126
+ const [metadata, setMetadata] = (0, solid_js.createSignal)();
116
127
  const execute = async (variables, options) => {
117
128
  setLoading(true);
118
129
  setError(void 0);
130
+ setMetadata(void 0);
119
131
  try {
120
132
  const result = await (0, _mearie_core_stream.pipe)(client.executeMutation(mutation, variables, options), (0, _mearie_core_stream.take)(1), _mearie_core_stream.collect);
133
+ setMetadata(result.metadata);
121
134
  if (result.errors && result.errors.length > 0) {
122
135
  const err = new _mearie_core.AggregatedError(result.errors);
123
136
  setError(err);
@@ -142,6 +155,9 @@ const createMutation = (mutation) => {
142
155
  },
143
156
  get error() {
144
157
  return error();
158
+ },
159
+ get metadata() {
160
+ return metadata();
145
161
  }
146
162
  }];
147
163
  };
@@ -152,29 +168,39 @@ const createFragment = ((fragment, fragmentRef, options) => {
152
168
  const client = useClient();
153
169
  const initialRef = fragmentRef();
154
170
  let initialData;
171
+ let initialMetadata;
155
172
  if (initialRef == null) initialData = null;
156
173
  else {
157
174
  const result = (0, _mearie_core_stream.pipe)(client.executeFragment(fragment, initialRef, options?.()), _mearie_core_stream.peek);
158
175
  if (result.data === void 0) throw new Error("Fragment data not found");
159
176
  initialData = result.data;
177
+ initialMetadata = result.metadata;
160
178
  }
161
179
  const [data, setData] = (0, solid_js.createSignal)(initialData);
180
+ const [metadata, setMetadata] = (0, solid_js.createSignal)(initialMetadata);
162
181
  (0, solid_js.createEffect)(() => {
163
182
  const currentRef = fragmentRef();
164
183
  if (currentRef == null) {
165
184
  setData(() => null);
185
+ setMetadata(void 0);
166
186
  return;
167
187
  }
168
188
  const unsubscribe = (0, _mearie_core_stream.pipe)(client.executeFragment(fragment, currentRef, options?.()), (0, _mearie_core_stream.subscribe)({ next: (result) => {
189
+ setMetadata(result.metadata);
169
190
  if (result.data !== void 0) setData(() => result.data);
170
191
  } }));
171
192
  (0, solid_js.onCleanup)(() => {
172
193
  unsubscribe();
173
194
  });
174
195
  });
175
- return { get data() {
176
- return data();
177
- } };
196
+ return {
197
+ get data() {
198
+ return data();
199
+ },
200
+ get metadata() {
201
+ return metadata();
202
+ }
203
+ };
178
204
  });
179
205
 
180
206
  //#endregion
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import { AggregatedError, Artifact, Client, DataOf, FragmentOptions, FragmentRefs, MutationOptions, QueryOptions, SchemaMeta, SubscriptionOptions, VariablesOf } from "@mearie/core";
1
+ import { AggregatedError, Artifact, Client, DataOf, FragmentOptions, FragmentRefs, MutationOptions, OperationResult, QueryOptions, SchemaMeta, SubscriptionOptions, VariablesOf } from "@mearie/core";
2
2
  import { Accessor, JSX } from "solid-js";
3
3
  export * from "@mearie/core";
4
4
 
@@ -18,32 +18,38 @@ type Query<T extends Artifact<'query'>> = {
18
18
  data: undefined;
19
19
  loading: true;
20
20
  error: undefined;
21
+ metadata: OperationResult['metadata'];
21
22
  refetch: () => void;
22
23
  } | {
23
24
  data: DataOf<T>;
24
25
  loading: false;
25
26
  error: undefined;
27
+ metadata: OperationResult['metadata'];
26
28
  refetch: () => void;
27
29
  } | {
28
30
  data: DataOf<T> | undefined;
29
31
  loading: false;
30
32
  error: AggregatedError;
33
+ metadata: OperationResult['metadata'];
31
34
  refetch: () => void;
32
35
  };
33
36
  type DefinedQuery<T extends Artifact<'query'>> = {
34
37
  data: DataOf<T>;
35
38
  loading: true;
36
39
  error: undefined;
40
+ metadata: OperationResult['metadata'];
37
41
  refetch: () => void;
38
42
  } | {
39
43
  data: DataOf<T>;
40
44
  loading: false;
41
45
  error: undefined;
46
+ metadata: OperationResult['metadata'];
42
47
  refetch: () => void;
43
48
  } | {
44
49
  data: DataOf<T>;
45
50
  loading: false;
46
51
  error: AggregatedError;
52
+ metadata: OperationResult['metadata'];
47
53
  refetch: () => void;
48
54
  };
49
55
  type CreateQueryFn = {
@@ -59,14 +65,17 @@ type Subscription<T extends Artifact<'subscription'>> = {
59
65
  data: undefined;
60
66
  loading: true;
61
67
  error: undefined;
68
+ metadata: OperationResult['metadata'];
62
69
  } | {
63
70
  data: DataOf<T> | undefined;
64
71
  loading: false;
65
72
  error: undefined;
73
+ metadata: OperationResult['metadata'];
66
74
  } | {
67
75
  data: DataOf<T> | undefined;
68
76
  loading: false;
69
77
  error: AggregatedError;
78
+ metadata: OperationResult['metadata'];
70
79
  };
71
80
  type CreateSubscriptionOptions<T extends Artifact<'subscription'>> = SubscriptionOptions & {
72
81
  skip?: boolean;
@@ -80,14 +89,17 @@ type MutationResult<T extends Artifact<'mutation'>> = {
80
89
  data: undefined;
81
90
  loading: true;
82
91
  error: undefined;
92
+ metadata: OperationResult['metadata'];
83
93
  } | {
84
94
  data: DataOf<T> | undefined;
85
95
  loading: false;
86
96
  error: undefined;
97
+ metadata: OperationResult['metadata'];
87
98
  } | {
88
99
  data: DataOf<T> | undefined;
89
100
  loading: false;
90
101
  error: AggregatedError;
102
+ metadata: OperationResult['metadata'];
91
103
  };
92
104
  type CreateMutationOptions = MutationOptions;
93
105
  type Mutation<T extends Artifact<'mutation'>> = [(...[variables, options]: VariablesOf<T> extends Record<string, never> ? [undefined?, CreateMutationOptions?] : [VariablesOf<T>, CreateMutationOptions?]) => Promise<DataOf<T>>, MutationResult<T>];
@@ -97,12 +109,15 @@ declare const createMutation: <T extends Artifact<"mutation">>(mutation: T) => M
97
109
  type CreateFragmentOptions = FragmentOptions;
98
110
  type Fragment<T extends Artifact<'fragment'>> = {
99
111
  data: DataOf<T>;
112
+ metadata: OperationResult['metadata'];
100
113
  };
101
114
  type FragmentList<T extends Artifact<'fragment'>> = {
102
115
  data: DataOf<T>[];
116
+ metadata: OperationResult['metadata'];
103
117
  };
104
118
  type OptionalFragment<T extends Artifact<'fragment'>> = {
105
119
  data: DataOf<T> | null;
120
+ metadata: OperationResult['metadata'];
106
121
  };
107
122
  type CreateFragmentFn = {
108
123
  <T extends Artifact<'fragment'>>(fragment: T, fragmentRef: Accessor<FragmentRefs<T['name']>[]>, options?: Accessor<CreateFragmentOptions>): FragmentList<T>;
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { AggregatedError, Artifact, Client, DataOf, FragmentOptions, FragmentRefs, MutationOptions, QueryOptions, SchemaMeta, SubscriptionOptions, VariablesOf } from "@mearie/core";
1
+ import { AggregatedError, Artifact, Client, DataOf, FragmentOptions, FragmentRefs, MutationOptions, OperationResult, QueryOptions, SchemaMeta, SubscriptionOptions, VariablesOf } from "@mearie/core";
2
2
  import { Accessor, JSX } from "solid-js";
3
3
  export * from "@mearie/core";
4
4
 
@@ -18,32 +18,38 @@ type Query<T extends Artifact<'query'>> = {
18
18
  data: undefined;
19
19
  loading: true;
20
20
  error: undefined;
21
+ metadata: OperationResult['metadata'];
21
22
  refetch: () => void;
22
23
  } | {
23
24
  data: DataOf<T>;
24
25
  loading: false;
25
26
  error: undefined;
27
+ metadata: OperationResult['metadata'];
26
28
  refetch: () => void;
27
29
  } | {
28
30
  data: DataOf<T> | undefined;
29
31
  loading: false;
30
32
  error: AggregatedError;
33
+ metadata: OperationResult['metadata'];
31
34
  refetch: () => void;
32
35
  };
33
36
  type DefinedQuery<T extends Artifact<'query'>> = {
34
37
  data: DataOf<T>;
35
38
  loading: true;
36
39
  error: undefined;
40
+ metadata: OperationResult['metadata'];
37
41
  refetch: () => void;
38
42
  } | {
39
43
  data: DataOf<T>;
40
44
  loading: false;
41
45
  error: undefined;
46
+ metadata: OperationResult['metadata'];
42
47
  refetch: () => void;
43
48
  } | {
44
49
  data: DataOf<T>;
45
50
  loading: false;
46
51
  error: AggregatedError;
52
+ metadata: OperationResult['metadata'];
47
53
  refetch: () => void;
48
54
  };
49
55
  type CreateQueryFn = {
@@ -59,14 +65,17 @@ type Subscription<T extends Artifact<'subscription'>> = {
59
65
  data: undefined;
60
66
  loading: true;
61
67
  error: undefined;
68
+ metadata: OperationResult['metadata'];
62
69
  } | {
63
70
  data: DataOf<T> | undefined;
64
71
  loading: false;
65
72
  error: undefined;
73
+ metadata: OperationResult['metadata'];
66
74
  } | {
67
75
  data: DataOf<T> | undefined;
68
76
  loading: false;
69
77
  error: AggregatedError;
78
+ metadata: OperationResult['metadata'];
70
79
  };
71
80
  type CreateSubscriptionOptions<T extends Artifact<'subscription'>> = SubscriptionOptions & {
72
81
  skip?: boolean;
@@ -80,14 +89,17 @@ type MutationResult<T extends Artifact<'mutation'>> = {
80
89
  data: undefined;
81
90
  loading: true;
82
91
  error: undefined;
92
+ metadata: OperationResult['metadata'];
83
93
  } | {
84
94
  data: DataOf<T> | undefined;
85
95
  loading: false;
86
96
  error: undefined;
97
+ metadata: OperationResult['metadata'];
87
98
  } | {
88
99
  data: DataOf<T> | undefined;
89
100
  loading: false;
90
101
  error: AggregatedError;
102
+ metadata: OperationResult['metadata'];
91
103
  };
92
104
  type CreateMutationOptions = MutationOptions;
93
105
  type Mutation<T extends Artifact<'mutation'>> = [(...[variables, options]: VariablesOf<T> extends Record<string, never> ? [undefined?, CreateMutationOptions?] : [VariablesOf<T>, CreateMutationOptions?]) => Promise<DataOf<T>>, MutationResult<T>];
@@ -97,12 +109,15 @@ declare const createMutation: <T extends Artifact<"mutation">>(mutation: T) => M
97
109
  type CreateFragmentOptions = FragmentOptions;
98
110
  type Fragment<T extends Artifact<'fragment'>> = {
99
111
  data: DataOf<T>;
112
+ metadata: OperationResult['metadata'];
100
113
  };
101
114
  type FragmentList<T extends Artifact<'fragment'>> = {
102
115
  data: DataOf<T>[];
116
+ metadata: OperationResult['metadata'];
103
117
  };
104
118
  type OptionalFragment<T extends Artifact<'fragment'>> = {
105
119
  data: DataOf<T> | null;
120
+ metadata: OperationResult['metadata'];
106
121
  };
107
122
  type CreateFragmentFn = {
108
123
  <T extends Artifact<'fragment'>>(fragment: T, fragmentRef: Accessor<FragmentRefs<T['name']>[]>, options?: Accessor<CreateFragmentOptions>): FragmentList<T>;
package/dist/index.mjs CHANGED
@@ -23,6 +23,7 @@ const createQuery = ((query, variables, options) => {
23
23
  const [data, setData] = createSignal(initialOpts?.initialData);
24
24
  const [loading, setLoading] = createSignal(!initialOpts?.skip && !initialOpts?.initialData);
25
25
  const [error, setError] = createSignal();
26
+ const [metadata, setMetadata] = createSignal();
26
27
  let unsubscribe = null;
27
28
  let initialized = false;
28
29
  const execute = () => {
@@ -32,6 +33,7 @@ const createQuery = ((query, variables, options) => {
32
33
  initialized = true;
33
34
  setError(void 0);
34
35
  unsubscribe = pipe(client.executeQuery(query, typeof variables === "function" ? variables() : variables, options?.()), subscribe({ next: (result) => {
36
+ setMetadata(result.metadata);
35
37
  if (result.errors && result.errors.length > 0) {
36
38
  setError(new AggregatedError(result.errors));
37
39
  setLoading(false);
@@ -61,6 +63,9 @@ const createQuery = ((query, variables, options) => {
61
63
  get error() {
62
64
  return error();
63
65
  },
66
+ get metadata() {
67
+ return metadata();
68
+ },
64
69
  refetch
65
70
  };
66
71
  });
@@ -72,11 +77,13 @@ const createSubscription = (subscription, ...[variables, options]) => {
72
77
  const [data, setData] = createSignal();
73
78
  const [loading, setLoading] = createSignal(!options?.()?.skip);
74
79
  const [error, setError] = createSignal();
80
+ const [metadata, setMetadata] = createSignal();
75
81
  createEffect(() => {
76
82
  if (options?.()?.skip) return;
77
83
  setLoading(true);
78
84
  setError(void 0);
79
85
  const unsubscribe = pipe(client.executeSubscription(subscription, typeof variables === "function" ? variables() : variables, options?.()), subscribe({ next: (result) => {
86
+ setMetadata(result.metadata);
80
87
  if (result.errors && result.errors.length > 0) {
81
88
  const err = new AggregatedError(result.errors);
82
89
  setError(err);
@@ -103,6 +110,9 @@ const createSubscription = (subscription, ...[variables, options]) => {
103
110
  },
104
111
  get error() {
105
112
  return error();
113
+ },
114
+ get metadata() {
115
+ return metadata();
106
116
  }
107
117
  };
108
118
  };
@@ -114,11 +124,14 @@ const createMutation = (mutation) => {
114
124
  const [data, setData] = createSignal();
115
125
  const [loading, setLoading] = createSignal(false);
116
126
  const [error, setError] = createSignal();
127
+ const [metadata, setMetadata] = createSignal();
117
128
  const execute = async (variables, options) => {
118
129
  setLoading(true);
119
130
  setError(void 0);
131
+ setMetadata(void 0);
120
132
  try {
121
133
  const result = await pipe(client.executeMutation(mutation, variables, options), take(1), collect);
134
+ setMetadata(result.metadata);
122
135
  if (result.errors && result.errors.length > 0) {
123
136
  const err = new AggregatedError(result.errors);
124
137
  setError(err);
@@ -143,6 +156,9 @@ const createMutation = (mutation) => {
143
156
  },
144
157
  get error() {
145
158
  return error();
159
+ },
160
+ get metadata() {
161
+ return metadata();
146
162
  }
147
163
  }];
148
164
  };
@@ -153,29 +169,39 @@ const createFragment = ((fragment, fragmentRef, options) => {
153
169
  const client = useClient();
154
170
  const initialRef = fragmentRef();
155
171
  let initialData;
172
+ let initialMetadata;
156
173
  if (initialRef == null) initialData = null;
157
174
  else {
158
175
  const result = pipe(client.executeFragment(fragment, initialRef, options?.()), peek);
159
176
  if (result.data === void 0) throw new Error("Fragment data not found");
160
177
  initialData = result.data;
178
+ initialMetadata = result.metadata;
161
179
  }
162
180
  const [data, setData] = createSignal(initialData);
181
+ const [metadata, setMetadata] = createSignal(initialMetadata);
163
182
  createEffect(() => {
164
183
  const currentRef = fragmentRef();
165
184
  if (currentRef == null) {
166
185
  setData(() => null);
186
+ setMetadata(void 0);
167
187
  return;
168
188
  }
169
189
  const unsubscribe = pipe(client.executeFragment(fragment, currentRef, options?.()), subscribe({ next: (result) => {
190
+ setMetadata(result.metadata);
170
191
  if (result.data !== void 0) setData(() => result.data);
171
192
  } }));
172
193
  onCleanup(() => {
173
194
  unsubscribe();
174
195
  });
175
196
  });
176
- return { get data() {
177
- return data();
178
- } };
197
+ return {
198
+ get data() {
199
+ return data();
200
+ },
201
+ get metadata() {
202
+ return metadata();
203
+ }
204
+ };
179
205
  });
180
206
 
181
207
  //#endregion
package/package.json CHANGED
@@ -1,15 +1,22 @@
1
1
  {
2
2
  "name": "@mearie/solid",
3
- "version": "0.2.4",
3
+ "version": "0.3.1",
4
4
  "description": "Type-safe, zero-overhead GraphQL client",
5
5
  "keywords": [
6
6
  "graphql",
7
7
  "graphql-client",
8
8
  "typescript",
9
+ "type-safe",
9
10
  "codegen",
10
- "cache"
11
+ "cache",
12
+ "normalized-cache",
13
+ "react",
14
+ "vue",
15
+ "svelte",
16
+ "solid",
17
+ "vite"
11
18
  ],
12
- "homepage": "https://github.com/devunt/mearie#readme",
19
+ "homepage": "https://mearie.dev/",
13
20
  "bugs": {
14
21
  "url": "https://github.com/devunt/mearie/issues"
15
22
  },
@@ -45,7 +52,7 @@
45
52
  "README.md"
46
53
  ],
47
54
  "dependencies": {
48
- "@mearie/core": "0.2.4"
55
+ "@mearie/core": "0.4.0"
49
56
  },
50
57
  "devDependencies": {
51
58
  "solid-js": "^1.9.11",