@graphitation/apollo-react-relay-duct-tape 0.7.3 → 1.0.0-alpha.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/CHANGELOG.md +13 -2
- package/README.md +122 -0
- package/graphitation-apollo-react-relay-duct-tape-0.5.0-store-observation.8.tgz +0 -0
- package/lib/convertFetchPolicy.d.ts +9 -0
- package/lib/convertFetchPolicy.d.ts.map +1 -0
- package/lib/convertFetchPolicy.js +20 -0
- package/lib/convertFetchPolicy.js.map +7 -0
- package/lib/convertFetchPolicy.mjs +14 -0
- package/lib/convertFetchPolicy.mjs.map +7 -0
- package/lib/hooks.d.ts +15 -5
- package/lib/hooks.d.ts.map +1 -1
- package/lib/hooks.js +28 -3
- package/lib/hooks.js.map +7 -0
- package/lib/hooks.mjs +33 -3
- package/lib/hooks.mjs.map +7 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +7 -0
- package/lib/index.mjs +1 -0
- package/lib/index.mjs.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.d.ts +18 -0
- package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.d.ts.map +1 -0
- package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.js +4 -0
- package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.js.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.mjs +0 -0
- package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment.graphql.mjs.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.d.ts +17 -0
- package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.d.ts.map +1 -0
- package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.js +654 -0
- package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.js.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.mjs +647 -0
- package/lib/storeObservation/__generated__/compiledHooks_BackwardPaginationFragment_PaginationQuery.graphql.mjs.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.d.ts +11 -0
- package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.d.ts.map +1 -0
- package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.js +4 -0
- package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.js.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.mjs +0 -0
- package/lib/storeObservation/__generated__/compiledHooks_ChildFragment.graphql.mjs.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.d.ts +2 -0
- package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.d.ts.map +1 -0
- package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.js +173 -0
- package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.js.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.mjs +166 -0
- package/lib/storeObservation/__generated__/compiledHooks_ChildWatchNodeQuery.graphql.mjs.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.d.ts +21 -0
- package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.d.ts.map +1 -0
- package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.js +4 -0
- package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.js.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.mjs +0 -0
- package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment.graphql.mjs.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.d.ts +20 -0
- package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.d.ts.map +1 -0
- package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.js +1059 -0
- package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.js.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.mjs +1052 -0
- package/lib/storeObservation/__generated__/compiledHooks_ForwardPaginationFragment_PaginationQuery.graphql.mjs.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.d.ts +13 -0
- package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.d.ts.map +1 -0
- package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.js +4 -0
- package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.js.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.mjs +0 -0
- package/lib/storeObservation/__generated__/compiledHooks_QueryTypeFragment.graphql.mjs.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.d.ts +2 -0
- package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.d.ts.map +1 -0
- package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.js +98 -0
- package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.js.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.mjs +91 -0
- package/lib/storeObservation/__generated__/compiledHooks_QueryTypeWatchNodeQuery.graphql.mjs.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.d.ts +13 -0
- package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.d.ts.map +1 -0
- package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.js +4 -0
- package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.js.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.mjs +0 -0
- package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment.graphql.mjs.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.d.ts +16 -0
- package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.d.ts.map +1 -0
- package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.js +381 -0
- package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.js.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.mjs +374 -0
- package/lib/storeObservation/__generated__/compiledHooks_RefetchableFragment_RefetchQuery.graphql.mjs.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.d.ts +20 -0
- package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.d.ts.map +1 -0
- package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.js +871 -0
- package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.js.map +7 -0
- package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.mjs +864 -0
- package/lib/storeObservation/__generated__/compiledHooks_Root_executionQuery.graphql.mjs.map +7 -0
- package/lib/storeObservation/compiledHooks/index.d.ts +7 -0
- package/lib/storeObservation/compiledHooks/index.d.ts.map +1 -0
- package/lib/storeObservation/compiledHooks/index.js +33 -0
- package/lib/storeObservation/compiledHooks/index.js.map +7 -0
- package/lib/storeObservation/compiledHooks/index.mjs +11 -0
- package/lib/storeObservation/compiledHooks/index.mjs.map +7 -0
- package/lib/storeObservation/compiledHooks/types.d.ts +15 -0
- package/lib/storeObservation/compiledHooks/types.d.ts.map +1 -0
- package/lib/storeObservation/compiledHooks/types.js +3 -0
- package/lib/storeObservation/compiledHooks/types.js.map +7 -0
- package/lib/storeObservation/compiledHooks/types.mjs +0 -0
- package/lib/storeObservation/compiledHooks/types.mjs.map +7 -0
- package/lib/storeObservation/compiledHooks/useCompiledFragment.d.ts +9 -0
- package/lib/storeObservation/compiledHooks/useCompiledFragment.d.ts.map +1 -0
- package/lib/storeObservation/compiledHooks/useCompiledFragment.js +80 -0
- package/lib/storeObservation/compiledHooks/useCompiledFragment.js.map +7 -0
- package/lib/storeObservation/compiledHooks/useCompiledFragment.mjs +61 -0
- package/lib/storeObservation/compiledHooks/useCompiledFragment.mjs.map +7 -0
- package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.d.ts +16 -0
- package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.d.ts.map +1 -0
- package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.js +92 -0
- package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.js.map +7 -0
- package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.mjs +73 -0
- package/lib/storeObservation/compiledHooks/useCompiledLazyLoadQuery.mjs.map +7 -0
- package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.d.ts +15 -0
- package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.d.ts.map +1 -0
- package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.js +176 -0
- package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.js.map +7 -0
- package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.mjs +157 -0
- package/lib/storeObservation/compiledHooks/useCompiledPaginationFragment.mjs.map +7 -0
- package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.d.ts +23 -0
- package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.d.ts.map +1 -0
- package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.js +131 -0
- package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.js.map +7 -0
- package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.mjs +112 -0
- package/lib/storeObservation/compiledHooks/useCompiledRefetchableFragment.mjs.map +7 -0
- package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.d.ts +12 -0
- package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.d.ts.map +1 -0
- package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.js +37 -0
- package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.js.map +7 -0
- package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.mjs +15 -0
- package/lib/storeObservation/compiledHooks/useDeepCompareMemoize.mjs.map +7 -0
- package/lib/storeObservation/compiledHooks/useForceUpdate.d.ts +3 -0
- package/lib/storeObservation/compiledHooks/useForceUpdate.d.ts.map +1 -0
- package/lib/storeObservation/compiledHooks/useForceUpdate.js +31 -0
- package/lib/storeObservation/compiledHooks/useForceUpdate.js.map +7 -0
- package/lib/storeObservation/compiledHooks/useForceUpdate.mjs +9 -0
- package/lib/storeObservation/compiledHooks/useForceUpdate.mjs.map +7 -0
- package/lib/storeObservation/compiledHooks.test.d.ts +2 -0
- package/lib/storeObservation/compiledHooks.test.d.ts.map +1 -0
- package/lib/storeObservation/compiledHooks.test.js +945 -0
- package/lib/storeObservation/compiledHooks.test.js.map +7 -0
- package/lib/storeObservation/compiledHooks.test.mjs +947 -0
- package/lib/storeObservation/compiledHooks.test.mjs.map +7 -0
- package/lib/storeObservation/createImportDocumentsTransform.d.ts +9 -0
- package/lib/storeObservation/createImportDocumentsTransform.d.ts.map +1 -0
- package/lib/storeObservation/createImportDocumentsTransform.js +107 -0
- package/lib/storeObservation/createImportDocumentsTransform.js.map +7 -0
- package/lib/storeObservation/createImportDocumentsTransform.mjs +99 -0
- package/lib/storeObservation/createImportDocumentsTransform.mjs.map +7 -0
- package/lib/storeObservation/createImportDocumentsTransform.test.d.ts +2 -0
- package/lib/storeObservation/createImportDocumentsTransform.test.d.ts.map +1 -0
- package/lib/storeObservation/createImportDocumentsTransform.test.js +62 -0
- package/lib/storeObservation/createImportDocumentsTransform.test.js.map +7 -0
- package/lib/storeObservation/createImportDocumentsTransform.test.mjs +50 -0
- package/lib/storeObservation/createImportDocumentsTransform.test.mjs.map +7 -0
- package/lib/storeObservation/fragmentReferencesFieldPolicy.d.ts +3 -0
- package/lib/storeObservation/fragmentReferencesFieldPolicy.d.ts.map +1 -0
- package/lib/storeObservation/fragmentReferencesFieldPolicy.js +13 -0
- package/lib/storeObservation/fragmentReferencesFieldPolicy.js.map +7 -0
- package/lib/storeObservation/fragmentReferencesFieldPolicy.mjs +7 -0
- package/lib/storeObservation/fragmentReferencesFieldPolicy.mjs.map +7 -0
- package/lib/storeObservation/fragmentReferencesFieldPolicy.test.d.ts +2 -0
- package/lib/storeObservation/fragmentReferencesFieldPolicy.test.d.ts.map +1 -0
- package/lib/storeObservation/fragmentReferencesFieldPolicy.test.js +123 -0
- package/lib/storeObservation/fragmentReferencesFieldPolicy.test.js.map +7 -0
- package/lib/storeObservation/fragmentReferencesFieldPolicy.test.mjs +109 -0
- package/lib/storeObservation/fragmentReferencesFieldPolicy.test.mjs.map +7 -0
- package/lib/storeObservation/index.d.ts +5 -0
- package/lib/storeObservation/index.d.ts.map +1 -0
- package/lib/storeObservation/index.js +23 -0
- package/lib/storeObservation/index.js.map +7 -0
- package/lib/storeObservation/index.mjs +5 -0
- package/lib/storeObservation/index.mjs.map +7 -0
- package/lib/storeObservation/nodeFromCacheFieldPolicy.d.ts +9 -0
- package/lib/storeObservation/nodeFromCacheFieldPolicy.d.ts.map +1 -0
- package/lib/storeObservation/nodeFromCacheFieldPolicy.js +48 -0
- package/lib/storeObservation/nodeFromCacheFieldPolicy.js.map +7 -0
- package/lib/storeObservation/nodeFromCacheFieldPolicy.mjs +26 -0
- package/lib/storeObservation/nodeFromCacheFieldPolicy.mjs.map +7 -0
- package/lib/storeObservation/nodeFromCacheFieldPolicy.test.d.ts +2 -0
- package/lib/storeObservation/nodeFromCacheFieldPolicy.test.d.ts.map +1 -0
- package/lib/storeObservation/nodeFromCacheFieldPolicy.test.js +112 -0
- package/lib/storeObservation/nodeFromCacheFieldPolicy.test.js.map +7 -0
- package/lib/storeObservation/nodeFromCacheFieldPolicy.test.mjs +96 -0
- package/lib/storeObservation/nodeFromCacheFieldPolicy.test.mjs.map +7 -0
- package/lib/storeObservation/shallowCompareFragmentReferences.d.ts +23 -0
- package/lib/storeObservation/shallowCompareFragmentReferences.d.ts.map +1 -0
- package/lib/storeObservation/shallowCompareFragmentReferences.js +50 -0
- package/lib/storeObservation/shallowCompareFragmentReferences.js.map +7 -0
- package/lib/storeObservation/shallowCompareFragmentReferences.mjs +28 -0
- package/lib/storeObservation/shallowCompareFragmentReferences.mjs.map +7 -0
- package/lib/storeObservation/typePolicies.d.ts +3 -0
- package/lib/storeObservation/typePolicies.d.ts.map +1 -0
- package/lib/storeObservation/typePolicies.js +47 -0
- package/lib/storeObservation/typePolicies.js.map +7 -0
- package/lib/storeObservation/typePolicies.mjs +25 -0
- package/lib/storeObservation/typePolicies.mjs.map +7 -0
- package/lib/types.d.ts +8 -0
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +7 -0
- package/lib/types.mjs.map +7 -0
- package/package.json +23 -18
- package/.eslintcache +0 -1
- package/CHANGELOG.json +0 -405
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {enumerable: true, configurable: true, writable: true, value}) : obj[key] = value;
|
|
10
|
+
var __objSpread = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
22
|
+
var __reExport = (target, module2, desc) => {
|
|
23
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
24
|
+
for (let key of __getOwnPropNames(module2))
|
|
25
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
26
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
27
|
+
}
|
|
28
|
+
return target;
|
|
29
|
+
};
|
|
30
|
+
var __toModule = (module2) => {
|
|
31
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
|
|
32
|
+
};
|
|
33
|
+
var __async = (__this, __arguments, generator) => {
|
|
34
|
+
return new Promise((resolve, reject) => {
|
|
35
|
+
var fulfilled = (value) => {
|
|
36
|
+
try {
|
|
37
|
+
step(generator.next(value));
|
|
38
|
+
} catch (e) {
|
|
39
|
+
reject(e);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
var rejected = (value) => {
|
|
43
|
+
try {
|
|
44
|
+
step(generator.throw(value));
|
|
45
|
+
} catch (e) {
|
|
46
|
+
reject(e);
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
50
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
51
|
+
});
|
|
52
|
+
};
|
|
53
|
+
var import_fragmentReferencesFieldPolicy = __toModule(require("./fragmentReferencesFieldPolicy"));
|
|
54
|
+
var import_graphql_js_tag = __toModule(require("@graphitation/graphql-js-tag"));
|
|
55
|
+
var import_client = __toModule(require("@apollo/client"));
|
|
56
|
+
describe(import_fragmentReferencesFieldPolicy.fragmentReferencesFieldPolicy, () => {
|
|
57
|
+
let client;
|
|
58
|
+
beforeAll(() => {
|
|
59
|
+
client = new import_client.ApolloClient({
|
|
60
|
+
cache: new import_client.InMemoryCache({
|
|
61
|
+
possibleTypes: {
|
|
62
|
+
Node: ["User"]
|
|
63
|
+
},
|
|
64
|
+
typePolicies: {
|
|
65
|
+
Node: {
|
|
66
|
+
fields: {
|
|
67
|
+
__fragments: {
|
|
68
|
+
read: import_fragmentReferencesFieldPolicy.fragmentReferencesFieldPolicy
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
})
|
|
74
|
+
});
|
|
75
|
+
client.writeQuery({
|
|
76
|
+
query: import_graphql_js_tag.graphql`
|
|
77
|
+
query {
|
|
78
|
+
user(id: 42) {
|
|
79
|
+
id
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
`,
|
|
83
|
+
data: {
|
|
84
|
+
user: {
|
|
85
|
+
__typename: "User",
|
|
86
|
+
id: 42
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
it("returns the request variables for the fragment references sentinel field", () => __async(void 0, null, function* () {
|
|
92
|
+
const variables = {userId: 42};
|
|
93
|
+
const result = yield client.query({
|
|
94
|
+
query: import_graphql_js_tag.graphql`
|
|
95
|
+
query TestQuery($userId: ID!) {
|
|
96
|
+
user(id: $userId) {
|
|
97
|
+
... on Node {
|
|
98
|
+
__fragments @client
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
`,
|
|
103
|
+
variables
|
|
104
|
+
});
|
|
105
|
+
expect(result.data.user.__fragments).toEqual(variables);
|
|
106
|
+
}));
|
|
107
|
+
it("passes on the original request variables", () => __async(void 0, null, function* () {
|
|
108
|
+
const variables = {userId: 42};
|
|
109
|
+
const result = yield client.query({
|
|
110
|
+
query: import_graphql_js_tag.graphql`
|
|
111
|
+
query TestQuery($userId: ID!) {
|
|
112
|
+
user(id: $userId) {
|
|
113
|
+
... on Node {
|
|
114
|
+
__fragments @client
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
`,
|
|
119
|
+
variables: __objSpread(__objSpread({}, variables), {__fragments: variables})
|
|
120
|
+
});
|
|
121
|
+
expect(result.data.user.__fragments).toEqual(variables);
|
|
122
|
+
}));
|
|
123
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/storeObservation/fragmentReferencesFieldPolicy.test.ts"],
|
|
4
|
+
"sourcesContent": ["import { fragmentReferencesFieldPolicy } from \"./fragmentReferencesFieldPolicy\";\nimport { graphql } from \"@graphitation/graphql-js-tag\";\nimport { ApolloClient, InMemoryCache } from \"@apollo/client\";\n\ndescribe(fragmentReferencesFieldPolicy, () => {\n let client: ApolloClient<any>;\n\n beforeAll(() => {\n client = new ApolloClient({\n cache: new InMemoryCache({\n possibleTypes: {\n Node: [\"User\"],\n },\n typePolicies: {\n Node: {\n fields: {\n __fragments: {\n read: fragmentReferencesFieldPolicy,\n },\n },\n },\n },\n }),\n });\n client.writeQuery({\n query: graphql`\n query {\n user(id: 42) {\n id\n }\n }\n `,\n data: {\n user: {\n __typename: \"User\",\n id: 42,\n },\n },\n });\n });\n\n it(\"returns the request variables for the fragment references sentinel field\", async () => {\n const variables = { userId: 42 };\n\n const result = await client.query({\n query: graphql`\n query TestQuery($userId: ID!) {\n user(id: $userId) {\n ... on Node {\n __fragments @client\n }\n }\n }\n `,\n variables,\n });\n\n expect(result.data.user.__fragments).toEqual(variables);\n });\n\n it(\"passes on the original request variables\", async () => {\n const variables = { userId: 42 };\n\n const result = await client.query({\n query: graphql`\n query TestQuery($userId: ID!) {\n user(id: $userId) {\n ... on Node {\n __fragments @client\n }\n }\n }\n `,\n variables: { ...variables, __fragments: variables },\n });\n\n expect(result.data.user.__fragments).toEqual(variables);\n });\n});\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA8C;AAC9C,4BAAwB;AACxB,oBAA4C;AAE5C,SAAS,oEAA+B,MAAM;AAC5C,MAAI;AAEJ,YAAU,MAAM;AACd,aAAS,IAAI,2BAAa;AAAA,MACxB,OAAO,IAAI,4BAAc;AAAA,QACvB,eAAe;AAAA,UACb,MAAM,CAAC;AAAA;AAAA,QAET,cAAc;AAAA,UACZ,MAAM;AAAA,YACJ,QAAQ;AAAA,cACN,aAAa;AAAA,gBACX,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOlB,WAAO,WAAW;AAAA,MAChB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOP,MAAM;AAAA,QACJ,MAAM;AAAA,UACJ,YAAY;AAAA,UACZ,IAAI;AAAA;AAAA;AAAA;AAAA;AAMZ,KAAG,4EAA4E,MAAY;AACzF,UAAM,YAAY,CAAE,QAAQ;AAE5B,UAAM,SAAS,MAAM,OAAO,MAAM;AAAA,MAChC,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASP;AAAA;AAGF,WAAO,OAAO,KAAK,KAAK,aAAa,QAAQ;AAAA;AAG/C,KAAG,4CAA4C,MAAY;AACzD,UAAM,YAAY,CAAE,QAAQ;AAE5B,UAAM,SAAS,MAAM,OAAO,MAAM;AAAA,MAChC,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASP,WAAW,4BAAK,YAAL,CAAgB,aAAa;AAAA;AAG1C,WAAO,OAAO,KAAK,KAAK,aAAa,QAAQ;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
3
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
4
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {enumerable: true, configurable: true, writable: true, value}) : obj[key] = value;
|
|
6
|
+
var __objSpread = (a, b) => {
|
|
7
|
+
for (var prop in b || (b = {}))
|
|
8
|
+
if (__hasOwnProp.call(b, prop))
|
|
9
|
+
__defNormalProp(a, prop, b[prop]);
|
|
10
|
+
if (__getOwnPropSymbols)
|
|
11
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
+
if (__propIsEnum.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
}
|
|
15
|
+
return a;
|
|
16
|
+
};
|
|
17
|
+
var __async = (__this, __arguments, generator) => {
|
|
18
|
+
return new Promise((resolve, reject) => {
|
|
19
|
+
var fulfilled = (value) => {
|
|
20
|
+
try {
|
|
21
|
+
step(generator.next(value));
|
|
22
|
+
} catch (e) {
|
|
23
|
+
reject(e);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
var rejected = (value) => {
|
|
27
|
+
try {
|
|
28
|
+
step(generator.throw(value));
|
|
29
|
+
} catch (e) {
|
|
30
|
+
reject(e);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
34
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
// src/storeObservation/fragmentReferencesFieldPolicy.test.ts
|
|
39
|
+
import {fragmentReferencesFieldPolicy} from "./fragmentReferencesFieldPolicy.mjs";
|
|
40
|
+
import {graphql} from "@graphitation/graphql-js-tag";
|
|
41
|
+
import {ApolloClient, InMemoryCache} from "@apollo/client";
|
|
42
|
+
describe(fragmentReferencesFieldPolicy, () => {
|
|
43
|
+
let client;
|
|
44
|
+
beforeAll(() => {
|
|
45
|
+
client = new ApolloClient({
|
|
46
|
+
cache: new InMemoryCache({
|
|
47
|
+
possibleTypes: {
|
|
48
|
+
Node: ["User"]
|
|
49
|
+
},
|
|
50
|
+
typePolicies: {
|
|
51
|
+
Node: {
|
|
52
|
+
fields: {
|
|
53
|
+
__fragments: {
|
|
54
|
+
read: fragmentReferencesFieldPolicy
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
})
|
|
60
|
+
});
|
|
61
|
+
client.writeQuery({
|
|
62
|
+
query: graphql`
|
|
63
|
+
query {
|
|
64
|
+
user(id: 42) {
|
|
65
|
+
id
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
`,
|
|
69
|
+
data: {
|
|
70
|
+
user: {
|
|
71
|
+
__typename: "User",
|
|
72
|
+
id: 42
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
it("returns the request variables for the fragment references sentinel field", () => __async(void 0, null, function* () {
|
|
78
|
+
const variables = {userId: 42};
|
|
79
|
+
const result = yield client.query({
|
|
80
|
+
query: graphql`
|
|
81
|
+
query TestQuery($userId: ID!) {
|
|
82
|
+
user(id: $userId) {
|
|
83
|
+
... on Node {
|
|
84
|
+
__fragments @client
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
`,
|
|
89
|
+
variables
|
|
90
|
+
});
|
|
91
|
+
expect(result.data.user.__fragments).toEqual(variables);
|
|
92
|
+
}));
|
|
93
|
+
it("passes on the original request variables", () => __async(void 0, null, function* () {
|
|
94
|
+
const variables = {userId: 42};
|
|
95
|
+
const result = yield client.query({
|
|
96
|
+
query: graphql`
|
|
97
|
+
query TestQuery($userId: ID!) {
|
|
98
|
+
user(id: $userId) {
|
|
99
|
+
... on Node {
|
|
100
|
+
__fragments @client
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
`,
|
|
105
|
+
variables: __objSpread(__objSpread({}, variables), {__fragments: variables})
|
|
106
|
+
});
|
|
107
|
+
expect(result.data.user.__fragments).toEqual(variables);
|
|
108
|
+
}));
|
|
109
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/storeObservation/fragmentReferencesFieldPolicy.test.ts"],
|
|
4
|
+
"sourcesContent": ["import { fragmentReferencesFieldPolicy } from \"./fragmentReferencesFieldPolicy\";\nimport { graphql } from \"@graphitation/graphql-js-tag\";\nimport { ApolloClient, InMemoryCache } from \"@apollo/client\";\n\ndescribe(fragmentReferencesFieldPolicy, () => {\n let client: ApolloClient<any>;\n\n beforeAll(() => {\n client = new ApolloClient({\n cache: new InMemoryCache({\n possibleTypes: {\n Node: [\"User\"],\n },\n typePolicies: {\n Node: {\n fields: {\n __fragments: {\n read: fragmentReferencesFieldPolicy,\n },\n },\n },\n },\n }),\n });\n client.writeQuery({\n query: graphql`\n query {\n user(id: 42) {\n id\n }\n }\n `,\n data: {\n user: {\n __typename: \"User\",\n id: 42,\n },\n },\n });\n });\n\n it(\"returns the request variables for the fragment references sentinel field\", async () => {\n const variables = { userId: 42 };\n\n const result = await client.query({\n query: graphql`\n query TestQuery($userId: ID!) {\n user(id: $userId) {\n ... on Node {\n __fragments @client\n }\n }\n }\n `,\n variables,\n });\n\n expect(result.data.user.__fragments).toEqual(variables);\n });\n\n it(\"passes on the original request variables\", async () => {\n const variables = { userId: 42 };\n\n const result = await client.query({\n query: graphql`\n query TestQuery($userId: ID!) {\n user(id: $userId) {\n ... on Node {\n __fragments @client\n }\n }\n }\n `,\n variables: { ...variables, __fragments: variables },\n });\n\n expect(result.data.user.__fragments).toEqual(variables);\n });\n});\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AAEA,SAAS,+BAA+B,MAAM;AAC5C,MAAI;AAEJ,YAAU,MAAM;AACd,aAAS,IAAI,aAAa;AAAA,MACxB,OAAO,IAAI,cAAc;AAAA,QACvB,eAAe;AAAA,UACb,MAAM,CAAC;AAAA;AAAA,QAET,cAAc;AAAA,UACZ,MAAM;AAAA,YACJ,QAAQ;AAAA,cACN,aAAa;AAAA,gBACX,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOlB,WAAO,WAAW;AAAA,MAChB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAOP,MAAM;AAAA,QACJ,MAAM;AAAA,UACJ,YAAY;AAAA,UACZ,IAAI;AAAA;AAAA;AAAA;AAAA;AAMZ,KAAG,4EAA4E,MAAY;AACzF,UAAM,YAAY,CAAE,QAAQ;AAE5B,UAAM,SAAS,MAAM,OAAO,MAAM;AAAA,MAChC,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASP;AAAA;AAGF,WAAO,OAAO,KAAK,KAAK,aAAa,QAAQ;AAAA;AAG/C,KAAG,4CAA4C,MAAY;AACzD,UAAM,YAAY,CAAE,QAAQ;AAE5B,UAAM,SAAS,MAAM,OAAO,MAAM;AAAA,MAChC,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MASP,WAAW,4BAAK,YAAL,CAAgB,aAAa;AAAA;AAG1C,WAAO,OAAO,KAAK,KAAK,aAAa,QAAQ;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storeObservation/index.ts"],"names":[],"mappings":"AAEA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oCAAoC,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
8
|
+
var __reExport = (target, module2, desc) => {
|
|
9
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(module2))
|
|
11
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
12
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
13
|
+
}
|
|
14
|
+
return target;
|
|
15
|
+
};
|
|
16
|
+
var __toModule = (module2) => {
|
|
17
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
|
|
18
|
+
};
|
|
19
|
+
__markAsModule(exports);
|
|
20
|
+
__reExport(exports, __toModule(require("./nodeFromCacheFieldPolicy")));
|
|
21
|
+
__reExport(exports, __toModule(require("./fragmentReferencesFieldPolicy")));
|
|
22
|
+
__reExport(exports, __toModule(require("./typePolicies")));
|
|
23
|
+
__reExport(exports, __toModule(require("./shallowCompareFragmentReferences")));
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/storeObservation/index.ts"],
|
|
4
|
+
"sourcesContent": ["// NOTE: Because we use CommonJS [in TMP], exports are not tree shaken and thus we can't\n// export things here that should only be used in build-time tooling.\nexport * from \"./nodeFromCacheFieldPolicy\";\nexport * from \"./fragmentReferencesFieldPolicy\";\nexport * from \"./typePolicies\";\nexport * from \"./shallowCompareFragmentReferences\";\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAEA,oBAAc;AACd,oBAAc;AACd,oBAAc;AACd,oBAAc;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/storeObservation/index.ts"],
|
|
4
|
+
"sourcesContent": ["// NOTE: Because we use CommonJS [in TMP], exports are not tree shaken and thus we can't\n// export things here that should only be used in build-time tooling.\nexport * from \"./nodeFromCacheFieldPolicy\";\nexport * from \"./fragmentReferencesFieldPolicy\";\nexport * from \"./typePolicies\";\nexport * from \"./shallowCompareFragmentReferences\";\n"],
|
|
5
|
+
"mappings": ";AAEA;AACA;AACA;AACA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FieldReadFunction } from "@apollo/client";
|
|
2
|
+
/**
|
|
3
|
+
* Use this as the field policy function for the node root field, which is what
|
|
4
|
+
* gets invoked when using relay-compiler's refetch query. Queries that use a
|
|
5
|
+
* cache-only cache-policy will read the data from the store, which is expected
|
|
6
|
+
* to be populated by a different query beforehand.
|
|
7
|
+
*/
|
|
8
|
+
export declare const nodeFromCacheFieldPolicy: FieldReadFunction;
|
|
9
|
+
//# sourceMappingURL=nodeFromCacheFieldPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeFromCacheFieldPolicy.d.ts","sourceRoot":"","sources":["../../src/storeObservation/nodeFromCacheFieldPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAInD;;;;;GAKG;AACH,eAAO,MAAM,wBAAwB,EAAE,iBA6CtC,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, {get: all[name], enumerable: true});
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
16
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toModule = (module2) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
|
|
22
|
+
};
|
|
23
|
+
__markAsModule(exports);
|
|
24
|
+
__export(exports, {
|
|
25
|
+
nodeFromCacheFieldPolicy: () => nodeFromCacheFieldPolicy
|
|
26
|
+
});
|
|
27
|
+
var import_invariant = __toModule(require("invariant"));
|
|
28
|
+
const nodeFromCacheFieldPolicy = (_existingCacheData, options) => {
|
|
29
|
+
const nodeId = options.args.id;
|
|
30
|
+
(0, import_invariant.default)(nodeId, "Expected an `id` argument");
|
|
31
|
+
const fragmentNames = options.field.selectionSet.selections.filter((sel) => sel.kind === "FragmentSpread").map((fragmentSpreadNode) => fragmentSpreadNode.name.value);
|
|
32
|
+
(0, import_invariant.default)(fragmentNames.length === 1, "Expected a single fragment spread in the watch node query, instead got `%s`", fragmentNames.length);
|
|
33
|
+
const fragmentName = fragmentNames[0];
|
|
34
|
+
const fragment = options.query.definitions.find((defNode) => defNode.kind === "FragmentDefinition" && defNode.name.value === fragmentName);
|
|
35
|
+
(0, import_invariant.default)(fragment, "Expected document to contain a fragment by name `%s`", fragmentName);
|
|
36
|
+
const id = `${fragment.typeCondition.name.value}:${nodeId}`;
|
|
37
|
+
const data = options.cache.readFragment({
|
|
38
|
+
id,
|
|
39
|
+
variables: options.variables,
|
|
40
|
+
fragmentName,
|
|
41
|
+
fragment: {
|
|
42
|
+
kind: "Document",
|
|
43
|
+
definitions: options.query.definitions.filter((def) => def.kind === "FragmentDefinition")
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
(0, import_invariant.default)(data, "Expected to find cached data with id `%s`", id);
|
|
47
|
+
return data;
|
|
48
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/storeObservation/nodeFromCacheFieldPolicy.ts"],
|
|
4
|
+
"sourcesContent": ["import { FieldReadFunction } from \"@apollo/client\";\nimport { FragmentSpreadNode, FragmentDefinitionNode } from \"graphql\";\nimport invariant from \"invariant\";\n\n/**\n * Use this as the field policy function for the node root field, which is what\n * gets invoked when using relay-compiler's refetch query. Queries that use a\n * cache-only cache-policy will read the data from the store, which is expected\n * to be populated by a different query beforehand.\n */\nexport const nodeFromCacheFieldPolicy: FieldReadFunction = (\n _existingCacheData,\n options\n) => {\n const nodeId = options.args!.id;\n invariant(nodeId, \"Expected an `id` argument\");\n\n const fragmentNames = (options.field!.selectionSet!.selections.filter(\n (sel) => sel.kind === \"FragmentSpread\"\n ) as FragmentSpreadNode[]).map(\n (fragmentSpreadNode) => fragmentSpreadNode.name.value\n );\n invariant(\n fragmentNames.length === 1,\n \"Expected a single fragment spread in the watch node query, instead got `%s`\",\n fragmentNames.length\n );\n const fragmentName = fragmentNames[0];\n\n const fragment = options.query.definitions.find(\n (defNode) =>\n defNode.kind === \"FragmentDefinition\" &&\n defNode.name.value === fragmentName\n ) as FragmentDefinitionNode;\n invariant(\n fragment,\n \"Expected document to contain a fragment by name `%s`\",\n fragmentName\n );\n\n const id = `${fragment.typeCondition.name.value}:${nodeId}`;\n const data = options.cache.readFragment({\n id,\n variables: options.variables,\n fragmentName,\n fragment: {\n kind: \"Document\",\n definitions: options.query.definitions.filter(\n (def) => def.kind === \"FragmentDefinition\"\n ),\n },\n });\n invariant(data, \"Expected to find cached data with id `%s`\", id);\n\n return data;\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAEA,uBAAsB;AAQf,MAAM,2BAA8C,CACzD,oBACA,YACG;AACH,QAAM,SAAS,QAAQ,KAAM;AAC7B,gCAAU,QAAQ;AAElB,QAAM,gBAAiB,QAAQ,MAAO,aAAc,WAAW,OAC7D,CAAC,QAAQ,IAAI,SAAS,kBACG,IACzB,CAAC,uBAAuB,mBAAmB,KAAK;AAElD,gCACE,cAAc,WAAW,GACzB,+EACA,cAAc;AAEhB,QAAM,eAAe,cAAc;AAEnC,QAAM,WAAW,QAAQ,MAAM,YAAY,KACzC,CAAC,YACC,QAAQ,SAAS,wBACjB,QAAQ,KAAK,UAAU;AAE3B,gCACE,UACA,wDACA;AAGF,QAAM,KAAK,GAAG,SAAS,cAAc,KAAK,SAAS;AACnD,QAAM,OAAO,QAAQ,MAAM,aAAa;AAAA,IACtC;AAAA,IACA,WAAW,QAAQ;AAAA,IACnB;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,aAAa,QAAQ,MAAM,YAAY,OACrC,CAAC,QAAQ,IAAI,SAAS;AAAA;AAAA;AAI5B,gCAAU,MAAM,6CAA6C;AAE7D,SAAO;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// src/storeObservation/nodeFromCacheFieldPolicy.ts
|
|
2
|
+
import invariant from "invariant";
|
|
3
|
+
var nodeFromCacheFieldPolicy = (_existingCacheData, options) => {
|
|
4
|
+
const nodeId = options.args.id;
|
|
5
|
+
invariant(nodeId, "Expected an `id` argument");
|
|
6
|
+
const fragmentNames = options.field.selectionSet.selections.filter((sel) => sel.kind === "FragmentSpread").map((fragmentSpreadNode) => fragmentSpreadNode.name.value);
|
|
7
|
+
invariant(fragmentNames.length === 1, "Expected a single fragment spread in the watch node query, instead got `%s`", fragmentNames.length);
|
|
8
|
+
const fragmentName = fragmentNames[0];
|
|
9
|
+
const fragment = options.query.definitions.find((defNode) => defNode.kind === "FragmentDefinition" && defNode.name.value === fragmentName);
|
|
10
|
+
invariant(fragment, "Expected document to contain a fragment by name `%s`", fragmentName);
|
|
11
|
+
const id = `${fragment.typeCondition.name.value}:${nodeId}`;
|
|
12
|
+
const data = options.cache.readFragment({
|
|
13
|
+
id,
|
|
14
|
+
variables: options.variables,
|
|
15
|
+
fragmentName,
|
|
16
|
+
fragment: {
|
|
17
|
+
kind: "Document",
|
|
18
|
+
definitions: options.query.definitions.filter((def) => def.kind === "FragmentDefinition")
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
invariant(data, "Expected to find cached data with id `%s`", id);
|
|
22
|
+
return data;
|
|
23
|
+
};
|
|
24
|
+
export {
|
|
25
|
+
nodeFromCacheFieldPolicy
|
|
26
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/storeObservation/nodeFromCacheFieldPolicy.ts"],
|
|
4
|
+
"sourcesContent": ["import { FieldReadFunction } from \"@apollo/client\";\nimport { FragmentSpreadNode, FragmentDefinitionNode } from \"graphql\";\nimport invariant from \"invariant\";\n\n/**\n * Use this as the field policy function for the node root field, which is what\n * gets invoked when using relay-compiler's refetch query. Queries that use a\n * cache-only cache-policy will read the data from the store, which is expected\n * to be populated by a different query beforehand.\n */\nexport const nodeFromCacheFieldPolicy: FieldReadFunction = (\n _existingCacheData,\n options\n) => {\n const nodeId = options.args!.id;\n invariant(nodeId, \"Expected an `id` argument\");\n\n const fragmentNames = (options.field!.selectionSet!.selections.filter(\n (sel) => sel.kind === \"FragmentSpread\"\n ) as FragmentSpreadNode[]).map(\n (fragmentSpreadNode) => fragmentSpreadNode.name.value\n );\n invariant(\n fragmentNames.length === 1,\n \"Expected a single fragment spread in the watch node query, instead got `%s`\",\n fragmentNames.length\n );\n const fragmentName = fragmentNames[0];\n\n const fragment = options.query.definitions.find(\n (defNode) =>\n defNode.kind === \"FragmentDefinition\" &&\n defNode.name.value === fragmentName\n ) as FragmentDefinitionNode;\n invariant(\n fragment,\n \"Expected document to contain a fragment by name `%s`\",\n fragmentName\n );\n\n const id = `${fragment.typeCondition.name.value}:${nodeId}`;\n const data = options.cache.readFragment({\n id,\n variables: options.variables,\n fragmentName,\n fragment: {\n kind: \"Document\",\n definitions: options.query.definitions.filter(\n (def) => def.kind === \"FragmentDefinition\"\n ),\n },\n });\n invariant(data, \"Expected to find cached data with id `%s`\", id);\n\n return data;\n};\n"],
|
|
5
|
+
"mappings": ";AAEA;AAQO,IAAM,2BAA8C,CACzD,oBACA,YACG;AACH,QAAM,SAAS,QAAQ,KAAM;AAC7B,YAAU,QAAQ;AAElB,QAAM,gBAAiB,QAAQ,MAAO,aAAc,WAAW,OAC7D,CAAC,QAAQ,IAAI,SAAS,kBACG,IACzB,CAAC,uBAAuB,mBAAmB,KAAK;AAElD,YACE,cAAc,WAAW,GACzB,+EACA,cAAc;AAEhB,QAAM,eAAe,cAAc;AAEnC,QAAM,WAAW,QAAQ,MAAM,YAAY,KACzC,CAAC,YACC,QAAQ,SAAS,wBACjB,QAAQ,KAAK,UAAU;AAE3B,YACE,UACA,wDACA;AAGF,QAAM,KAAK,GAAG,SAAS,cAAc,KAAK,SAAS;AACnD,QAAM,OAAO,QAAQ,MAAM,aAAa;AAAA,IACtC;AAAA,IACA,WAAW,QAAQ;AAAA,IACnB;AAAA,IACA,UAAU;AAAA,MACR,MAAM;AAAA,MACN,aAAa,QAAQ,MAAM,YAAY,OACrC,CAAC,QAAQ,IAAI,SAAS;AAAA;AAAA;AAI5B,YAAU,MAAM,6CAA6C;AAE7D,SAAO;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeFromCacheFieldPolicy.test.d.ts","sourceRoot":"","sources":["../../src/storeObservation/nodeFromCacheFieldPolicy.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
|
|
8
|
+
var __reExport = (target, module2, desc) => {
|
|
9
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
10
|
+
for (let key of __getOwnPropNames(module2))
|
|
11
|
+
if (!__hasOwnProp.call(target, key) && key !== "default")
|
|
12
|
+
__defProp(target, key, {get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable});
|
|
13
|
+
}
|
|
14
|
+
return target;
|
|
15
|
+
};
|
|
16
|
+
var __toModule = (module2) => {
|
|
17
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", module2 && module2.__esModule && "default" in module2 ? {get: () => module2.default, enumerable: true} : {value: module2, enumerable: true})), module2);
|
|
18
|
+
};
|
|
19
|
+
var __async = (__this, __arguments, generator) => {
|
|
20
|
+
return new Promise((resolve, reject) => {
|
|
21
|
+
var fulfilled = (value) => {
|
|
22
|
+
try {
|
|
23
|
+
step(generator.next(value));
|
|
24
|
+
} catch (e) {
|
|
25
|
+
reject(e);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
var rejected = (value) => {
|
|
29
|
+
try {
|
|
30
|
+
step(generator.throw(value));
|
|
31
|
+
} catch (e) {
|
|
32
|
+
reject(e);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
36
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
var import_client = __toModule(require("@apollo/client"));
|
|
40
|
+
var import_graphql_js_tag = __toModule(require("@graphitation/graphql-js-tag"));
|
|
41
|
+
var import_nodeFromCacheFieldPolicy = __toModule(require("./nodeFromCacheFieldPolicy"));
|
|
42
|
+
const FRAGMENTS = import_graphql_js_tag.graphql`
|
|
43
|
+
fragment SomeFragment on SomeType {
|
|
44
|
+
__typename
|
|
45
|
+
id
|
|
46
|
+
name
|
|
47
|
+
anotherType {
|
|
48
|
+
...AnotherFragment
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
fragment AnotherFragment on AnotherType {
|
|
52
|
+
__typename
|
|
53
|
+
name
|
|
54
|
+
}
|
|
55
|
+
`;
|
|
56
|
+
const MOCK_DATA = {
|
|
57
|
+
__typename: "SomeType",
|
|
58
|
+
id: 42,
|
|
59
|
+
name: "something something",
|
|
60
|
+
anotherType: {
|
|
61
|
+
__typename: "AnotherType",
|
|
62
|
+
name: "another another"
|
|
63
|
+
}
|
|
64
|
+
};
|
|
65
|
+
describe(import_nodeFromCacheFieldPolicy.nodeFromCacheFieldPolicy, () => {
|
|
66
|
+
let client;
|
|
67
|
+
beforeAll(() => {
|
|
68
|
+
client = new import_client.ApolloClient({
|
|
69
|
+
cache: new import_client.InMemoryCache({
|
|
70
|
+
typePolicies: {
|
|
71
|
+
Query: {
|
|
72
|
+
fields: {
|
|
73
|
+
node: {
|
|
74
|
+
read: import_nodeFromCacheFieldPolicy.nodeFromCacheFieldPolicy
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
})
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
it("returns a subset of a query result set as if it were requested through the node root-field", () => __async(void 0, null, function* () {
|
|
83
|
+
client.writeQuery({
|
|
84
|
+
query: import_graphql_js_tag.graphql`
|
|
85
|
+
query FatQuery {
|
|
86
|
+
notTheNodeField {
|
|
87
|
+
yetAnotherField {
|
|
88
|
+
...SomeFragment
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
${FRAGMENTS}
|
|
93
|
+
`,
|
|
94
|
+
data: {
|
|
95
|
+
notTheNodeField: {
|
|
96
|
+
yetAnotherField: MOCK_DATA
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
const response = yield client.query({
|
|
101
|
+
query: import_graphql_js_tag.graphql`
|
|
102
|
+
query SingleNodeQuery {
|
|
103
|
+
node(id: 42) {
|
|
104
|
+
...SomeFragment
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
${FRAGMENTS}
|
|
108
|
+
`
|
|
109
|
+
});
|
|
110
|
+
expect(response.data.node).toMatchObject(MOCK_DATA);
|
|
111
|
+
}));
|
|
112
|
+
});
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/storeObservation/nodeFromCacheFieldPolicy.test.ts"],
|
|
4
|
+
"sourcesContent": ["import { ApolloClient, InMemoryCache } from \"@apollo/client\";\nimport { graphql } from \"@graphitation/graphql-js-tag\";\nimport { nodeFromCacheFieldPolicy } from \"./nodeFromCacheFieldPolicy\";\n\nconst FRAGMENTS = graphql`\n fragment SomeFragment on SomeType {\n __typename\n id\n name\n anotherType {\n ...AnotherFragment\n }\n }\n fragment AnotherFragment on AnotherType {\n __typename\n name\n }\n`;\n\nconst MOCK_DATA = {\n __typename: \"SomeType\",\n id: 42,\n name: \"something something\",\n anotherType: {\n __typename: \"AnotherType\",\n name: \"another another\",\n },\n};\n\ndescribe(nodeFromCacheFieldPolicy, () => {\n let client: ApolloClient<any>;\n\n beforeAll(() => {\n client = new ApolloClient({\n cache: new InMemoryCache({\n typePolicies: {\n Query: {\n fields: {\n node: {\n read: nodeFromCacheFieldPolicy,\n },\n },\n },\n },\n }),\n });\n });\n\n it(\"returns a subset of a query result set as if it were requested through the node root-field\", async () => {\n client.writeQuery({\n query: graphql`\n query FatQuery {\n notTheNodeField {\n yetAnotherField {\n ...SomeFragment\n }\n }\n }\n ${FRAGMENTS}\n `,\n data: {\n notTheNodeField: {\n yetAnotherField: MOCK_DATA,\n },\n },\n });\n\n const response = await client.query({\n query: graphql`\n query SingleNodeQuery {\n node(id: 42) {\n ...SomeFragment\n }\n }\n ${FRAGMENTS}\n `,\n });\n\n expect(response.data.node).toMatchObject(MOCK_DATA);\n });\n});\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oBAA4C;AAC5C,4BAAwB;AACxB,sCAAyC;AAEzC,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAelB,MAAM,YAAY;AAAA,EAChB,YAAY;AAAA,EACZ,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,aAAa;AAAA,IACX,YAAY;AAAA,IACZ,MAAM;AAAA;AAAA;AAIV,SAAS,0DAA0B,MAAM;AACvC,MAAI;AAEJ,YAAU,MAAM;AACd,aAAS,IAAI,2BAAa;AAAA,MACxB,OAAO,IAAI,4BAAc;AAAA,QACvB,cAAc;AAAA,UACZ,OAAO;AAAA,YACL,QAAQ;AAAA,cACN,MAAM;AAAA,gBACJ,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASpB,KAAG,8FAA8F,MAAY;AAC3G,WAAO,WAAW;AAAA,MAChB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAQH;AAAA;AAAA,MAEJ,MAAM;AAAA,QACJ,iBAAiB;AAAA,UACf,iBAAiB;AAAA;AAAA;AAAA;AAKvB,UAAM,WAAW,MAAM,OAAO,MAAM;AAAA,MAClC,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMH;AAAA;AAAA;AAIN,WAAO,SAAS,KAAK,MAAM,cAAc;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
var __async = (__this, __arguments, generator) => {
|
|
2
|
+
return new Promise((resolve, reject) => {
|
|
3
|
+
var fulfilled = (value) => {
|
|
4
|
+
try {
|
|
5
|
+
step(generator.next(value));
|
|
6
|
+
} catch (e) {
|
|
7
|
+
reject(e);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
var rejected = (value) => {
|
|
11
|
+
try {
|
|
12
|
+
step(generator.throw(value));
|
|
13
|
+
} catch (e) {
|
|
14
|
+
reject(e);
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
18
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
19
|
+
});
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
// src/storeObservation/nodeFromCacheFieldPolicy.test.ts
|
|
23
|
+
import {ApolloClient, InMemoryCache} from "@apollo/client";
|
|
24
|
+
import {graphql} from "@graphitation/graphql-js-tag";
|
|
25
|
+
import {nodeFromCacheFieldPolicy} from "./nodeFromCacheFieldPolicy.mjs";
|
|
26
|
+
var FRAGMENTS = graphql`
|
|
27
|
+
fragment SomeFragment on SomeType {
|
|
28
|
+
__typename
|
|
29
|
+
id
|
|
30
|
+
name
|
|
31
|
+
anotherType {
|
|
32
|
+
...AnotherFragment
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
fragment AnotherFragment on AnotherType {
|
|
36
|
+
__typename
|
|
37
|
+
name
|
|
38
|
+
}
|
|
39
|
+
`;
|
|
40
|
+
var MOCK_DATA = {
|
|
41
|
+
__typename: "SomeType",
|
|
42
|
+
id: 42,
|
|
43
|
+
name: "something something",
|
|
44
|
+
anotherType: {
|
|
45
|
+
__typename: "AnotherType",
|
|
46
|
+
name: "another another"
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
describe(nodeFromCacheFieldPolicy, () => {
|
|
50
|
+
let client;
|
|
51
|
+
beforeAll(() => {
|
|
52
|
+
client = new ApolloClient({
|
|
53
|
+
cache: new InMemoryCache({
|
|
54
|
+
typePolicies: {
|
|
55
|
+
Query: {
|
|
56
|
+
fields: {
|
|
57
|
+
node: {
|
|
58
|
+
read: nodeFromCacheFieldPolicy
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
})
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
it("returns a subset of a query result set as if it were requested through the node root-field", () => __async(void 0, null, function* () {
|
|
67
|
+
client.writeQuery({
|
|
68
|
+
query: graphql`
|
|
69
|
+
query FatQuery {
|
|
70
|
+
notTheNodeField {
|
|
71
|
+
yetAnotherField {
|
|
72
|
+
...SomeFragment
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
${FRAGMENTS}
|
|
77
|
+
`,
|
|
78
|
+
data: {
|
|
79
|
+
notTheNodeField: {
|
|
80
|
+
yetAnotherField: MOCK_DATA
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
const response = yield client.query({
|
|
85
|
+
query: graphql`
|
|
86
|
+
query SingleNodeQuery {
|
|
87
|
+
node(id: 42) {
|
|
88
|
+
...SomeFragment
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
${FRAGMENTS}
|
|
92
|
+
`
|
|
93
|
+
});
|
|
94
|
+
expect(response.data.node).toMatchObject(MOCK_DATA);
|
|
95
|
+
}));
|
|
96
|
+
});
|