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