@drfed/web 0.0.0-stage → 0.1.0-dev.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/.output/nitro.json +17 -0
- package/.output/public/.vite/manifest.json +493 -0
- package/.output/public/_build/assets/ActorDetailQuery.graphql-D96mwq1k.js +60 -0
- package/.output/public/_build/assets/ActorDetailQuery.graphql-DrxSNh1X.js +60 -0
- package/.output/public/_build/assets/CompleteLoginChallenge.graphql-C5Zq3wNh.js +10 -0
- package/.output/public/_build/assets/CopyButton-B2l484wE.js +1 -0
- package/.output/public/_build/assets/CopyButton-Bi-ZR8x9.css +1 -0
- package/.output/public/_build/assets/CreateInstanceMutation.graphql-B4CRy6cl.js +19 -0
- package/.output/public/_build/assets/CreateObjectMutation.graphql-B4A01dgV.js +23 -0
- package/.output/public/_build/assets/GenerateActorsMutation.graphql-mlHJNIbe.js +23 -0
- package/.output/public/_build/assets/GetHostQuery.graphql-CuzDdOdW.js +17 -0
- package/.output/public/_build/assets/GetHostQuery.graphql-o9K0Qkg0.js +17 -0
- package/.output/public/_build/assets/HomeViewerQuery.graphql-B903WWKs.js +8 -0
- package/.output/public/_build/assets/HttpStatusCode-bgaVzuLy.js +1 -0
- package/.output/public/_build/assets/InstanceActorListQuery.graphql-DmNwiEhM.js +24 -0
- package/.output/public/_build/assets/InstanceActorListQuery.graphql-paa7teUO.js +24 -0
- package/.output/public/_build/assets/InstanceDetailQuery.graphql-B52nR132.js +66 -0
- package/.output/public/_build/assets/InstanceDetailQuery.graphql-DSA2BcAV.js +66 -0
- package/.output/public/_build/assets/InstanceSummary_instance.graphql-BoQAa5Od.js +1 -0
- package/.output/public/_build/assets/JNCCF6MP-CNMywyiC.js +1 -0
- package/.output/public/_build/assets/LP6E37CW-Cwv6G3n1.js +1 -0
- package/.output/public/_build/assets/SignInMutation.graphql-BalZYNFu.js +9 -0
- package/.output/public/_build/assets/TSB6MOZK-CpiH97G1.js +1 -0
- package/.output/public/_build/assets/Toast-3-eXCAKc.css +1 -0
- package/.output/public/_build/assets/Toast-C1zr9crB.js +1 -0
- package/.output/public/_build/assets/WorkspaceQuery.graphql-UoI7QDs4.js +23 -0
- package/.output/public/_build/assets/_...404_-WZ8kAljY.js +1 -0
- package/.output/public/_build/assets/_challengeId_-BgL-Berz.js +1 -0
- package/.output/public/_build/assets/_id_-YcZZShAv.css +1 -0
- package/.output/public/_build/assets/_id_-bpxdclBj.js +1 -0
- package/.output/public/_build/assets/_slug_-CyTA2aW7.css +1 -0
- package/.output/public/_build/assets/_slug_-DXfRknzJ.js +200 -0
- package/.output/public/_build/assets/about-DIrbzRsi.js +1 -0
- package/.output/public/_build/assets/actors-HfZh_afh.js +24 -0
- package/.output/public/_build/assets/client-CGFoRcqH.js +3 -0
- package/.output/public/_build/assets/components-5MVu7IcD.js +1 -0
- package/.output/public/_build/assets/dist-BrJ_B8nU.js +1 -0
- package/.output/public/_build/assets/dist-DVo0HS5G.js +1 -0
- package/.output/public/_build/assets/dist-WrlGlK67.js +1 -0
- package/.output/public/_build/assets/entry-client-BurSTYr9.css +1 -0
- package/.output/public/_build/assets/entry-client-RIC5nXxX.js +8 -0
- package/.output/public/_build/assets/form-BxigYd7J.css +1 -0
- package/.output/public/_build/assets/form.module-BecmEfV_.js +1 -0
- package/.output/public/_build/assets/index-BHn6sAgH.js +23 -0
- package/.output/public/_build/assets/index-BSLqnqN7.js +8 -0
- package/.output/public/_build/assets/index-B_xLBDOo.css +1 -0
- package/.output/public/_build/assets/instance-tpMrvJNZ.js +35 -0
- package/.output/public/_build/assets/label-Mv8GZ4jc.js +1 -0
- package/.output/public/_build/assets/objects-DPb8DI8A.css +1 -0
- package/.output/public/_build/assets/objects-DR9TfL-V.js +25 -0
- package/.output/public/_build/assets/relay-runtime-BX3uubtA.js +7 -0
- package/.output/public/_build/assets/routing-DMN2NHu6.js +1 -0
- package/.output/public/_build/assets/sign-in-B67sv7z8.js +10 -0
- package/.output/public/_build/assets/web-DB_Nkq2D.js +1 -0
- package/.output/public/apple-touch-icon.png +0 -0
- package/.output/public/favicon.ico +0 -0
- package/.output/public/icon-192.png +0 -0
- package/.output/public/icon-512.png +0 -0
- package/.output/public/icon-mask.png +0 -0
- package/.output/public/icon.svg +395 -0
- package/.output/public/manifest.webmanifest +13 -0
- package/.output/server/_...404_-DDEH5apf.mjs +16 -0
- package/.output/server/_challengeId_-C7BBdG0r.mjs +100 -0
- package/.output/server/_chunks/ssr-renderer.mjs +26 -0
- package/.output/server/_id_-DqytvZEf.mjs +505 -0
- package/.output/server/_libs/@shikijs/core+[...].mjs +7173 -0
- package/.output/server/_libs/@shikijs/engine-javascript+[...].mjs +3110 -0
- package/.output/server/_libs/babel__runtime.mjs +243 -0
- package/.output/server/_libs/dequal.mjs +25 -0
- package/.output/server/_libs/faker-js__faker.mjs +13150 -0
- package/.output/server/_libs/fbjs.mjs +115 -0
- package/.output/server/_libs/h3+rou3+srvx.mjs +650 -0
- package/.output/server/_libs/hookable.mjs +41 -0
- package/.output/server/_libs/invariant.mjs +36 -0
- package/.output/server/_libs/relay-runtime.mjs +9704 -0
- package/.output/server/_libs/seroval-plugins.mjs +563 -0
- package/.output/server/_libs/seroval.mjs +2956 -0
- package/.output/server/_libs/shikijs__langs.mjs +3 -0
- package/.output/server/_libs/shikijs__themes.mjs +7 -0
- package/.output/server/_libs/solid-js.mjs +1248 -0
- package/.output/server/_libs/solid-relay+tiny-invariant.mjs +1029 -0
- package/.output/server/_libs/ufo.mjs +64 -0
- package/.output/server/_libs/valibot.mjs +711 -0
- package/.output/server/_runtime.mjs +33 -0
- package/.output/server/_slug_-CBOaSqoF.mjs +978 -0
- package/.output/server/_ssr/ActorDetailQuery.graphql-C1mWRP1B.mjs +283 -0
- package/.output/server/_ssr/CompleteLoginChallenge.graphql-CM7o_Md1.mjs +78 -0
- package/.output/server/_ssr/CopyButton-CQNR5D1y.mjs +43 -0
- package/.output/server/_ssr/CreateInstanceMutation.graphql-C-h2lGxz.mjs +116 -0
- package/.output/server/_ssr/CreateObjectMutation.graphql-C393Hp7q.mjs +166 -0
- package/.output/server/_ssr/GenerateActorsMutation.graphql-D2ADtn1j.mjs +163 -0
- package/.output/server/_ssr/GetHostQuery.graphql-C45XQo1i.mjs +127 -0
- package/.output/server/_ssr/HomeViewerQuery.graphql-Dote4Pkz.mjs +81 -0
- package/.output/server/_ssr/InstanceActorListQuery.graphql-DgItgN5t.mjs +167 -0
- package/.output/server/_ssr/InstanceDetailQuery.graphql-DP5wWWjX.mjs +367 -0
- package/.output/server/_ssr/InstanceSummary_instance.graphql-10tilF-Z.mjs +34 -0
- package/.output/server/_ssr/JNCCF6MP-BAZlBnvx.mjs +419 -0
- package/.output/server/_ssr/LP6E37CW-D2Ih_b_K.mjs +163 -0
- package/.output/server/_ssr/SignInMutation.graphql-BBXmiay6.mjs +72 -0
- package/.output/server/_ssr/TSB6MOZK-D06WZb6o.mjs +166 -0
- package/.output/server/_ssr/Toast-Bb1gcxED.mjs +947 -0
- package/.output/server/_ssr/WorkspaceQuery.graphql-DnCO8t-4.mjs +153 -0
- package/.output/server/_ssr/about-CD3QIgf_.mjs +14 -0
- package/.output/server/_ssr/actors-CMWf-xQU.mjs +1160 -0
- package/.output/server/_ssr/dist-D6rgyh-L.mjs +81 -0
- package/.output/server/_ssr/dist-I7KRMRbA.mjs +432 -0
- package/.output/server/_ssr/form.module-CTvIl1lm.mjs +192 -0
- package/.output/server/_ssr/index-C4crD6q-.mjs +347 -0
- package/.output/server/_ssr/index-yuhuc6-X.mjs +111 -0
- package/.output/server/_ssr/instance-ZYWGeWd3.mjs +280 -0
- package/.output/server/_ssr/label-DAXzanI9.mjs +9 -0
- package/.output/server/_ssr/objects-D5MVukzB.mjs +4316 -0
- package/.output/server/_ssr/routing-DKTLkkbY.mjs +620 -0
- package/.output/server/_ssr/sign-in-CNHZb_zL.mjs +264 -0
- package/.output/server/_ssr/ssr.mjs +6138 -0
- package/.output/server/index.mjs +691 -0
- package/LICENSE +661 -0
- package/README.md +143 -2
- package/dist/bridge.d.mts +39 -0
- package/dist/bridge.mjs +104 -0
- package/dist/bridge.mjs.map +1 -0
- package/dist/request-policy.d.mts +8 -0
- package/dist/request-policy.mjs +94 -0
- package/dist/request-policy.mjs.map +1 -0
- package/dist/runtime.d.mts +14 -0
- package/dist/runtime.mjs +44 -0
- package/dist/runtime.mjs.map +1 -0
- package/package.json +111 -3
|
@@ -0,0 +1,1029 @@
|
|
|
1
|
+
import { r as __toESM } from "../_runtime.mjs";
|
|
2
|
+
import { n as require_relay_runtime, t as require_experimental } from "./relay-runtime.mjs";
|
|
3
|
+
import { A as batch, F as createContext, I as createEffect, J as onCleanup, L as createMemo, N as createComponent, P as createComputed, V as createSignal, Y as onMount, i as unwrap, n as createStore, nt as useContext, r as reconcile, tt as untrack, z as createResource } from "./solid-js.mjs";
|
|
4
|
+
import { n as OpaqueReference } from "./seroval.mjs";
|
|
5
|
+
import { t as dequal } from "./dequal.mjs";
|
|
6
|
+
//#region ../../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js
|
|
7
|
+
var import_relay_runtime = /* @__PURE__ */ __toESM(require_relay_runtime(), 1);
|
|
8
|
+
var prefix = "Invariant failed";
|
|
9
|
+
function invariant(condition, message) {
|
|
10
|
+
if (condition) return;
|
|
11
|
+
throw new Error(prefix);
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
//#region ../../node_modules/.pnpm/solid-relay@1.0.0-beta.29_relay-runtime@21.0.1_seroval@1.6.3_solid-js@1.9.14/node_modules/solid-relay/dist/index.mjs
|
|
15
|
+
var import_experimental = /* @__PURE__ */ __toESM(require_experimental(), 1);
|
|
16
|
+
var { __internal: __internal$5, createOperationDescriptor: createOperationDescriptor$3, getRequest: getRequest$4, getRequestIdentifier, Observable: Observable$1, PreloadableQueryRegistry, ReplaySubject: ReplaySubject$2 } = import_relay_runtime.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime.default;
|
|
17
|
+
var fetchKey = 100001;
|
|
18
|
+
/**
|
|
19
|
+
* Preloads a query and returns a `PreloadedQuery` reference.
|
|
20
|
+
*
|
|
21
|
+
* Use this to start fetching before render (for example during route preload),
|
|
22
|
+
* then consume the returned reference with `createPreloadedQuery`.
|
|
23
|
+
*
|
|
24
|
+
* @param environment - Relay environment used to execute and retain the query.
|
|
25
|
+
* @param preloadableRequest - Query document or preloadable concrete request.
|
|
26
|
+
* @param variables - Variables for the query operation.
|
|
27
|
+
* @param options - Options for the preload request.
|
|
28
|
+
* @returns A query reference that can be consumed by `createPreloadedQuery`.
|
|
29
|
+
*/
|
|
30
|
+
function loadQuery(environment, preloadableRequest, variables, options) {
|
|
31
|
+
fetchKey++;
|
|
32
|
+
const fetchPolicy = options?.fetchPolicy ?? "store-or-network";
|
|
33
|
+
const networkCacheConfig = {
|
|
34
|
+
...options?.networkCacheConfig,
|
|
35
|
+
force: true
|
|
36
|
+
};
|
|
37
|
+
let retainReference;
|
|
38
|
+
let didExecuteNetworkSource = false;
|
|
39
|
+
const executeWithNetworkSource = (operation, networkObservable) => {
|
|
40
|
+
didExecuteNetworkSource = true;
|
|
41
|
+
return environment.executeWithSource({
|
|
42
|
+
operation,
|
|
43
|
+
source: networkObservable
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
const executionSubject = new ReplaySubject$2();
|
|
47
|
+
const returnedObservable = Observable$1.create((sink) => executionSubject.subscribe(sink));
|
|
48
|
+
let networkRequestSubscription;
|
|
49
|
+
let networkError = null;
|
|
50
|
+
let didMakeNetworkRequest = false;
|
|
51
|
+
const makeNetworkRequest = (params) => {
|
|
52
|
+
didMakeNetworkRequest = true;
|
|
53
|
+
const subject = new ReplaySubject$2();
|
|
54
|
+
const identifier = "raw-network-request-" + getRequestIdentifier(params, variables);
|
|
55
|
+
networkRequestSubscription = __internal$5.fetchQueryDeduped(environment, identifier, () => {
|
|
56
|
+
return environment.getNetwork().execute(params, variables, networkCacheConfig);
|
|
57
|
+
}).subscribe({
|
|
58
|
+
error(err) {
|
|
59
|
+
networkError = err;
|
|
60
|
+
subject.error(err);
|
|
61
|
+
},
|
|
62
|
+
next(data) {
|
|
63
|
+
subject.next(data);
|
|
64
|
+
},
|
|
65
|
+
complete() {
|
|
66
|
+
subject.complete();
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
return Observable$1.create((sink) => {
|
|
70
|
+
const subjectSubscription = subject.subscribe(sink);
|
|
71
|
+
return () => {
|
|
72
|
+
subjectSubscription.unsubscribe();
|
|
73
|
+
networkRequestSubscription?.unsubscribe();
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
let executionSubcription;
|
|
78
|
+
const executeDeduped = (operation, fetchFn) => {
|
|
79
|
+
didMakeNetworkRequest = true;
|
|
80
|
+
executionSubcription = __internal$5.fetchQueryDeduped(environment, operation.request.identifier, fetchFn).subscribe({
|
|
81
|
+
error(err) {
|
|
82
|
+
executionSubject.error(err);
|
|
83
|
+
},
|
|
84
|
+
next(data) {
|
|
85
|
+
executionSubject.next(data);
|
|
86
|
+
},
|
|
87
|
+
complete() {
|
|
88
|
+
executionSubject.complete();
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
const checkAvailabilityAndExecute = (concreteRequest) => {
|
|
93
|
+
const operation = createOperationDescriptor$3(concreteRequest, variables, networkCacheConfig);
|
|
94
|
+
retainReference = environment.retain(operation);
|
|
95
|
+
if (fetchPolicy === "store-only") return;
|
|
96
|
+
if (fetchPolicy !== "store-or-network" || environment.check(operation).status !== "available") executeDeduped(operation, () => {
|
|
97
|
+
return executeWithNetworkSource(operation, makeNetworkRequest(concreteRequest.params));
|
|
98
|
+
});
|
|
99
|
+
};
|
|
100
|
+
let params;
|
|
101
|
+
let cancelOnLoadCallback;
|
|
102
|
+
let queryId;
|
|
103
|
+
if ("kind" in preloadableRequest && preloadableRequest.kind === "PreloadableConcreteRequest") {
|
|
104
|
+
params = preloadableRequest.params;
|
|
105
|
+
queryId = params.id;
|
|
106
|
+
invariant(queryId != null, `Relay: \`loadQuery\` requires that preloadable query \`${params.name}\` has a persisted query id`);
|
|
107
|
+
const module = PreloadableQueryRegistry.get(queryId);
|
|
108
|
+
if (module != null) checkAvailabilityAndExecute(module);
|
|
109
|
+
else {
|
|
110
|
+
const networkObservable = fetchPolicy === "store-only" ? null : makeNetworkRequest(params);
|
|
111
|
+
cancelOnLoadCallback = PreloadableQueryRegistry.onLoad(queryId, (preloadedModule) => {
|
|
112
|
+
cancelOnLoadCallback();
|
|
113
|
+
const operation = createOperationDescriptor$3(preloadedModule, variables, networkCacheConfig);
|
|
114
|
+
retainReference = environment.retain(operation);
|
|
115
|
+
if (networkObservable != null) executeDeduped(operation, () => executeWithNetworkSource(operation, networkObservable));
|
|
116
|
+
}).dispose;
|
|
117
|
+
}
|
|
118
|
+
} else {
|
|
119
|
+
const request = getRequest$4(preloadableRequest);
|
|
120
|
+
params = request.params;
|
|
121
|
+
queryId = "cacheID" in params && params.cacheID != null ? params.cacheID : params.id;
|
|
122
|
+
checkAvailabilityAndExecute(request);
|
|
123
|
+
}
|
|
124
|
+
let isDisposed = false;
|
|
125
|
+
let isReleased = false;
|
|
126
|
+
let isNetworkRequestCanceled = false;
|
|
127
|
+
const releaseQuery = () => {
|
|
128
|
+
if (isReleased) return;
|
|
129
|
+
retainReference?.dispose();
|
|
130
|
+
isReleased = true;
|
|
131
|
+
};
|
|
132
|
+
const cancelNetworkRequest = () => {
|
|
133
|
+
if (isNetworkRequestCanceled) return;
|
|
134
|
+
if (didExecuteNetworkSource) executionSubcription?.unsubscribe();
|
|
135
|
+
else networkRequestSubscription?.unsubscribe();
|
|
136
|
+
cancelOnLoadCallback?.();
|
|
137
|
+
isNetworkRequestCanceled = true;
|
|
138
|
+
};
|
|
139
|
+
return {
|
|
140
|
+
kind: "PreloadedQuery",
|
|
141
|
+
id: queryId,
|
|
142
|
+
name: params.name,
|
|
143
|
+
variables,
|
|
144
|
+
fetchKey,
|
|
145
|
+
fetchPolicy,
|
|
146
|
+
networkCacheConfig,
|
|
147
|
+
controls: new OpaqueReference({
|
|
148
|
+
environment,
|
|
149
|
+
source: didMakeNetworkRequest ? returnedObservable : void 0,
|
|
150
|
+
getNetworkError: () => networkError,
|
|
151
|
+
dispose: () => {
|
|
152
|
+
if (isDisposed) return;
|
|
153
|
+
releaseQuery();
|
|
154
|
+
cancelNetworkRequest();
|
|
155
|
+
isDisposed = true;
|
|
156
|
+
},
|
|
157
|
+
isDisposed: () => isDisposed || isReleased,
|
|
158
|
+
releaseQuery
|
|
159
|
+
})
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
var RelayContext = createContext();
|
|
163
|
+
/**
|
|
164
|
+
* Provides a Relay environment to Solid Relay primitives in the subtree.
|
|
165
|
+
*
|
|
166
|
+
* Wrap your application (or route subtree) with this provider before calling
|
|
167
|
+
* primitives such as `createLazyLoadQuery`, `createFragment`, or `createMutation`.
|
|
168
|
+
*/
|
|
169
|
+
function RelayEnvironmentProvider(props) {
|
|
170
|
+
const environment = createMemo(() => props.environment);
|
|
171
|
+
return createComponent(RelayContext.Provider, {
|
|
172
|
+
get value() {
|
|
173
|
+
return {
|
|
174
|
+
environment,
|
|
175
|
+
dataStores: /* @__PURE__ */ new WeakMap()
|
|
176
|
+
};
|
|
177
|
+
},
|
|
178
|
+
get children() {
|
|
179
|
+
return props.children;
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Returns the current Relay environment accessor from context.
|
|
185
|
+
*
|
|
186
|
+
* Throws if called outside `RelayEnvironmentProvider`.
|
|
187
|
+
*/
|
|
188
|
+
function useRelayEnvironment() {
|
|
189
|
+
const context = useContext(RelayContext);
|
|
190
|
+
invariant(context != null, "useRelayEnvironment: Expected to have found a Relay environment provided by a `RelayEnvironmentProvider` component. This usually means that useRelayEnvironment was used in a component that is not a descendant of a `RelayEnvironmentProvider`. Please make sure a `RelayEnvironmentProvider` has been rendered somewhere as a parent or ancestor of your component.");
|
|
191
|
+
return context.environment;
|
|
192
|
+
}
|
|
193
|
+
function useDataStores() {
|
|
194
|
+
return useContext(RelayContext)?.dataStores;
|
|
195
|
+
}
|
|
196
|
+
var createDataStore = (init, resourceAccessor) => {
|
|
197
|
+
const [store, setStore] = createStableStore(init, untrack(() => resourceAccessor()));
|
|
198
|
+
const readData = () => {
|
|
199
|
+
resourceAccessor()?.();
|
|
200
|
+
const error = Reflect.get(store, "error");
|
|
201
|
+
if (error) throw error;
|
|
202
|
+
return Reflect.get(store, "data");
|
|
203
|
+
};
|
|
204
|
+
Object.defineProperties(readData, {
|
|
205
|
+
latest: { get: () => Reflect.get(store, "data") },
|
|
206
|
+
error: { get: () => Reflect.get(store, "error") },
|
|
207
|
+
pending: { get: () => Reflect.get(store, "pending") }
|
|
208
|
+
});
|
|
209
|
+
return [readData, setStore];
|
|
210
|
+
};
|
|
211
|
+
function createStableStore(init, resource) {
|
|
212
|
+
const stores = useDataStores();
|
|
213
|
+
if (resource) {
|
|
214
|
+
const existing = stores?.get(resource);
|
|
215
|
+
if (existing) return existing;
|
|
216
|
+
}
|
|
217
|
+
const store = createStore(init);
|
|
218
|
+
if (resource) stores?.set(resource, store);
|
|
219
|
+
return store;
|
|
220
|
+
}
|
|
221
|
+
var { FRAGMENT_OWNER_KEY: FRAGMENT_OWNER_KEY$1, RequestDescriptor } = import_relay_runtime.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime.default;
|
|
222
|
+
var OWNER_PROTO = {};
|
|
223
|
+
function cleanSnapshot(input) {
|
|
224
|
+
if (typeof input !== "object" || input === null) return input;
|
|
225
|
+
if (Array.isArray(input)) return input.map(cleanSnapshot);
|
|
226
|
+
return Object.fromEntries(Object.entries(input).map(([key, value]) => {
|
|
227
|
+
if (key === FRAGMENT_OWNER_KEY$1) {
|
|
228
|
+
const wrapped = { ...value };
|
|
229
|
+
Object.setPrototypeOf(wrapped, OWNER_PROTO);
|
|
230
|
+
return [key, wrapped];
|
|
231
|
+
}
|
|
232
|
+
return [key, cleanSnapshot(value)];
|
|
233
|
+
}));
|
|
234
|
+
}
|
|
235
|
+
var { observeFragment: observeFragment$1 } = import_experimental.default?.default?.__esModule ? import_experimental.default.default : import_experimental.default;
|
|
236
|
+
function createFragment(fragment, key, options) {
|
|
237
|
+
return createFragmentInternal(fragment, key, void 0, options);
|
|
238
|
+
}
|
|
239
|
+
function createFragmentInternal(fragment, key, options, createResourceOptions) {
|
|
240
|
+
const environment = useRelayEnvironment();
|
|
241
|
+
const subscribeResult = (source, onResult) => {
|
|
242
|
+
return source.subscribe({ next(res) {
|
|
243
|
+
batch(() => {
|
|
244
|
+
switch (res.state) {
|
|
245
|
+
case "ok":
|
|
246
|
+
setResult("error", void 0);
|
|
247
|
+
setResult("pending", false);
|
|
248
|
+
setResult("data", reconcile(cleanSnapshot(res.value), {
|
|
249
|
+
key: "__id",
|
|
250
|
+
merge: true
|
|
251
|
+
}));
|
|
252
|
+
break;
|
|
253
|
+
case "error":
|
|
254
|
+
setResult("data", void 0);
|
|
255
|
+
setResult("error", res.error);
|
|
256
|
+
setResult("pending", false);
|
|
257
|
+
break;
|
|
258
|
+
case "loading":
|
|
259
|
+
setResult("data", void 0);
|
|
260
|
+
setResult("error", void 0);
|
|
261
|
+
setResult("pending", true);
|
|
262
|
+
break;
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
onResult?.(res);
|
|
266
|
+
} });
|
|
267
|
+
};
|
|
268
|
+
const [subscription, setSubscription] = createSignal();
|
|
269
|
+
createEffect(() => {
|
|
270
|
+
const sub = subscription();
|
|
271
|
+
if (sub) onCleanup(() => {
|
|
272
|
+
sub.unsubscribe();
|
|
273
|
+
});
|
|
274
|
+
});
|
|
275
|
+
const setResultQueue = [];
|
|
276
|
+
let setResult = (...args) => {
|
|
277
|
+
setResultQueue.push(args);
|
|
278
|
+
};
|
|
279
|
+
let fetchedInSameEnv = false;
|
|
280
|
+
const [resource] = createResource(() => {
|
|
281
|
+
return batch(() => {
|
|
282
|
+
setSubscription(void 0);
|
|
283
|
+
setResult("pending", false);
|
|
284
|
+
environment();
|
|
285
|
+
const k = unwrap(key());
|
|
286
|
+
if (!k) {
|
|
287
|
+
setResult("data", void 0);
|
|
288
|
+
setResult("error", void 0);
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
return {
|
|
292
|
+
key: k,
|
|
293
|
+
parentOperation: options?.().parentOperation
|
|
294
|
+
};
|
|
295
|
+
});
|
|
296
|
+
}, ({ key, parentOperation }) => {
|
|
297
|
+
setResult("pending", true);
|
|
298
|
+
fetchedInSameEnv = true;
|
|
299
|
+
const observe = () => {
|
|
300
|
+
let settled;
|
|
301
|
+
let resolve;
|
|
302
|
+
let reject;
|
|
303
|
+
setSubscription(subscribeResult(observeFragment$1(environment(), fragment, key), (res) => {
|
|
304
|
+
if (res.state === "ok") {
|
|
305
|
+
settled ??= { ok: true };
|
|
306
|
+
resolve?.(true);
|
|
307
|
+
} else if (res.state === "error") {
|
|
308
|
+
settled ??= {
|
|
309
|
+
ok: false,
|
|
310
|
+
error: res.error
|
|
311
|
+
};
|
|
312
|
+
reject?.(res.error);
|
|
313
|
+
}
|
|
314
|
+
}));
|
|
315
|
+
if (settled?.ok) return true;
|
|
316
|
+
if (settled) return Promise.reject(settled.error);
|
|
317
|
+
return new Promise((res, rej) => {
|
|
318
|
+
resolve = res;
|
|
319
|
+
reject = rej;
|
|
320
|
+
});
|
|
321
|
+
};
|
|
322
|
+
if (!parentOperation) return observe();
|
|
323
|
+
return new Promise((resolve, reject) => {
|
|
324
|
+
parentOperation.subscribe({
|
|
325
|
+
complete: resolve,
|
|
326
|
+
error: reject
|
|
327
|
+
});
|
|
328
|
+
}).then(observe);
|
|
329
|
+
}, {
|
|
330
|
+
deferStream: createResourceOptions?.deferStream,
|
|
331
|
+
storage(init) {
|
|
332
|
+
const [value, setValue] = createSignal(init);
|
|
333
|
+
return [value, (next) => {
|
|
334
|
+
const current = untrack(value);
|
|
335
|
+
const nextValue = typeof next === "function" ? next(current) : next;
|
|
336
|
+
const k = unwrap(untrack(key));
|
|
337
|
+
if (!fetchedInSameEnv && !current && nextValue && k) setSubscription(subscribeResult(observeFragment$1(environment(), fragment, k)));
|
|
338
|
+
setValue(() => nextValue);
|
|
339
|
+
}];
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
const store = createDataStore({
|
|
343
|
+
data: void 0,
|
|
344
|
+
error: void 0,
|
|
345
|
+
pending: false
|
|
346
|
+
}, () => resource);
|
|
347
|
+
for (const args of setResultQueue) store[1].apply(void 0, args);
|
|
348
|
+
setResult = store[1];
|
|
349
|
+
return store[0];
|
|
350
|
+
}
|
|
351
|
+
var caches = /* @__PURE__ */ new WeakMap();
|
|
352
|
+
function getQueryCache(environment) {
|
|
353
|
+
let cache = caches.get(environment);
|
|
354
|
+
if (!cache) {
|
|
355
|
+
cache = /* @__PURE__ */ new Map();
|
|
356
|
+
caches.set(environment, cache);
|
|
357
|
+
}
|
|
358
|
+
return cache;
|
|
359
|
+
}
|
|
360
|
+
var access = (v) => typeof v === "function" && !v.length ? v() : v;
|
|
361
|
+
var { createOperationDescriptor: createOperationDescriptor$2, getRequest: getRequest$3 } = import_relay_runtime.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime.default;
|
|
362
|
+
function createMemoOperationDescriptor(gqlQuery, variables, cacheConfig) {
|
|
363
|
+
const memoizedVariables = createMemo(() => access(variables), void 0, { equals: dequal });
|
|
364
|
+
const memoizedCacheConfig = createMemo(() => access(cacheConfig), void 0, { equals: dequal });
|
|
365
|
+
return createMemo(() => {
|
|
366
|
+
const variables = memoizedVariables();
|
|
367
|
+
if (!variables) return;
|
|
368
|
+
return createOperationDescriptor$2(getRequest$3(access(gqlQuery)), variables, memoizedCacheConfig());
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
var { FRAGMENT_OWNER_KEY, FRAGMENTS_KEY, ID_KEY } = import_relay_runtime.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime.default;
|
|
372
|
+
var getQueryRef = (operation) => ({
|
|
373
|
+
[ID_KEY]: operation.fragment.dataID,
|
|
374
|
+
[FRAGMENTS_KEY]: { [operation.fragment.node.name]: operation.request.variables },
|
|
375
|
+
[FRAGMENT_OWNER_KEY]: operation.request
|
|
376
|
+
});
|
|
377
|
+
var { __internal: __internal$4, getRequest: getRequest$2, Observable, ReplaySubject: ReplaySubject$1 } = import_relay_runtime.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime.default;
|
|
378
|
+
var { observeFragment } = import_experimental.default?.default?.__esModule ? import_experimental.default.default : import_experimental.default;
|
|
379
|
+
/**
|
|
380
|
+
* Reads query data and subscribes to store updates for the current component.
|
|
381
|
+
*
|
|
382
|
+
* It fetches according to the provided fetch policy and returns a reactive
|
|
383
|
+
* data store containing the query response.
|
|
384
|
+
*
|
|
385
|
+
* @param gqlQuery - GraphQL query document.
|
|
386
|
+
* @param variables - Query variables or an accessor for reactive variables.
|
|
387
|
+
* @param options.fetchPolicy - Query fetch policy.
|
|
388
|
+
* @param options.networkCacheConfig - Network cache configuration.
|
|
389
|
+
* @param options.deferStream - Whether to defer the SSR stream until the data is resolved.
|
|
390
|
+
* @returns A `DataStore` containing the query data state.
|
|
391
|
+
*/
|
|
392
|
+
function createLazyLoadQuery(gqlQuery, variables, options) {
|
|
393
|
+
const environment = useRelayEnvironment();
|
|
394
|
+
const operation = createMemoOperationDescriptor(gqlQuery, variables, options?.networkCacheConfig);
|
|
395
|
+
return createLazyLoadQueryInternal({
|
|
396
|
+
query: operation,
|
|
397
|
+
fragment: () => getRequest$2(access(gqlQuery)).fragment,
|
|
398
|
+
fetchObservable: createMemo(() => {
|
|
399
|
+
const op = operation();
|
|
400
|
+
const env = environment();
|
|
401
|
+
if (!op || !env) return;
|
|
402
|
+
return __internal$4.fetchQuery(env, op);
|
|
403
|
+
}),
|
|
404
|
+
fetchPolicy: () => access(options?.fetchPolicy),
|
|
405
|
+
deferStream: options?.deferStream
|
|
406
|
+
});
|
|
407
|
+
}
|
|
408
|
+
function createLazyLoadQueryInternal(params) {
|
|
409
|
+
const environment = useRelayEnvironment();
|
|
410
|
+
const queryCache = createMemo(() => getQueryCache(environment()));
|
|
411
|
+
const isLiveQuery = createMemo(() => params.query()?.request.node.params.metadata.live !== void 0);
|
|
412
|
+
const fetchPolicy = createMemo(() => params.fetchPolicy?.() ?? (isLiveQuery() ? "store-and-network" : "store-or-network"));
|
|
413
|
+
const cacheKey = createMemo(() => {
|
|
414
|
+
const query = params.query();
|
|
415
|
+
if (!query) return;
|
|
416
|
+
return [
|
|
417
|
+
fetchPolicy(),
|
|
418
|
+
query.request.identifier,
|
|
419
|
+
params.fetchKey?.()
|
|
420
|
+
].filter((v) => v != null).join("-");
|
|
421
|
+
});
|
|
422
|
+
const cacheEntry = createMemo(() => {
|
|
423
|
+
const operation = params.query();
|
|
424
|
+
const key = cacheKey();
|
|
425
|
+
if (!operation || !key) return;
|
|
426
|
+
const cache = queryCache();
|
|
427
|
+
const existing = cache.get(key);
|
|
428
|
+
if (existing != null) return existing;
|
|
429
|
+
const hasFullQuery = environment().check(operation).status === "available";
|
|
430
|
+
const shouldFetch = (() => {
|
|
431
|
+
switch (fetchPolicy()) {
|
|
432
|
+
case "store-only": return false;
|
|
433
|
+
case "store-or-network": return !hasFullQuery;
|
|
434
|
+
case "store-and-network":
|
|
435
|
+
case "network-only": return true;
|
|
436
|
+
}
|
|
437
|
+
})();
|
|
438
|
+
const replaySubject = new ReplaySubject$1();
|
|
439
|
+
let subscriptionTarget = shouldFetch ? environment().executeWithSource({
|
|
440
|
+
operation,
|
|
441
|
+
source: __internal$4.fetchQueryDeduped(environment(), operation.request.identifier, () => Observable.create((sink) => replaySubject.subscribe(sink)))
|
|
442
|
+
}) : void 0;
|
|
443
|
+
let fetchedInSameEnv = false;
|
|
444
|
+
const [resource] = createResource(() => shouldFetch && params.fetchObservable(), async (observable) => {
|
|
445
|
+
subscriptionTarget = observable;
|
|
446
|
+
fetchedInSameEnv = true;
|
|
447
|
+
let pr = Promise.withResolvers();
|
|
448
|
+
observable.subscribe({
|
|
449
|
+
next(response) {
|
|
450
|
+
const nextPr = Promise.withResolvers();
|
|
451
|
+
pr.resolve({
|
|
452
|
+
value: response,
|
|
453
|
+
next: nextPr.promise
|
|
454
|
+
});
|
|
455
|
+
pr = nextPr;
|
|
456
|
+
},
|
|
457
|
+
error(error) {
|
|
458
|
+
pr.reject(error);
|
|
459
|
+
},
|
|
460
|
+
complete() {
|
|
461
|
+
pr.resolve(null);
|
|
462
|
+
}
|
|
463
|
+
});
|
|
464
|
+
return await pr.promise;
|
|
465
|
+
}, {
|
|
466
|
+
deferStream: params.deferStream,
|
|
467
|
+
storage(init) {
|
|
468
|
+
const [value, setValue] = createSignal(init);
|
|
469
|
+
return [value, (next) => {
|
|
470
|
+
const current = untrack(value);
|
|
471
|
+
const nextValue = typeof next === "function" ? next(current) : next;
|
|
472
|
+
let result = nextValue;
|
|
473
|
+
if (!fetchedInSameEnv && nextValue) (async () => {
|
|
474
|
+
try {
|
|
475
|
+
while (result) {
|
|
476
|
+
replaySubject.next(result.value);
|
|
477
|
+
result = await result.next;
|
|
478
|
+
}
|
|
479
|
+
replaySubject.complete();
|
|
480
|
+
} catch (error) {
|
|
481
|
+
replaySubject.error(error instanceof Error ? error : new Error(String(error)));
|
|
482
|
+
}
|
|
483
|
+
})();
|
|
484
|
+
setValue(() => nextValue);
|
|
485
|
+
}];
|
|
486
|
+
}
|
|
487
|
+
});
|
|
488
|
+
let entry;
|
|
489
|
+
if (shouldFetch) {
|
|
490
|
+
const subscription = subscriptionTarget?.subscribe({});
|
|
491
|
+
let retainCount = 0;
|
|
492
|
+
let retention;
|
|
493
|
+
entry = {
|
|
494
|
+
resource,
|
|
495
|
+
retain: (environment) => {
|
|
496
|
+
retainCount++;
|
|
497
|
+
if (retainCount === 1) retention = environment.retain(operation);
|
|
498
|
+
return { dispose: () => {
|
|
499
|
+
retainCount = Math.max(retainCount - 1, 0);
|
|
500
|
+
if (retainCount === 0) {
|
|
501
|
+
retention?.dispose();
|
|
502
|
+
if (isLiveQuery()) subscription?.unsubscribe();
|
|
503
|
+
cache.delete(key);
|
|
504
|
+
}
|
|
505
|
+
} };
|
|
506
|
+
}
|
|
507
|
+
};
|
|
508
|
+
cache.set(key, entry);
|
|
509
|
+
}
|
|
510
|
+
return entry;
|
|
511
|
+
});
|
|
512
|
+
createComputed(() => {
|
|
513
|
+
const entry = cacheEntry();
|
|
514
|
+
if (!entry) return;
|
|
515
|
+
onCleanup(entry.retain(environment()).dispose);
|
|
516
|
+
});
|
|
517
|
+
const [result, setResult] = createDataStore({
|
|
518
|
+
data: void 0,
|
|
519
|
+
error: void 0,
|
|
520
|
+
pending: false
|
|
521
|
+
}, () => cacheEntry()?.resource);
|
|
522
|
+
createComputed(() => {
|
|
523
|
+
batch(() => {
|
|
524
|
+
setResult("data", void 0);
|
|
525
|
+
setResult("error", void 0);
|
|
526
|
+
setResult("pending", false);
|
|
527
|
+
const operation = params.query();
|
|
528
|
+
const env = environment();
|
|
529
|
+
if (!operation || !env) return;
|
|
530
|
+
setResult("pending", true);
|
|
531
|
+
const fragmentSubscription = observeFragment(env, params.fragment(), getQueryRef(operation)).subscribe({ next(state) {
|
|
532
|
+
batch(() => {
|
|
533
|
+
switch (state.state) {
|
|
534
|
+
case "ok":
|
|
535
|
+
setResult("error", void 0);
|
|
536
|
+
setResult("pending", false);
|
|
537
|
+
setResult("data", reconcile(cleanSnapshot(state.value), {
|
|
538
|
+
key: "__id",
|
|
539
|
+
merge: true
|
|
540
|
+
}));
|
|
541
|
+
break;
|
|
542
|
+
case "error":
|
|
543
|
+
setResult("data", void 0);
|
|
544
|
+
setResult("error", state.error);
|
|
545
|
+
setResult("pending", false);
|
|
546
|
+
break;
|
|
547
|
+
case "loading":
|
|
548
|
+
setResult("data", void 0);
|
|
549
|
+
setResult("error", void 0);
|
|
550
|
+
setResult("pending", true);
|
|
551
|
+
break;
|
|
552
|
+
}
|
|
553
|
+
});
|
|
554
|
+
} });
|
|
555
|
+
onCleanup(() => {
|
|
556
|
+
fragmentSubscription.unsubscribe();
|
|
557
|
+
});
|
|
558
|
+
});
|
|
559
|
+
});
|
|
560
|
+
return result;
|
|
561
|
+
}
|
|
562
|
+
var { commitMutation } = import_relay_runtime.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime.default;
|
|
563
|
+
/**
|
|
564
|
+
* Creates a mutation commit function and an in-flight state accessor.
|
|
565
|
+
*
|
|
566
|
+
* The returned commit function forwards to Relay's `commitMutation` and
|
|
567
|
+
* keeps `isMutationInFlight` updated while one or more commits are active.
|
|
568
|
+
*
|
|
569
|
+
* @param mutation - GraphQL mutation document.
|
|
570
|
+
* @returns A tuple of `[commitMutation, isMutationInFlight]`.
|
|
571
|
+
*/
|
|
572
|
+
function createMutation(mutation) {
|
|
573
|
+
const environment = useRelayEnvironment();
|
|
574
|
+
const inFlightMutations = /* @__PURE__ */ new Set();
|
|
575
|
+
const [isMutationInFlight, setIsMutationInFlight] = createSignal(false);
|
|
576
|
+
const cleanup = (disposable) => {
|
|
577
|
+
inFlightMutations.delete(disposable);
|
|
578
|
+
setIsMutationInFlight(inFlightMutations.size > 0);
|
|
579
|
+
};
|
|
580
|
+
const commit = (config) => {
|
|
581
|
+
setIsMutationInFlight(true);
|
|
582
|
+
const disposable = commitMutation(environment(), {
|
|
583
|
+
...config,
|
|
584
|
+
mutation,
|
|
585
|
+
onCompleted: (response, errors) => {
|
|
586
|
+
cleanup(disposable);
|
|
587
|
+
config.onCompleted?.(response, errors);
|
|
588
|
+
},
|
|
589
|
+
onError: (error) => {
|
|
590
|
+
cleanup(disposable);
|
|
591
|
+
config.onError?.(error);
|
|
592
|
+
},
|
|
593
|
+
onUnsubscribe: () => {
|
|
594
|
+
cleanup(disposable);
|
|
595
|
+
config.onUnsubscribe?.();
|
|
596
|
+
}
|
|
597
|
+
});
|
|
598
|
+
inFlightMutations.add(disposable);
|
|
599
|
+
return disposable;
|
|
600
|
+
};
|
|
601
|
+
return [commit, isMutationInFlight];
|
|
602
|
+
}
|
|
603
|
+
function createFetchTracker() {
|
|
604
|
+
let currentSubscription = null;
|
|
605
|
+
const [isFetching, setIsFetching] = createSignal(false);
|
|
606
|
+
const disposeFetch = () => {
|
|
607
|
+
if (currentSubscription != null) {
|
|
608
|
+
currentSubscription.unsubscribe();
|
|
609
|
+
currentSubscription = null;
|
|
610
|
+
}
|
|
611
|
+
setIsFetching(false);
|
|
612
|
+
};
|
|
613
|
+
const startFetch = (subscription) => {
|
|
614
|
+
currentSubscription = subscription;
|
|
615
|
+
setIsFetching(true);
|
|
616
|
+
};
|
|
617
|
+
const completeFetch = () => {
|
|
618
|
+
currentSubscription = null;
|
|
619
|
+
setIsFetching(false);
|
|
620
|
+
};
|
|
621
|
+
onCleanup(disposeFetch);
|
|
622
|
+
return {
|
|
623
|
+
disposeFetch,
|
|
624
|
+
startFetch,
|
|
625
|
+
completeFetch,
|
|
626
|
+
isFetching
|
|
627
|
+
};
|
|
628
|
+
}
|
|
629
|
+
var { ConnectionInterface, getValueAtPath: getValueAtPath$1 } = import_relay_runtime.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime.default;
|
|
630
|
+
function getConnectionState(direction, fragmentNode, fragmentData, connectionPathInFragmentData) {
|
|
631
|
+
const { EDGES, PAGE_INFO, HAS_NEXT_PAGE, HAS_PREV_PAGE, END_CURSOR, START_CURSOR } = ConnectionInterface.get();
|
|
632
|
+
const connection = getValueAtPath$1(fragmentData, connectionPathInFragmentData);
|
|
633
|
+
if (connection == null) return {
|
|
634
|
+
cursor: null,
|
|
635
|
+
hasMore: false
|
|
636
|
+
};
|
|
637
|
+
invariant(typeof connection === "object", `Relay: Expected connection in fragment \`${fragmentNode.name}\` to have been \`null\`, or a plain object with ${EDGES} and ${PAGE_INFO} properties. Instead got \`${connection}\`.`);
|
|
638
|
+
const edges = connection[EDGES];
|
|
639
|
+
const pageInfo = connection[PAGE_INFO];
|
|
640
|
+
if (edges == null || pageInfo == null) return {
|
|
641
|
+
cursor: null,
|
|
642
|
+
hasMore: false
|
|
643
|
+
};
|
|
644
|
+
invariant(Array.isArray(edges), `Relay: Expected connection in fragment \`${fragmentNode.name}\` to have a plural \`${EDGES}\` field. Instead got \`${edges}\`.`);
|
|
645
|
+
invariant(typeof pageInfo === "object", `Relay: Expected connection in fragment \`${fragmentNode.name}\` to have a \`${PAGE_INFO}\` field. Instead got \`${pageInfo}\`.`);
|
|
646
|
+
const cursor = direction === "forward" ? pageInfo[END_CURSOR] ?? null : pageInfo[START_CURSOR] ?? null;
|
|
647
|
+
invariant(cursor === null || typeof cursor === "string", `Relay: Expected page info for connection in fragment \`${fragmentNode.name}\` to have a valid \`${START_CURSOR}\`. Instead got \`${cursor}\`.`);
|
|
648
|
+
return {
|
|
649
|
+
cursor,
|
|
650
|
+
hasMore: direction === "forward" ? cursor != null && pageInfo[HAS_NEXT_PAGE] === true : cursor != null && pageInfo[HAS_PREV_PAGE] === true
|
|
651
|
+
};
|
|
652
|
+
}
|
|
653
|
+
var useIsMounted = () => {
|
|
654
|
+
const [isMounted, setIsMounted] = createSignal(false);
|
|
655
|
+
onMount(() => {
|
|
656
|
+
setIsMounted(true);
|
|
657
|
+
onCleanup(() => setIsMounted(false));
|
|
658
|
+
});
|
|
659
|
+
return isMounted;
|
|
660
|
+
};
|
|
661
|
+
var { __internal: __internal$3, getSelector: getSelector$2 } = import_relay_runtime.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime.default;
|
|
662
|
+
function useIsOperationNodeActive(fragmentNode, fragmentRef) {
|
|
663
|
+
const environment = useRelayEnvironment();
|
|
664
|
+
const selector = createMemo(() => getSelector$2(fragmentNode, fragmentRef()));
|
|
665
|
+
const observable = createMemo(() => {
|
|
666
|
+
const s = selector();
|
|
667
|
+
if (s == null) return null;
|
|
668
|
+
invariant(s.kind === "SingularReaderSelector", "useIsOperationNodeActive: Plural fragments are not supported.");
|
|
669
|
+
return __internal$3.getObservableForActiveRequest(environment(), s.owner);
|
|
670
|
+
});
|
|
671
|
+
const [isActive, setIsActive] = createSignal(false);
|
|
672
|
+
createEffect(() => {
|
|
673
|
+
let subscription;
|
|
674
|
+
const obs = observable();
|
|
675
|
+
setIsActive(obs != null);
|
|
676
|
+
if (obs != null) {
|
|
677
|
+
const onCompleteOrError = () => setIsActive(false);
|
|
678
|
+
subscription = obs.subscribe({
|
|
679
|
+
complete: onCompleteOrError,
|
|
680
|
+
error: onCompleteOrError
|
|
681
|
+
});
|
|
682
|
+
}
|
|
683
|
+
onCleanup(() => {
|
|
684
|
+
subscription?.unsubscribe();
|
|
685
|
+
});
|
|
686
|
+
});
|
|
687
|
+
return isActive;
|
|
688
|
+
}
|
|
689
|
+
var { getRequest: getRequest$1 } = import_relay_runtime.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime.default;
|
|
690
|
+
var initialNullQueryReferenceState = { kind: "NullQueryReference" };
|
|
691
|
+
/**
|
|
692
|
+
* Creates imperative helpers for preloading queries.
|
|
693
|
+
*
|
|
694
|
+
* Returns a tuple:
|
|
695
|
+
* - an accessor for the current `PreloadedQuery` reference
|
|
696
|
+
* - a `loadQuery` function to start loading with variables
|
|
697
|
+
* - a `disposeQuery` function to clear and dispose the current reference
|
|
698
|
+
*
|
|
699
|
+
* @param preloadableRequest - Query document or preloadable concrete request.
|
|
700
|
+
* @param initialQueryReference - Optional initial query reference.
|
|
701
|
+
* @returns `[queryRef, loadQuery, disposeQuery]`.
|
|
702
|
+
*/
|
|
703
|
+
function createQueryLoader(preloadableRequest, initialQueryReference) {
|
|
704
|
+
const environment = useRelayEnvironment();
|
|
705
|
+
const isMounted = useIsMounted();
|
|
706
|
+
const [queryReference, setQueryReference] = createSignal(initialQueryReference ?? initialNullQueryReferenceState);
|
|
707
|
+
createEffect(() => {
|
|
708
|
+
const ref = queryReference();
|
|
709
|
+
onCleanup(() => {
|
|
710
|
+
if ("controls" in ref) if (requestIsLiveQuery(preloadableRequest)) ref.controls?.value.dispose();
|
|
711
|
+
else ref.controls?.value.releaseQuery();
|
|
712
|
+
});
|
|
713
|
+
});
|
|
714
|
+
return [
|
|
715
|
+
() => {
|
|
716
|
+
const ref = queryReference();
|
|
717
|
+
return ref.kind === "NullQueryReference" ? null : ref;
|
|
718
|
+
},
|
|
719
|
+
(variables, options) => {
|
|
720
|
+
const mergedOptions = options != null && Object.hasOwn(options, "__environment") ? {
|
|
721
|
+
fetchPolicy: options.fetchPolicy,
|
|
722
|
+
networkCacheConfig: options.networkCacheConfig
|
|
723
|
+
} : options;
|
|
724
|
+
if (untrack(isMounted)) setQueryReference(loadQuery(options?.__environment ?? untrack(environment), preloadableRequest, variables, mergedOptions));
|
|
725
|
+
},
|
|
726
|
+
() => {
|
|
727
|
+
if (untrack(isMounted)) setQueryReference(initialNullQueryReferenceState);
|
|
728
|
+
}
|
|
729
|
+
];
|
|
730
|
+
}
|
|
731
|
+
function requestIsLiveQuery(preloadableRequest) {
|
|
732
|
+
if ("kind" in preloadableRequest && preloadableRequest.kind === "PreloadableConcreteRequest") return preloadableRequest.params.metadata.live !== void 0;
|
|
733
|
+
return getRequest$1(preloadableRequest).params.metadata.live !== void 0;
|
|
734
|
+
}
|
|
735
|
+
var { __internal: __internal$2, createOperationDescriptor: createOperationDescriptor$1, getFragment: getFragment$1, getFragmentIdentifier: getFragmentIdentifier$1, getRefetchMetadata: getRefetchMetadata$1, getSelector: getSelector$1, getValueAtPath, ReplaySubject } = import_relay_runtime.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime.default;
|
|
736
|
+
var { waitForFragmentData } = import_experimental.default?.default?.__esModule ? import_experimental.default.default : import_experimental.default;
|
|
737
|
+
function createRefetchableFragmentInternal(fragment, key, componentDisplayName = "createRefetchableFragment()", options) {
|
|
738
|
+
const parentEnvironment = useRelayEnvironment();
|
|
739
|
+
const parentFragmentRef = () => unwrap(key());
|
|
740
|
+
const isMounted = useIsMounted();
|
|
741
|
+
const fragmentNode = getFragment$1(fragment);
|
|
742
|
+
const { refetchableRequest, fragmentRefPathInResponse, identifierInfo } = getRefetchMetadata$1(fragmentNode, componentDisplayName);
|
|
743
|
+
const fragmentIdentifier = createMemo(() => getFragmentIdentifier$1(fragmentNode, parentFragmentRef()));
|
|
744
|
+
const [state, setState] = createSignal({
|
|
745
|
+
fetchPolicy: void 0,
|
|
746
|
+
mirroredEnvironment: parentEnvironment(),
|
|
747
|
+
mirroredFragmentIdentifier: fragmentIdentifier(),
|
|
748
|
+
onComplete: void 0,
|
|
749
|
+
refetchEnvironment: null,
|
|
750
|
+
refetchQuery: null
|
|
751
|
+
});
|
|
752
|
+
const environment = createMemo(() => state().refetchEnvironment ?? parentEnvironment());
|
|
753
|
+
const [preloadedQueryRef, loadQuery, disposeQuery] = createQueryLoader(refetchableRequest);
|
|
754
|
+
const [fragmentRef, setFragmentRef] = createSignal(parentFragmentRef());
|
|
755
|
+
createComputed(() => {
|
|
756
|
+
if (untrack(fragmentRef) !== parentFragmentRef()) setFragmentRef(() => parentFragmentRef());
|
|
757
|
+
});
|
|
758
|
+
const refetchObservable = createMemo(() => {
|
|
759
|
+
const refetchQuery = state().refetchQuery;
|
|
760
|
+
const preloadedQuery = preloadedQueryRef();
|
|
761
|
+
if (!refetchQuery || !preloadedQuery) return;
|
|
762
|
+
const fetchObservable = preloadedQuery.controls?.value.source != null ? preloadedQuery.controls.value.source : __internal$2.fetchQuery(environment(), refetchQuery);
|
|
763
|
+
const replaySubject = new ReplaySubject();
|
|
764
|
+
fetchObservable.subscribe({
|
|
765
|
+
next: (value) => replaySubject.next(value),
|
|
766
|
+
unsubscribe: () => replaySubject.unsubscribe(),
|
|
767
|
+
complete() {
|
|
768
|
+
replaySubject.complete();
|
|
769
|
+
state().onComplete?.(null);
|
|
770
|
+
},
|
|
771
|
+
error(err) {
|
|
772
|
+
replaySubject.error(err);
|
|
773
|
+
state().onComplete?.(err);
|
|
774
|
+
}
|
|
775
|
+
});
|
|
776
|
+
return replaySubject;
|
|
777
|
+
});
|
|
778
|
+
createComputed(() => {
|
|
779
|
+
const refetchQuery = state().refetchQuery;
|
|
780
|
+
if (!refetchQuery) return;
|
|
781
|
+
const obs = refetchObservable();
|
|
782
|
+
if (!obs) return;
|
|
783
|
+
obs.subscribe({ async complete() {
|
|
784
|
+
const data = await waitForFragmentData(environment(), refetchableRequest.fragment, getQueryRef(refetchQuery));
|
|
785
|
+
if (!data) return;
|
|
786
|
+
const refetchedFragmentRef = getValueAtPath(unwrap(data), fragmentRefPathInResponse);
|
|
787
|
+
if (!refetchedFragmentRef) return;
|
|
788
|
+
setFragmentRef(unwrap(refetchedFragmentRef));
|
|
789
|
+
} });
|
|
790
|
+
});
|
|
791
|
+
const refetch = (action) => setState((state) => ({
|
|
792
|
+
...state,
|
|
793
|
+
fetchPolicy: action.fetchPolicy,
|
|
794
|
+
mirroredEnvironment: state.refetchEnvironment ?? state.mirroredEnvironment,
|
|
795
|
+
onComplete: action.onComplete,
|
|
796
|
+
refetchEnvironment: action.refetchEnvironment,
|
|
797
|
+
refetchQuery: action.refetchQuery
|
|
798
|
+
}));
|
|
799
|
+
const reset = (action) => setState({
|
|
800
|
+
fetchPolicy: void 0,
|
|
801
|
+
mirroredEnvironment: action.environment,
|
|
802
|
+
mirroredFragmentIdentifier: action.fragmentIdentifier,
|
|
803
|
+
onComplete: void 0,
|
|
804
|
+
refetchEnvironment: void 0,
|
|
805
|
+
refetchQuery: null
|
|
806
|
+
});
|
|
807
|
+
createEffect(() => {
|
|
808
|
+
const env = environment();
|
|
809
|
+
const fragmentIdent = fragmentIdentifier();
|
|
810
|
+
if (env !== state().mirroredEnvironment || fragmentIdent !== state().mirroredFragmentIdentifier) {
|
|
811
|
+
reset({
|
|
812
|
+
environment: env,
|
|
813
|
+
fragmentIdentifier: fragmentIdent
|
|
814
|
+
});
|
|
815
|
+
disposeQuery();
|
|
816
|
+
}
|
|
817
|
+
});
|
|
818
|
+
const fragmentData = createFragmentInternal(fragment, parentFragmentRef, () => ({ parentOperation: refetchObservable() }), options);
|
|
819
|
+
return {
|
|
820
|
+
fragmentData,
|
|
821
|
+
fragmentRef,
|
|
822
|
+
refetch: (providedRefetchVariables, options) => {
|
|
823
|
+
const fragmentRef = parentFragmentRef();
|
|
824
|
+
const identifierValue = identifierInfo?.identifierField != null && fragmentData.latest != null && typeof fragmentData.latest === "object" ? fragmentData.latest[identifierInfo.identifierField] : null;
|
|
825
|
+
if (!untrack(isMounted)) {
|
|
826
|
+
console.warn(`Relay: Unexpected call to \`refetch\` on unmounted component for fragment \`${fragmentNode.name}\` in \`${componentDisplayName}\`. It looks like some instances of your component are still trying to fetch data but they already unmounted. Please make sure you clear all timers, intervals, async calls, etc that may trigger a fetch.`);
|
|
827
|
+
return { dispose: () => {} };
|
|
828
|
+
}
|
|
829
|
+
if (fragmentRef === null) console.warn(`Relay: Unexpected call to \`refetch\` while using a null fragment ref for fragment \`fragmentNode.name\` in \`${componentDisplayName}\`. When calling \`refetch\`, we expect initial fragment data to be non-null. Please make sure you're passing a valid fragment ref to \`${componentDisplayName}\` before calling \`refetch\`, or make sure you pass all required variables to \`refetch\`.`);
|
|
830
|
+
const fetchPolicy = options?.fetchPolicy;
|
|
831
|
+
const onComplete = options?.onComplete;
|
|
832
|
+
const fragmentSelector = getSelector$1(fragmentNode, fragmentRef);
|
|
833
|
+
let parentVariables;
|
|
834
|
+
let fragmentVariables;
|
|
835
|
+
if (fragmentSelector == null) {
|
|
836
|
+
parentVariables = {};
|
|
837
|
+
fragmentVariables = {};
|
|
838
|
+
} else if (fragmentSelector.kind === "PluralReaderSelector") {
|
|
839
|
+
const selector = fragmentSelector;
|
|
840
|
+
parentVariables = selector.selectors[0]?.owner.variables ?? {};
|
|
841
|
+
fragmentVariables = selector.selectors[0]?.variables ?? {};
|
|
842
|
+
} else {
|
|
843
|
+
const selector = fragmentSelector;
|
|
844
|
+
parentVariables = selector.owner.variables;
|
|
845
|
+
fragmentVariables = selector.variables;
|
|
846
|
+
}
|
|
847
|
+
const refetchVariables = {
|
|
848
|
+
...parentVariables,
|
|
849
|
+
...fragmentVariables,
|
|
850
|
+
...providedRefetchVariables
|
|
851
|
+
};
|
|
852
|
+
if (identifierInfo != null && !Object.hasOwn(providedRefetchVariables, identifierInfo.identifierQueryVariableName)) {
|
|
853
|
+
if (typeof identifierValue !== "string") console.warn(`Relay: Expected result to have a string \`${identifierInfo.identifierField}\` in order to refetch, got \`${String(identifierValue)}\`. `);
|
|
854
|
+
refetchVariables[identifierInfo.identifierQueryVariableName] = identifierValue;
|
|
855
|
+
}
|
|
856
|
+
const refetchQuery = createOperationDescriptor$1(refetchableRequest, refetchVariables, { force: true });
|
|
857
|
+
batch(() => {
|
|
858
|
+
loadQuery(refetchQuery.request.variables, {
|
|
859
|
+
fetchPolicy,
|
|
860
|
+
__environment: state().refetchEnvironment
|
|
861
|
+
});
|
|
862
|
+
refetch({
|
|
863
|
+
fetchPolicy,
|
|
864
|
+
onComplete,
|
|
865
|
+
refetchEnvironment: state().refetchEnvironment,
|
|
866
|
+
refetchQuery
|
|
867
|
+
});
|
|
868
|
+
});
|
|
869
|
+
return { dispose: disposeQuery };
|
|
870
|
+
}
|
|
871
|
+
};
|
|
872
|
+
}
|
|
873
|
+
var { __internal: __internal$1, createOperationDescriptor, getFragment, getFragmentIdentifier, getPaginationMetadata, getPaginationVariables, getRefetchMetadata, getSelector } = import_relay_runtime.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime.default;
|
|
874
|
+
function createPaginationFragment(fragment, key) {
|
|
875
|
+
const fragmentNode = getFragment(fragment);
|
|
876
|
+
const componentDisplayName = "createPaginationFragment()";
|
|
877
|
+
const { connectionPathInFragmentData, paginationRequest, paginationMetadata } = getPaginationMetadata(fragmentNode, componentDisplayName);
|
|
878
|
+
const { fragmentData, fragmentRef, refetch } = createRefetchableFragmentInternal(fragment, key, componentDisplayName);
|
|
879
|
+
const fragmentIdentifier = createMemo(() => getFragmentIdentifier(fragmentNode, fragmentRef()));
|
|
880
|
+
const [loadPrevious, hasPrevious, isLoadingPrevious, disposeFetchPrevious] = createLoadMore({
|
|
881
|
+
direction: "backward",
|
|
882
|
+
fragmentNode,
|
|
883
|
+
fragmentRef,
|
|
884
|
+
fragmentIdentifier,
|
|
885
|
+
fragmentData,
|
|
886
|
+
connectionPathInFragmentData,
|
|
887
|
+
paginationRequest,
|
|
888
|
+
paginationMetadata,
|
|
889
|
+
componentDisplayName
|
|
890
|
+
});
|
|
891
|
+
const [loadNext, hasNext, isLoadingNext, disposeFetchNext] = createLoadMore({
|
|
892
|
+
direction: "forward",
|
|
893
|
+
fragmentNode,
|
|
894
|
+
fragmentRef,
|
|
895
|
+
fragmentIdentifier,
|
|
896
|
+
fragmentData,
|
|
897
|
+
connectionPathInFragmentData,
|
|
898
|
+
paginationRequest,
|
|
899
|
+
paginationMetadata,
|
|
900
|
+
componentDisplayName
|
|
901
|
+
});
|
|
902
|
+
const refetchPagination = (variables, options) => {
|
|
903
|
+
disposeFetchNext();
|
|
904
|
+
disposeFetchPrevious();
|
|
905
|
+
return refetch(variables, options);
|
|
906
|
+
};
|
|
907
|
+
Object.defineProperties(fragmentData, {
|
|
908
|
+
loadNext: { value: loadNext },
|
|
909
|
+
loadPrevious: { value: loadPrevious },
|
|
910
|
+
hasNext: { get: hasNext },
|
|
911
|
+
hasPrevious: { get: hasPrevious },
|
|
912
|
+
isLoadingNext: { get: isLoadingNext },
|
|
913
|
+
isLoadingPrevious: { get: isLoadingPrevious },
|
|
914
|
+
refetch: { value: refetchPagination }
|
|
915
|
+
});
|
|
916
|
+
return fragmentData;
|
|
917
|
+
}
|
|
918
|
+
function createLoadMore({ direction, fragmentNode, fragmentRef, fragmentIdentifier, fragmentData, connectionPathInFragmentData, paginationRequest, paginationMetadata, componentDisplayName }) {
|
|
919
|
+
const environment = useRelayEnvironment();
|
|
920
|
+
const [isLoadingMore, reallySetIsLoadingMore] = createSignal(false);
|
|
921
|
+
const setIsLoadingMore = (value) => {
|
|
922
|
+
const schedule = untrack(environment).getScheduler()?.schedule;
|
|
923
|
+
if (schedule) schedule(() => {
|
|
924
|
+
reallySetIsLoadingMore(value);
|
|
925
|
+
});
|
|
926
|
+
else reallySetIsLoadingMore(value);
|
|
927
|
+
};
|
|
928
|
+
const { isFetching, startFetch, disposeFetch, completeFetch } = createFetchTracker();
|
|
929
|
+
const { identifierInfo } = getRefetchMetadata(fragmentNode, componentDisplayName);
|
|
930
|
+
const identifierValue = createMemo(() => identifierInfo?.identifierField != null && fragmentData.latest != null ? fragmentData.latest[identifierInfo.identifierField] : null);
|
|
931
|
+
const isMounted = useIsMounted();
|
|
932
|
+
const [mirroredEnvironment, setMirroredEnvironment] = createSignal(environment());
|
|
933
|
+
const [mirroredFragmentIdentifier, setMirroredFragmentIdentifier] = createSignal(fragmentIdentifier());
|
|
934
|
+
const isParentQueryActive = useIsOperationNodeActive(fragmentNode, fragmentRef);
|
|
935
|
+
const shouldReset = createMemo(() => environment() !== mirroredEnvironment() || fragmentIdentifier() !== mirroredFragmentIdentifier());
|
|
936
|
+
createEffect(() => {
|
|
937
|
+
if (shouldReset()) batch(() => {
|
|
938
|
+
disposeFetch();
|
|
939
|
+
setIsLoadingMore(false);
|
|
940
|
+
setMirroredEnvironment(untrack(environment));
|
|
941
|
+
setMirroredFragmentIdentifier(untrack(fragmentIdentifier));
|
|
942
|
+
});
|
|
943
|
+
});
|
|
944
|
+
const connectionState = createMemo(() => getConnectionState(direction, fragmentNode, fragmentData.latest, connectionPathInFragmentData));
|
|
945
|
+
const isRequestInvalid = createMemo(() => fragmentData.latest == null || isParentQueryActive());
|
|
946
|
+
return [
|
|
947
|
+
(count, options) => {
|
|
948
|
+
if (!untrack(isMounted)) {
|
|
949
|
+
console.warn(`Relay: Unexpected fetch on unmounted component for fragment \`${fragmentNode.name}\` in \`${componentDisplayName}\`. It looks like some instances of your component are still trying to fetch data but they already unmounted. Please make sure you clear all timers, intervals, async calls, etc that may trigger a fetch.`);
|
|
950
|
+
return { dispose: () => {} };
|
|
951
|
+
}
|
|
952
|
+
const fragmentSelector = getSelector(fragmentNode, untrack(fragmentRef));
|
|
953
|
+
if (untrack(isFetching) || untrack(isRequestInvalid)) {
|
|
954
|
+
if (fragmentSelector == null) console.warn(`Relay: Unexpected fetch while using a null fragment ref for fragment \`${fragmentNode.name}\` in \`${componentDisplayName}\`. When fetching more items, we expect initial fragment data to be non-null. Please make sure you're passing a valid fragment ref to \`${componentDisplayName}\` before paginating.`);
|
|
955
|
+
options?.onComplete?.(null);
|
|
956
|
+
return { dispose: () => {} };
|
|
957
|
+
}
|
|
958
|
+
invariant(fragmentSelector != null && fragmentSelector.kind !== "PluralReaderSelector", `Relay: Expected to be able to find a non-plural fragment owner for fragment \`${fragmentNode.name}\` when using \`${componentDisplayName}\`. If you're seeing this, this is likely a bug in Relay.`);
|
|
959
|
+
const selector = fragmentSelector;
|
|
960
|
+
const parentVariables = selector.owner.variables;
|
|
961
|
+
const fragmentVariables = selector.variables;
|
|
962
|
+
const baseVariables = {
|
|
963
|
+
...parentVariables,
|
|
964
|
+
...fragmentVariables
|
|
965
|
+
};
|
|
966
|
+
const paginationVariables = getPaginationVariables(direction, count, untrack(connectionState).cursor, baseVariables, {}, paginationMetadata);
|
|
967
|
+
if (identifierInfo != null) {
|
|
968
|
+
const value = untrack(identifierValue);
|
|
969
|
+
if (typeof value !== "string") console.warn(`Relay: Expected result to have a string \`${identifierInfo.identifierField}\` in order to refetch, got \`${String(value)}\`.`);
|
|
970
|
+
paginationVariables[identifierInfo.identifierQueryVariableName] = value;
|
|
971
|
+
}
|
|
972
|
+
const paginationQuery = createOperationDescriptor(paginationRequest, paginationVariables, { force: true });
|
|
973
|
+
__internal$1.fetchQuery(untrack(environment), paginationQuery).subscribe({
|
|
974
|
+
start(subscription) {
|
|
975
|
+
startFetch(subscription);
|
|
976
|
+
setIsLoadingMore(true);
|
|
977
|
+
},
|
|
978
|
+
complete() {
|
|
979
|
+
completeFetch();
|
|
980
|
+
setIsLoadingMore(false);
|
|
981
|
+
options?.onComplete?.(null);
|
|
982
|
+
},
|
|
983
|
+
error(error) {
|
|
984
|
+
completeFetch();
|
|
985
|
+
setIsLoadingMore(false);
|
|
986
|
+
options?.onComplete?.(error);
|
|
987
|
+
},
|
|
988
|
+
unsubscribe() {
|
|
989
|
+
setIsLoadingMore(false);
|
|
990
|
+
}
|
|
991
|
+
});
|
|
992
|
+
return { dispose: disposeFetch };
|
|
993
|
+
},
|
|
994
|
+
() => connectionState().hasMore,
|
|
995
|
+
isLoadingMore,
|
|
996
|
+
disposeFetch
|
|
997
|
+
];
|
|
998
|
+
}
|
|
999
|
+
var { __internal, getRequest } = import_relay_runtime.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime.default;
|
|
1000
|
+
function createPreloadedQuery(query, preloadedQuery) {
|
|
1001
|
+
const environment = useRelayEnvironment();
|
|
1002
|
+
const [maybePreloaded] = createResource(() => access(preloadedQuery), (v) => v);
|
|
1003
|
+
const operation = createMemoOperationDescriptor(query, () => maybePreloaded.latest?.variables, () => maybePreloaded.latest?.networkCacheConfig ?? void 0);
|
|
1004
|
+
createEffect(() => {
|
|
1005
|
+
const preloaded = maybePreloaded.latest;
|
|
1006
|
+
if (preloaded) onCleanup(() => {
|
|
1007
|
+
preloaded.controls?.value.dispose();
|
|
1008
|
+
});
|
|
1009
|
+
});
|
|
1010
|
+
return createLazyLoadQueryInternal({
|
|
1011
|
+
query: operation,
|
|
1012
|
+
fragment: () => getRequest(query).fragment,
|
|
1013
|
+
fetchKey: () => maybePreloaded.latest?.fetchKey,
|
|
1014
|
+
fetchPolicy: () => maybePreloaded.latest?.fetchPolicy,
|
|
1015
|
+
fetchObservable: () => {
|
|
1016
|
+
const preloaded = maybePreloaded.latest;
|
|
1017
|
+
const op = operation();
|
|
1018
|
+
if (!preloaded || !op) return;
|
|
1019
|
+
invariant(preloaded.controls == null || !preloaded.controls?.value.isDisposed(), "usePreloadedQuery(): Expected preloadedQuery to not be disposed yet. This is because disposing the query marks it for future garbage collection, and as such query results may no longer be present in the Relay store.");
|
|
1020
|
+
const fallback = __internal.fetchQuery(environment(), op);
|
|
1021
|
+
if (preloaded.controls?.value.source == null) return fallback;
|
|
1022
|
+
invariant(preloaded.controls == null || environment() === preloaded.controls.value.environment, "usePreloadedQuery(): usePreloadedQuery was passed a preloaded query that was created with a different environment than the one that is currently in context.");
|
|
1023
|
+
return preloaded.controls.value.source.ifEmpty(fallback);
|
|
1024
|
+
}
|
|
1025
|
+
});
|
|
1026
|
+
}
|
|
1027
|
+
var { requestSubscription } = import_relay_runtime.default?.default?.__esModule ? import_relay_runtime.default.default : import_relay_runtime.default;
|
|
1028
|
+
//#endregion
|
|
1029
|
+
export { createPaginationFragment as a, useRelayEnvironment as c, createMutation as i, createFragment as n, createPreloadedQuery as o, createLazyLoadQuery as r, loadQuery as s, RelayEnvironmentProvider as t };
|