@graphql-box/cache-manager 3.1.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/browser/index.js +1 -1
- package/lib/browser/index.js.map +1 -1
- package/lib/browser/production.analysis.txt +45 -57
- package/lib/main/helpers/createFragmentSpreadChecklist.js +12 -14
- package/lib/main/helpers/createFragmentSpreadChecklist.js.map +1 -1
- package/lib/main/helpers/filterField.js +1 -3
- package/lib/main/helpers/filterField.js.map +1 -1
- package/lib/main/helpers/filterFragmentDefinitions.js +8 -3
- package/lib/main/helpers/filterFragmentDefinitions.js.map +1 -1
- package/lib/main/helpers/filterFragmentSpreads.js +0 -1
- package/lib/main/helpers/filterFragmentSpreads.js.map +1 -1
- package/lib/main/helpers/filterIDsAndTypeNames.js.map +1 -1
- package/lib/main/helpers/filterInlineFragments.js.map +1 -1
- package/lib/main/helpers/filterOperationAndFragmentDefinitions.js +15 -0
- package/lib/main/helpers/filterOperationAndFragmentDefinitions.js.map +1 -0
- package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js +1 -3
- package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js.map +1 -1
- package/lib/main/helpers/filterQuery.js +6 -7
- package/lib/main/helpers/filterQuery.js.map +1 -1
- package/lib/main/main/index.js +9 -7
- package/lib/main/main/index.js.map +1 -1
- package/lib/module/helpers/createFragmentSpreadChecklist.js +12 -13
- package/lib/module/helpers/createFragmentSpreadChecklist.js.map +1 -1
- package/lib/module/helpers/filterField.js +1 -2
- package/lib/module/helpers/filterField.js.map +1 -1
- package/lib/module/helpers/filterFragmentDefinitions.js +8 -4
- package/lib/module/helpers/filterFragmentDefinitions.js.map +1 -1
- package/lib/module/helpers/filterFragmentSpreads.js +0 -1
- package/lib/module/helpers/filterFragmentSpreads.js.map +1 -1
- package/lib/module/helpers/filterIDsAndTypeNames.js.map +1 -1
- package/lib/module/helpers/filterInlineFragments.js.map +1 -1
- package/lib/module/helpers/filterOperationAndFragmentDefinitions.js +5 -0
- package/lib/module/helpers/filterOperationAndFragmentDefinitions.js.map +1 -0
- package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js +1 -2
- package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js.map +1 -1
- package/lib/module/helpers/filterQuery.js +6 -6
- package/lib/module/helpers/filterQuery.js.map +1 -1
- package/lib/module/main/index.js +6 -3
- package/lib/module/main/index.js.map +1 -1
- package/lib/types/defs/index.d.ts +5 -17
- package/lib/types/defs/index.d.ts.map +1 -1
- package/lib/types/helpers/createFragmentSpreadChecklist.d.ts +3 -2
- package/lib/types/helpers/createFragmentSpreadChecklist.d.ts.map +1 -1
- package/lib/types/helpers/filterField.d.ts +2 -2
- package/lib/types/helpers/filterField.d.ts.map +1 -1
- package/lib/types/helpers/filterFragmentDefinitions.d.ts +1 -5
- package/lib/types/helpers/filterFragmentDefinitions.d.ts.map +1 -1
- package/lib/types/helpers/filterFragmentSpreads.d.ts +2 -2
- package/lib/types/helpers/filterFragmentSpreads.d.ts.map +1 -1
- package/lib/types/helpers/filterIDsAndTypeNames.d.ts +2 -2
- package/lib/types/helpers/filterIDsAndTypeNames.d.ts.map +1 -1
- package/lib/types/helpers/filterInlineFragments.d.ts +2 -2
- package/lib/types/helpers/filterInlineFragments.d.ts.map +1 -1
- package/lib/types/helpers/filterOperationAndFragmentDefinitions.d.ts +4 -0
- package/lib/types/helpers/filterOperationAndFragmentDefinitions.d.ts.map +1 -0
- package/lib/types/helpers/filterOutPropsWithArgsOrDirectives.d.ts +2 -1
- package/lib/types/helpers/filterOutPropsWithArgsOrDirectives.d.ts.map +1 -1
- package/lib/types/helpers/filterQuery.d.ts +1 -1
- package/lib/types/helpers/filterQuery.d.ts.map +1 -1
- package/lib/types/main/index.d.ts +3 -2
- package/lib/types/main/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__snapshots__/index.test.ts.snap +25475 -0
- package/src/defs/index.ts +10 -18
- package/src/helpers/createFragmentSpreadChecklist.ts +5 -5
- package/src/helpers/filterField.ts +10 -4
- package/src/helpers/filterFragmentDefinitions.ts +6 -2
- package/src/helpers/filterFragmentSpreads.ts +2 -3
- package/src/helpers/filterIDsAndTypeNames.ts +5 -2
- package/src/helpers/filterInlineFragments.ts +5 -2
- package/src/helpers/filterOperationAndFragmentDefinitions.ts +10 -0
- package/src/helpers/filterOutPropsWithArgsOrDirectives.ts +2 -3
- package/src/helpers/filterQuery.ts +9 -4
- package/src/index.test.ts +52 -0
- package/src/main/index.ts +13 -4
- package/lib/main/helpers/buildKeysAndPaths.js +0 -73
- package/lib/main/helpers/buildKeysAndPaths.js.map +0 -1
- package/lib/module/helpers/buildKeysAndPaths.js +0 -54
- package/lib/module/helpers/buildKeysAndPaths.js.map +0 -1
- package/lib/types/helpers/buildKeysAndPaths.d.ts +0 -10
- package/lib/types/helpers/buildKeysAndPaths.d.ts.map +0 -1
- package/src/helpers/buildKeysAndPaths.ts +0 -71
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
-----------------------------
|
|
2
2
|
Rollup File Analysis
|
|
3
3
|
-----------------------------
|
|
4
|
-
bundle size:
|
|
5
|
-
original size:
|
|
4
|
+
bundle size: 91.643 KB
|
|
5
|
+
original size: 62.603 KB
|
|
6
6
|
code reduction: 0 %
|
|
7
|
-
module count:
|
|
7
|
+
module count: 24
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
███████████████████████████████████░░░░░░░░░░░░░░░
|
|
10
10
|
file: /src/main/index.ts
|
|
11
|
-
bundle space:
|
|
12
|
-
rendered size:
|
|
13
|
-
original size:
|
|
11
|
+
bundle space: 71.96 %
|
|
12
|
+
rendered size: 65.946 KB
|
|
13
|
+
original size: 38.051 KB
|
|
14
14
|
code reduction: 0 %
|
|
15
15
|
dependents: 1
|
|
16
16
|
- /src/index.ts
|
|
17
17
|
|
|
18
18
|
██░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
19
19
|
file: /src/debug/log-cache-query/index.ts
|
|
20
|
-
bundle space: 4.
|
|
20
|
+
bundle space: 4.19 %
|
|
21
21
|
rendered size: 3.839 KB
|
|
22
22
|
original size: 1.282 KB
|
|
23
23
|
code reduction: 0 %
|
|
@@ -26,7 +26,7 @@ dependents: 1
|
|
|
26
26
|
|
|
27
27
|
█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
28
28
|
file: /src/debug/log-cache-entry/index.ts
|
|
29
|
-
bundle space: 3.
|
|
29
|
+
bundle space: 3.77 %
|
|
30
30
|
rendered size: 3.451 KB
|
|
31
31
|
original size: 1.197 KB
|
|
32
32
|
code reduction: 0 %
|
|
@@ -35,7 +35,7 @@ dependents: 1
|
|
|
35
35
|
|
|
36
36
|
█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
37
37
|
file: /src/debug/log-partial-compiled/index.ts
|
|
38
|
-
bundle space: 3.
|
|
38
|
+
bundle space: 3.68 %
|
|
39
39
|
rendered size: 3.37 KB
|
|
40
40
|
original size: 1.161 KB
|
|
41
41
|
code reduction: 0 %
|
|
@@ -44,29 +44,17 @@ dependents: 1
|
|
|
44
44
|
|
|
45
45
|
█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
46
46
|
file: /src/helpers/filterField.ts
|
|
47
|
-
bundle space: 3.
|
|
47
|
+
bundle space: 3.09 %
|
|
48
48
|
rendered size: 2.834 KB
|
|
49
|
-
original size: 2.
|
|
50
|
-
code reduction:
|
|
49
|
+
original size: 2.94 KB
|
|
50
|
+
code reduction: 3.61 %
|
|
51
51
|
dependents: 2
|
|
52
52
|
- /src/helpers/filterFragmentDefinitions.ts
|
|
53
53
|
- /src/helpers/filterQuery.ts
|
|
54
54
|
|
|
55
|
-
█░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
56
|
-
file: /src/helpers/buildKeysAndPaths.ts
|
|
57
|
-
bundle space: 2.65 %
|
|
58
|
-
rendered size: 2.461 KB
|
|
59
|
-
original size: 2.196 KB
|
|
60
|
-
code reduction: 0 %
|
|
61
|
-
dependents: 4
|
|
62
|
-
- /src/helpers/filterOutPropsWithArgsOrDirectives.ts
|
|
63
|
-
- /src/helpers/filterField.ts
|
|
64
|
-
- /src/helpers/filterQuery.ts
|
|
65
|
-
- /src/main/index.ts
|
|
66
|
-
|
|
67
55
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
68
56
|
file: /src/helpers/mergeResponseDataSets.ts
|
|
69
|
-
bundle space: 1.
|
|
57
|
+
bundle space: 1.87 %
|
|
70
58
|
rendered size: 1.716 KB
|
|
71
59
|
original size: 907 Bytes
|
|
72
60
|
code reduction: 0 %
|
|
@@ -75,16 +63,16 @@ dependents: 1
|
|
|
75
63
|
|
|
76
64
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
77
65
|
file: /src/helpers/filterFragmentDefinitions.ts
|
|
78
|
-
bundle space: 1.
|
|
79
|
-
rendered size: 1.
|
|
80
|
-
original size: 1.
|
|
81
|
-
code reduction: 3.
|
|
66
|
+
bundle space: 1.6 %
|
|
67
|
+
rendered size: 1.462 KB
|
|
68
|
+
original size: 1.517 KB
|
|
69
|
+
code reduction: 3.63 %
|
|
82
70
|
dependents: 1
|
|
83
71
|
- /src/helpers/filterQuery.ts
|
|
84
72
|
|
|
85
73
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
86
74
|
file: /src/helpers/normalizePatchResponseData.ts
|
|
87
|
-
bundle space: 1.
|
|
75
|
+
bundle space: 1.43 %
|
|
88
76
|
rendered size: 1.309 KB
|
|
89
77
|
original size: 478 Bytes
|
|
90
78
|
code reduction: 0 %
|
|
@@ -93,25 +81,25 @@ dependents: 1
|
|
|
93
81
|
|
|
94
82
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
95
83
|
file: /src/helpers/filterQuery.ts
|
|
96
|
-
bundle space: 1.
|
|
97
|
-
rendered size: 1.
|
|
98
|
-
original size: 1.
|
|
99
|
-
code reduction: 25.
|
|
84
|
+
bundle space: 1.22 %
|
|
85
|
+
rendered size: 1.117 KB
|
|
86
|
+
original size: 1.49 KB
|
|
87
|
+
code reduction: 25.03 %
|
|
100
88
|
dependents: 1
|
|
101
89
|
- /src/main/index.ts
|
|
102
90
|
|
|
103
91
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
104
92
|
file: /src/helpers/filterIDsAndTypeNames.ts
|
|
105
|
-
bundle space: 1.
|
|
93
|
+
bundle space: 1.09 %
|
|
106
94
|
rendered size: 998 Bytes
|
|
107
|
-
original size: 1.
|
|
108
|
-
code reduction:
|
|
95
|
+
original size: 1.165 KB
|
|
96
|
+
code reduction: 14.33 %
|
|
109
97
|
dependents: 1
|
|
110
98
|
- /src/helpers/filterField.ts
|
|
111
99
|
|
|
112
100
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
113
101
|
file: /src/helpers/checkFieldPathChecklist.ts
|
|
114
|
-
bundle space: 1.
|
|
102
|
+
bundle space: 1.04 %
|
|
115
103
|
rendered size: 957 Bytes
|
|
116
104
|
original size: 828 Bytes
|
|
117
105
|
code reduction: 0 %
|
|
@@ -120,25 +108,25 @@ dependents: 1
|
|
|
120
108
|
|
|
121
109
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
122
110
|
file: /src/helpers/filterOutPropsWithArgsOrDirectives.ts
|
|
123
|
-
bundle space: 1 %
|
|
111
|
+
bundle space: 1.01 %
|
|
124
112
|
rendered size: 927 Bytes
|
|
125
|
-
original size: 1.
|
|
126
|
-
code reduction:
|
|
113
|
+
original size: 1.081 KB
|
|
114
|
+
code reduction: 14.25 %
|
|
127
115
|
dependents: 1
|
|
128
116
|
- /src/main/index.ts
|
|
129
117
|
|
|
130
118
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
131
119
|
file: /src/helpers/filterInlineFragments.ts
|
|
132
|
-
bundle space: 0.
|
|
120
|
+
bundle space: 0.86 %
|
|
133
121
|
rendered size: 788 Bytes
|
|
134
|
-
original size:
|
|
135
|
-
code reduction:
|
|
122
|
+
original size: 999 Bytes
|
|
123
|
+
code reduction: 21.12 %
|
|
136
124
|
dependents: 1
|
|
137
125
|
- /src/helpers/filterField.ts
|
|
138
126
|
|
|
139
127
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
140
128
|
file: /src/helpers/deriveOpCacheability.ts
|
|
141
|
-
bundle space: 0.
|
|
129
|
+
bundle space: 0.86 %
|
|
142
130
|
rendered size: 786 Bytes
|
|
143
131
|
original size: 858 Bytes
|
|
144
132
|
code reduction: 8.39 %
|
|
@@ -147,19 +135,19 @@ dependents: 1
|
|
|
147
135
|
|
|
148
136
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
149
137
|
file: /src/helpers/filterFragmentSpreads.ts
|
|
150
|
-
bundle space: 0.
|
|
151
|
-
rendered size:
|
|
152
|
-
original size:
|
|
153
|
-
code reduction:
|
|
138
|
+
bundle space: 0.67 %
|
|
139
|
+
rendered size: 616 Bytes
|
|
140
|
+
original size: 942 Bytes
|
|
141
|
+
code reduction: 34.61 %
|
|
154
142
|
dependents: 1
|
|
155
143
|
- /src/helpers/filterField.ts
|
|
156
144
|
|
|
157
145
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
158
146
|
file: /src/helpers/createFragmentSpreadChecklist.ts
|
|
159
|
-
bundle space: 0.
|
|
160
|
-
rendered size:
|
|
161
|
-
original size:
|
|
162
|
-
code reduction:
|
|
147
|
+
bundle space: 0.5 %
|
|
148
|
+
rendered size: 457 Bytes
|
|
149
|
+
original size: 572 Bytes
|
|
150
|
+
code reduction: 20.1 %
|
|
163
151
|
dependents: 1
|
|
164
152
|
- /src/helpers/filterQuery.ts
|
|
165
153
|
|
|
@@ -179,7 +167,7 @@ dependents: 6
|
|
|
179
167
|
|
|
180
168
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
181
169
|
file: /src/helpers/validTypeIDValue.ts
|
|
182
|
-
bundle space: 0.
|
|
170
|
+
bundle space: 0.34 %
|
|
183
171
|
rendered size: 309 Bytes
|
|
184
172
|
original size: 426 Bytes
|
|
185
173
|
code reduction: 27.46 %
|
|
@@ -206,7 +194,7 @@ dependents: 1
|
|
|
206
194
|
|
|
207
195
|
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|
|
208
196
|
file: /src/helpers/isNotLastResponseChunk.ts
|
|
209
|
-
bundle space: 0.
|
|
197
|
+
bundle space: 0.15 %
|
|
210
198
|
rendered size: 133 Bytes
|
|
211
199
|
original size: 278 Bytes
|
|
212
200
|
code reduction: 52.16 %
|
|
@@ -217,7 +205,7 @@ dependents: 1
|
|
|
217
205
|
file: /src/defs/index.ts
|
|
218
206
|
bundle space: 0 %
|
|
219
207
|
rendered size: 0 Byte
|
|
220
|
-
original size: 5.
|
|
208
|
+
original size: 5.051 KB
|
|
221
209
|
code reduction: 100 %
|
|
222
210
|
dependents: 1
|
|
223
211
|
- /src/index.ts
|
|
@@ -9,20 +9,18 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _keys2 = _interopRequireDefault(require("lodash/keys"));
|
|
11
11
|
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
}, {});
|
|
25
|
-
};
|
|
12
|
+
var _default = ({
|
|
13
|
+
request
|
|
14
|
+
}, {
|
|
15
|
+
fragmentDefinitions
|
|
16
|
+
}) => (0, _keys2.default)(fragmentDefinitions !== null && fragmentDefinitions !== void 0 ? fragmentDefinitions : {}).reduce((acc, name) => {
|
|
17
|
+
acc[name] = {
|
|
18
|
+
deleted: 0,
|
|
19
|
+
paths: [],
|
|
20
|
+
total: (request.match(new RegExp(`\\.\\.\\.${name}`, "g")) || []).length
|
|
21
|
+
};
|
|
22
|
+
return acc;
|
|
23
|
+
}, {});
|
|
26
24
|
|
|
27
25
|
exports.default = _default;
|
|
28
26
|
//# sourceMappingURL=createFragmentSpreadChecklist.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/helpers/createFragmentSpreadChecklist.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/createFragmentSpreadChecklist.ts"],"names":["request","fragmentDefinitions","reduce","acc","name","deleted","paths","total","match","RegExp","length"],"mappings":";;;;;;;;;;;eAYe,CAAC;AAAEA,EAAAA;AAAF,CAAD,EAA2B;AAAEC,EAAAA;AAAF,CAA3B,KACb,oBAAKA,mBAAL,aAAKA,mBAAL,cAAKA,mBAAL,GAA4B,EAA5B,EAAgCC,MAAhC,CAAuC,CAACC,GAAD,EAA8BC,IAA9B,KAAuC;AAC5ED,EAAAA,GAAG,CAACC,IAAD,CAAH,GAAY;AAAEC,IAAAA,OAAO,EAAE,CAAX;AAAcC,IAAAA,KAAK,EAAE,EAArB;AAAyBC,IAAAA,KAAK,EAAE,CAACP,OAAO,CAACQ,KAAR,CAAc,IAAIC,MAAJ,CAAY,YAAWL,IAAK,EAA5B,EAA+B,GAA/B,CAAd,KAAsD,EAAvD,EAA2DM;AAA3F,GAAZ;AACA,SAAOP,GAAP;AACD,CAHD,EAGG,EAHH,C","sourcesContent":["import { RequestData } from \"@graphql-box/core\";\nimport { keys } from \"lodash\";\nimport { CacheManagerContext } from \"../defs\";\n\nexport type FragmentSpreadCheckist = {\n [key: string]: {\n deleted: number;\n paths: string[];\n total: number;\n };\n};\n\nexport default ({ request }: RequestData, { fragmentDefinitions }: CacheManagerContext) =>\n keys(fragmentDefinitions ?? {}).reduce((acc: FragmentSpreadCheckist, name) => {\n acc[name] = { deleted: 0, paths: [], total: (request.match(new RegExp(`\\\\.\\\\.\\\\.${name}`, \"g\")) || []).length };\n return acc;\n }, {});\n"],"file":"createFragmentSpreadChecklist.js"}
|
|
@@ -11,8 +11,6 @@ var _core = require("@graphql-box/core");
|
|
|
11
11
|
|
|
12
12
|
var _helpers = require("@graphql-box/helpers");
|
|
13
13
|
|
|
14
|
-
var _buildKeysAndPaths = require("./buildKeysAndPaths");
|
|
15
|
-
|
|
16
14
|
var _checkFieldPathChecklist = _interopRequireDefault(require("./checkFieldPathChecklist"));
|
|
17
15
|
|
|
18
16
|
var _filterFragmentSpreads = _interopRequireDefault(require("./filterFragmentSpreads"));
|
|
@@ -63,7 +61,7 @@ const filterField = (field, fieldPathChecklist, fragmentSpreadChecklist, ancesto
|
|
|
63
61
|
|
|
64
62
|
const {
|
|
65
63
|
requestFieldPath
|
|
66
|
-
} = (0,
|
|
64
|
+
} = (0, _helpers.buildFieldKeysAndPaths)(childField, {
|
|
67
65
|
requestFieldPath: ancestorRequestFieldPath
|
|
68
66
|
}, context);
|
|
69
67
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/helpers/filterField.ts"],"names":["filterField","field","fieldPathChecklist","fragmentSpreadChecklist","ancestorRequestFieldPath","context","fragmentDefinitions","typeIDKey","fieldsAndTypeNames","fragmentSpreadFieldCounter","i","length","fieldNode","childField","fragmentKind","fragmentName","typeName","childTypeName","FRAGMENT_SPREAD","hasData","total","childFieldName","TYPE_NAME_KEY","requestFieldPath","typeUnused","get"],"mappings":";;;;;;;;;AAAA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterField.ts"],"names":["filterField","field","fieldPathChecklist","fragmentSpreadChecklist","ancestorRequestFieldPath","context","fragmentDefinitions","typeIDKey","fieldsAndTypeNames","fragmentSpreadFieldCounter","i","length","fieldNode","childField","fragmentKind","fragmentName","typeName","childTypeName","FRAGMENT_SPREAD","hasData","total","childFieldName","TYPE_NAME_KEY","requestFieldPath","typeUnused","get"],"mappings":";;;;;;;;;AAAA;;AACA;;AAUA;;AAEA;;AACA;;AACA;;AAEA,MAAMA,WAAW,GAAG,CAClBC,KADkB,EAElBC,kBAFkB,EAGlBC,uBAHkB,EAIlBC,wBAJkB,EAKlBC,OALkB,KAMN;AACZ,QAAM;AAAEC,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MAAqCF,OAA3C;AACA,QAAMG,kBAAkB,GAAG,6BAAeP,KAAf,EAAsB;AAAEK,IAAAA;AAAF,GAAtB,CAA3B;;AAEA,MAAI,CAACE,kBAAL,EAAyB;AACvB,WAAO,KAAP;AACD;;AAED,QAAMC,0BAAsD,GAAG,EAA/D;;AAEA,OAAK,IAAIC,CAAC,GAAGF,kBAAkB,CAACG,MAAnB,GAA4B,CAAzC,EAA4CD,CAAC,IAAI,CAAjD,EAAoDA,CAAC,IAAI,CAAzD,EAA4D;AAC1D,UAAM;AAAEE,MAAAA,SAAS,EAAEC,UAAb;AAAyBC,MAAAA,YAAzB;AAAuCC,MAAAA,YAAvC;AAAqDC,MAAAA,QAAQ,EAAEC;AAA/D,QAAiFT,kBAAkB,CAACE,CAAD,CAAzG;;AAEA,QAAII,YAAY,KAAKI,wBAAjB,IAAoCH,YAApC,IAAoD,CAACN,0BAA0B,CAACM,YAAD,CAAnF,EAAmG;AAAA;;AACjGN,MAAAA,0BAA0B,CAACM,YAAD,CAA1B,GAA2C;AACzCI,QAAAA,OAAO,EAAE,CADgC;AAEzCC,QAAAA,KAAK,EAAEd,mBAAmB,SAAnB,IAAAA,mBAAmB,WAAnB,IAAAA,mBAAmB,CAAGS,YAAH,CAAnB,+CACH,6BAAeT,mBAAf,aAAeA,mBAAf,uBAAeA,mBAAmB,CAAGS,YAAH,CAAlC,EAAoD;AAAET,UAAAA;AAAF,SAApD,CADG,oDACH,gBAA8EK,MAD3E,yEACqF,CADrF,GAEH;AAJqC,OAA3C;AAMD;;AAED,UAAMU,cAAc,GAAG,sBAAQR,UAAR,CAAvB;;AAEA,QAAIQ,cAAc,KAAKd,SAAnB,IAAgCc,cAAc,KAAKC,mBAAvD,EAAsE;AACpE;AACD;;AAED,UAAM;AAAEC,MAAAA;AAAF,QAAuB,qCAC3BV,UAD2B,EAE3B;AACEU,MAAAA,gBAAgB,EAAEnB;AADpB,KAF2B,EAK3BC,OAL2B,CAA7B;AAQA,UAAM;AAAEc,MAAAA,OAAF;AAAWK,MAAAA;AAAX,QAA0B,sCAAwBtB,kBAAkB,CAACuB,GAAnB,CAAuBF,gBAAvB,CAAxB,EAAkEN,aAAlE,CAAhC;;AAEA,QAAIE,OAAO,IAAIK,UAAf,EAA2B;AACzB,UAAIV,YAAY,KAAKI,wBAArB,EAAsC;AACpCT,QAAAA,0BAA0B,CAACM,YAAD,CAA1B,CAAmDI,OAAnD,IAA8D,CAA9D;AACD,OAFD,MAEO,IAAI,CAAC,6BAAeN,UAAf,EAA2B;AAAEP,QAAAA;AAAF,OAA3B,CAAL,EAA0D;AAC/D,wCAAkBL,KAAlB,EAAyBY,UAAzB;AACD,OAFM,MAEA,IAAIb,WAAW,CAACa,UAAD,EAAaX,kBAAb,EAAiCC,uBAAjC,EAA0DoB,gBAA1D,EAA4ElB,OAA5E,CAAf,EAAqG;AAC1G,wCAAkBJ,KAAlB,EAAyBY,UAAzB;AACD;AACF;AACF;;AAED,sCAAsBZ,KAAtB,EAA6BQ,0BAA7B,EAAyDN,uBAAzD,EAAkFC,wBAAlF;AACA,sCAAsBH,KAAtB,EAA6BI,OAA7B;AACA,sCAAsBJ,KAAtB,EAA6BI,OAA7B;AACA,SAAO,CAAC,6BAAeJ,KAAf,EAAsB;AAAEK,IAAAA;AAAF,GAAtB,CAAR;AACD,CA3DD;;eA6DeN,W","sourcesContent":["import { TYPE_NAME_KEY } from \"@graphql-box/core\";\nimport {\n FRAGMENT_SPREAD,\n buildFieldKeysAndPaths,\n deleteChildFields,\n getChildFields,\n getName,\n hasChildFields,\n} from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode, OperationDefinitionNode } from \"graphql\";\nimport { CacheManagerContext, FieldPathChecklist, FragmentSpreadFieldCounter } from \"../defs\";\nimport checkFieldPathChecklist from \"./checkFieldPathChecklist\";\nimport { FragmentSpreadCheckist } from \"./createFragmentSpreadChecklist\";\nimport filterFragmentSpreads from \"./filterFragmentSpreads\";\nimport filterIDsAndTypeNames from \"./filterIDsAndTypeNames\";\nimport filterInlineFragments from \"./filterInlineFragments\";\n\nconst filterField = (\n field: FieldNode | FragmentDefinitionNode | OperationDefinitionNode,\n fieldPathChecklist: FieldPathChecklist,\n fragmentSpreadChecklist: FragmentSpreadCheckist,\n ancestorRequestFieldPath: string,\n context: CacheManagerContext,\n): boolean => {\n const { fragmentDefinitions, typeIDKey } = context;\n const fieldsAndTypeNames = getChildFields(field, { fragmentDefinitions });\n\n if (!fieldsAndTypeNames) {\n return false;\n }\n\n const fragmentSpreadFieldCounter: FragmentSpreadFieldCounter = {};\n\n for (let i = fieldsAndTypeNames.length - 1; i >= 0; i -= 1) {\n const { fieldNode: childField, fragmentKind, fragmentName, typeName: childTypeName } = fieldsAndTypeNames[i];\n\n if (fragmentKind === FRAGMENT_SPREAD && fragmentName && !fragmentSpreadFieldCounter[fragmentName]) {\n fragmentSpreadFieldCounter[fragmentName] = {\n hasData: 0,\n total: fragmentDefinitions?.[fragmentName]\n ? getChildFields(fragmentDefinitions?.[fragmentName], { fragmentDefinitions })?.length ?? 0\n : 0,\n };\n }\n\n const childFieldName = getName(childField);\n\n if (childFieldName === typeIDKey || childFieldName === TYPE_NAME_KEY) {\n continue;\n }\n\n const { requestFieldPath } = buildFieldKeysAndPaths(\n childField,\n {\n requestFieldPath: ancestorRequestFieldPath,\n },\n context,\n );\n\n const { hasData, typeUnused } = checkFieldPathChecklist(fieldPathChecklist.get(requestFieldPath), childTypeName);\n\n if (hasData || typeUnused) {\n if (fragmentKind === FRAGMENT_SPREAD) {\n fragmentSpreadFieldCounter[fragmentName as string].hasData += 1;\n } else if (!hasChildFields(childField, { fragmentDefinitions })) {\n deleteChildFields(field, childField);\n } else if (filterField(childField, fieldPathChecklist, fragmentSpreadChecklist, requestFieldPath, context)) {\n deleteChildFields(field, childField);\n }\n }\n }\n\n filterFragmentSpreads(field, fragmentSpreadFieldCounter, fragmentSpreadChecklist, ancestorRequestFieldPath);\n filterInlineFragments(field, context);\n filterIDsAndTypeNames(field, context);\n return !hasChildFields(field, { fragmentDefinitions });\n};\n\nexport default filterField;\n"],"file":"filterField.js"}
|
|
@@ -14,8 +14,6 @@ var _helpers = require("@graphql-box/helpers");
|
|
|
14
14
|
var _filterField = _interopRequireDefault(require("./filterField"));
|
|
15
15
|
|
|
16
16
|
var _default = (ast, fieldPathChecklist, fragmentSpreadChecklist, context) => {
|
|
17
|
-
var _getFragmentDefinitio;
|
|
18
|
-
|
|
19
17
|
const definitionsToFilter = (0, _keys2.default)(fragmentSpreadChecklist).reduce((namesAndPaths, key) => {
|
|
20
18
|
const {
|
|
21
19
|
deleted,
|
|
@@ -26,7 +24,9 @@ var _default = (ast, fieldPathChecklist, fragmentSpreadChecklist, context) => {
|
|
|
26
24
|
path: fragmentSpreadChecklist[key].paths[0]
|
|
27
25
|
}] : namesAndPaths;
|
|
28
26
|
}, []);
|
|
29
|
-
const
|
|
27
|
+
const {
|
|
28
|
+
fragmentDefinitions = {}
|
|
29
|
+
} = context;
|
|
30
30
|
definitionsToFilter.forEach(({
|
|
31
31
|
name,
|
|
32
32
|
path
|
|
@@ -41,6 +41,11 @@ var _default = (ast, fieldPathChecklist, fragmentSpreadChecklist, context) => {
|
|
|
41
41
|
} = fragmentSpreadChecklist[key];
|
|
42
42
|
return deleted > 0 && deleted === total ? [...names, key] : names;
|
|
43
43
|
}, []);
|
|
44
|
+
|
|
45
|
+
if (!definitionsToDelete.length) {
|
|
46
|
+
return ast;
|
|
47
|
+
}
|
|
48
|
+
|
|
44
49
|
return (0, _helpers.deleteFragmentDefinitions)(ast, {
|
|
45
50
|
include: definitionsToDelete
|
|
46
51
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/helpers/filterFragmentDefinitions.ts"],"names":["ast","fieldPathChecklist","fragmentSpreadChecklist","context","definitionsToFilter","reduce","namesAndPaths","key","deleted","total","name","path","paths","fragmentDefinitions","forEach","fragmentDefinition","definitionsToDelete","names","include"],"mappings":";;;;;;;;;;;AAAA;;AAKA;;eAEe,CACbA,GADa,EAEbC,kBAFa,EAGbC,uBAHa,EAIbC,OAJa,KAKV;
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterFragmentDefinitions.ts"],"names":["ast","fieldPathChecklist","fragmentSpreadChecklist","context","definitionsToFilter","reduce","namesAndPaths","key","deleted","total","name","path","paths","fragmentDefinitions","forEach","fragmentDefinition","definitionsToDelete","names","length","include"],"mappings":";;;;;;;;;;;AAAA;;AAKA;;eAEe,CACbA,GADa,EAEbC,kBAFa,EAGbC,uBAHa,EAIbC,OAJa,KAKV;AACH,QAAMC,mBAAmB,GAAG,oBAAKF,uBAAL,EAA8BG,MAA9B,CAC1B,CAACC,aAAD,EAAkDC,GAAlD,KAA0D;AACxD,UAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAAqBP,uBAAuB,CAACK,GAAD,CAAlD;AAEA,WAAOC,OAAO,KAAK,CAAZ,IAAiBC,KAAK,KAAK,CAA3B,GACH,CAAC,GAAGH,aAAJ,EAAmB;AAAEI,MAAAA,IAAI,EAAEH,GAAR;AAAaI,MAAAA,IAAI,EAAET,uBAAuB,CAACK,GAAD,CAAvB,CAA6BK,KAA7B,CAAmC,CAAnC;AAAnB,KAAnB,CADG,GAEHN,aAFJ;AAGD,GAPyB,EAQ1B,EAR0B,CAA5B;AAWA,QAAM;AAAEO,IAAAA,mBAAmB,GAAG;AAAxB,MAA+BV,OAArC;AAEAC,EAAAA,mBAAmB,CAACU,OAApB,CAA4B,CAAC;AAAEJ,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAD,KAAoB;AAC9C,UAAMI,kBAAkB,GAAGF,mBAAmB,CAACH,IAAD,CAA9C;AACA,8BAAYK,kBAAZ,EAAgCd,kBAAhC,EAAoDC,uBAApD,EAA6ES,IAA7E,EAAmFR,OAAnF;AACD,GAHD;AAKA,QAAMa,mBAAmB,GAAG,oBAAKd,uBAAL,EAA8BG,MAA9B,CAAqC,CAACY,KAAD,EAAkBV,GAAlB,KAA0B;AACzF,UAAM;AAAEC,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAAqBP,uBAAuB,CAACK,GAAD,CAAlD;AACA,WAAOC,OAAO,GAAG,CAAV,IAAeA,OAAO,KAAKC,KAA3B,GAAmC,CAAC,GAAGQ,KAAJ,EAAWV,GAAX,CAAnC,GAAqDU,KAA5D;AACD,GAH2B,EAGzB,EAHyB,CAA5B;;AAKA,MAAI,CAACD,mBAAmB,CAACE,MAAzB,EAAiC;AAC/B,WAAOlB,GAAP;AACD;;AAED,SAAO,wCAA0BA,GAA1B,EAA+B;AACpCmB,IAAAA,OAAO,EAAEH;AAD2B,GAA/B,CAAP;AAGD,C","sourcesContent":["import { deleteFragmentDefinitions } from \"@graphql-box/helpers\";\nimport { DocumentNode } from \"graphql\";\nimport { keys } from \"lodash\";\nimport { CacheManagerContext, FieldPathChecklist } from \"../defs\";\nimport { FragmentSpreadCheckist } from \"./createFragmentSpreadChecklist\";\nimport filterField from \"./filterField\";\n\nexport default (\n ast: DocumentNode,\n fieldPathChecklist: FieldPathChecklist,\n fragmentSpreadChecklist: FragmentSpreadCheckist,\n context: CacheManagerContext,\n) => {\n const definitionsToFilter = keys(fragmentSpreadChecklist).reduce(\n (namesAndPaths: { name: string; path: string }[], key) => {\n const { deleted, total } = fragmentSpreadChecklist[key];\n\n return deleted === 0 && total === 1\n ? [...namesAndPaths, { name: key, path: fragmentSpreadChecklist[key].paths[0] as string }]\n : namesAndPaths;\n },\n [],\n );\n\n const { fragmentDefinitions = {} } = context;\n\n definitionsToFilter.forEach(({ name, path }) => {\n const fragmentDefinition = fragmentDefinitions[name];\n filterField(fragmentDefinition, fieldPathChecklist, fragmentSpreadChecklist, path, context);\n });\n\n const definitionsToDelete = keys(fragmentSpreadChecklist).reduce((names: string[], key) => {\n const { deleted, total } = fragmentSpreadChecklist[key];\n return deleted > 0 && deleted === total ? [...names, key] : names;\n }, []);\n\n if (!definitionsToDelete.length) {\n return ast;\n }\n\n return deleteFragmentDefinitions(ast, {\n include: definitionsToDelete,\n });\n};\n"],"file":"filterFragmentDefinitions.js"}
|
|
@@ -19,7 +19,6 @@ var _default = (field, fragmentSpreadFieldCounter, fragmentSpreadChecklist, ance
|
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
(0, _keys2.default)(fragmentSpreadFieldCounter).forEach(key => {
|
|
22
|
-
fragmentSpreadChecklist[key].total += 1;
|
|
23
22
|
fragmentSpreadChecklist[key].paths.push(ancestorRequestFieldPath);
|
|
24
23
|
const {
|
|
25
24
|
hasData,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/helpers/filterFragmentSpreads.ts"],"names":["field","fragmentSpreadFieldCounter","fragmentSpreadChecklist","ancestorRequestFieldPath","forEach","key","
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterFragmentSpreads.ts"],"names":["field","fragmentSpreadFieldCounter","fragmentSpreadChecklist","ancestorRequestFieldPath","forEach","key","paths","push","hasData","total","deleted"],"mappings":";;;;;;;;;;;;;AAAA;;eAMe,CACbA,KADa,EAEbC,0BAFa,EAGbC,uBAHa,EAIbC,wBAJa,KAKV;AACH,MAAI,uBAAQF,0BAAR,CAAJ,EAAyC;AACvC;AACD;;AAED,sBAAKA,0BAAL,EAAiCG,OAAjC,CAAyCC,GAAG,IAAI;AAC9CH,IAAAA,uBAAuB,CAACG,GAAD,CAAvB,CAA6BC,KAA7B,CAAmCC,IAAnC,CAAwCJ,wBAAxC;AAEA,UAAM;AAAEK,MAAAA,OAAF;AAAWC,MAAAA;AAAX,QAAqBR,0BAA0B,CAACI,GAAD,CAArD;;AAEA,QAAIG,OAAO,KAAKC,KAAhB,EAAuB;AACrB,0CAAsBT,KAAtB,EAA6BK,GAA7B;AACAH,MAAAA,uBAAuB,CAACG,GAAD,CAAvB,CAA6BK,OAA7B,IAAwC,CAAxC;AACD;AACF,GATD;AAUD,C","sourcesContent":["import { deleteFragmentSpreads } from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode, OperationDefinitionNode } from \"graphql\";\nimport { isEmpty, keys } from \"lodash\";\nimport { FragmentSpreadFieldCounter } from \"../defs\";\nimport { FragmentSpreadCheckist } from \"./createFragmentSpreadChecklist\";\n\nexport default (\n field: FieldNode | FragmentDefinitionNode | OperationDefinitionNode,\n fragmentSpreadFieldCounter: FragmentSpreadFieldCounter,\n fragmentSpreadChecklist: FragmentSpreadCheckist,\n ancestorRequestFieldPath: string,\n) => {\n if (isEmpty(fragmentSpreadFieldCounter)) {\n return;\n }\n\n keys(fragmentSpreadFieldCounter).forEach(key => {\n fragmentSpreadChecklist[key].paths.push(ancestorRequestFieldPath);\n\n const { hasData, total } = fragmentSpreadFieldCounter[key];\n\n if (hasData === total) {\n deleteFragmentSpreads(field, key);\n fragmentSpreadChecklist[key].deleted += 1;\n }\n });\n};\n"],"file":"filterFragmentSpreads.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/helpers/filterIDsAndTypeNames.ts"],"names":["field","fragmentDefinitions","typeIDKey","fieldsAndTypeNames","length","fieldNames","map","fieldNode","every","name","TYPE_NAME_KEY"],"mappings":";;;;;;;AAAA;;AACA;;eAIe,
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterIDsAndTypeNames.ts"],"names":["field","fragmentDefinitions","typeIDKey","fieldsAndTypeNames","length","fieldNames","map","fieldNode","every","name","TYPE_NAME_KEY"],"mappings":";;;;;;;AAAA;;AACA;;eAIe,CACbA,KADa,EAEb;AAAEC,EAAAA,mBAAF;AAAuBC,EAAAA;AAAvB,CAFa,KAGV;AACH,QAAMC,kBAAkB,GAAG,6BAAeH,KAAf,EAAsB;AAAEC,IAAAA;AAAF,GAAtB,CAA3B;;AAEA,MAAI,CAACE,kBAAD,IAAuBA,kBAAkB,CAACC,MAAnB,GAA4B,CAAvD,EAA0D;AACxD,WAAO,KAAP;AACD;;AAED,QAAMC,UAAU,GAAGF,kBAAkB,CAACG,GAAnB,CAAuB,CAAC;AAAEC,IAAAA;AAAF,GAAD,KAAmB,sBAAQA,SAAR,CAA1C,CAAnB;;AAEA,MAAIF,UAAU,CAACD,MAAX,KAAsB,CAAtB,IAA2BC,UAAU,CAACG,KAAX,CAAiBC,IAAI,IAAIA,IAAI,KAAKP,SAAT,IAAsBO,IAAI,KAAKC,mBAAxD,CAA/B,EAAuG;AACrG,oCACEV,KADF,EAEEG,kBAAkB,CAACG,GAAnB,CAAuB,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAmBA,SAA1C,CAFF;AAKA,WAAO,IAAP;AACD;;AAED,MAAKF,UAAU,CAACD,MAAX,KAAsB,CAAtB,IAA2BC,UAAU,CAAC,CAAD,CAAV,KAAkBH,SAA9C,IAA4DG,UAAU,CAAC,CAAD,CAAV,KAAkBK,mBAAlF,EAAiG;AAC/F,UAAM;AAAEH,MAAAA;AAAF,QAAgBJ,kBAAkB,CAAC,CAAD,CAAxC;AACA,oCAAkBH,KAAlB,EAAyBO,SAAzB;AACA,WAAO,IAAP;AACD;;AAED,SAAO,KAAP;AACD,C","sourcesContent":["import { TYPE_NAME_KEY } from \"@graphql-box/core\";\nimport { deleteChildFields, getChildFields, getName } from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode, OperationDefinitionNode } from \"graphql\";\nimport { CacheManagerContext } from \"../defs\";\n\nexport default (\n field: FieldNode | FragmentDefinitionNode | OperationDefinitionNode,\n { fragmentDefinitions, typeIDKey }: CacheManagerContext,\n) => {\n const fieldsAndTypeNames = getChildFields(field, { fragmentDefinitions });\n\n if (!fieldsAndTypeNames || fieldsAndTypeNames.length > 3) {\n return false;\n }\n\n const fieldNames = fieldsAndTypeNames.map(({ fieldNode }) => getName(fieldNode) as FieldNode[\"name\"][\"value\"]);\n\n if (fieldNames.length === 2 && fieldNames.every(name => name === typeIDKey || name === TYPE_NAME_KEY)) {\n deleteChildFields(\n field,\n fieldsAndTypeNames.map(({ fieldNode }) => fieldNode),\n );\n\n return true;\n }\n\n if ((fieldNames.length === 1 && fieldNames[0] === typeIDKey) || fieldNames[0] === TYPE_NAME_KEY) {\n const { fieldNode } = fieldsAndTypeNames[0];\n deleteChildFields(field, fieldNode);\n return true;\n }\n\n return false;\n};\n"],"file":"filterIDsAndTypeNames.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/helpers/filterInlineFragments.ts"],"names":["field","fragmentDefinitions","typeIDKey","inlineFragments","filtered","forEach","fragment","fieldsAndTypeNames","length","fieldNode"],"mappings":";;;;;;;AAAA;;eAIe,
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterInlineFragments.ts"],"names":["field","fragmentDefinitions","typeIDKey","inlineFragments","filtered","forEach","fragment","fieldsAndTypeNames","length","fieldNode"],"mappings":";;;;;;;AAAA;;eAIe,CACbA,KADa,EAEb;AAAEC,EAAAA,mBAAF;AAAuBC,EAAAA;AAAvB,CAFa,KAGV;AACH,QAAMC,eAAe,GAAG,iCAAmBH,KAAnB,CAAxB;AACA,MAAII,QAAQ,GAAG,KAAf;AAEAD,EAAAA,eAAe,CAACE,OAAhB,CAAwBC,QAAQ,IAAI;AAClC,UAAMC,kBAAkB,GAAG,6BAAeD,QAAf,EAAyB;AAAEL,MAAAA;AAAF,KAAzB,CAA3B;;AAEA,QAAI,CAACM,kBAAD,IAAuB,CAACA,kBAAkB,CAACC,MAA/C,EAAuD;AACrD,0CAAsBR,KAAtB,EAA6BM,QAA7B;AACAF,MAAAA,QAAQ,GAAG,IAAX;AACA;AACD;;AAED,QAAIG,kBAAkB,CAACC,MAAnB,KAA8B,CAAlC,EAAqC;AACnC,YAAM;AAAEC,QAAAA;AAAF,UAAgBF,kBAAkB,CAAC,CAAD,CAAxC;;AAEA,UAAI,sBAAQE,SAAR,MAAuBP,SAA3B,EAAsC;AACpC,4CAAsBF,KAAtB,EAA6BM,QAA7B;AACAF,QAAAA,QAAQ,GAAG,IAAX;AACD;AACF;AACF,GAjBD;AAmBA,SAAOA,QAAP;AACD,C","sourcesContent":["import { deleteInlineFragments, getChildFields, getInlineFragments, getName } from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode, OperationDefinitionNode } from \"graphql\";\nimport { CacheManagerContext } from \"..\";\n\nexport default (\n field: FieldNode | FragmentDefinitionNode | OperationDefinitionNode,\n { fragmentDefinitions, typeIDKey }: CacheManagerContext,\n) => {\n const inlineFragments = getInlineFragments(field);\n let filtered = false;\n\n inlineFragments.forEach(fragment => {\n const fieldsAndTypeNames = getChildFields(fragment, { fragmentDefinitions });\n\n if (!fieldsAndTypeNames || !fieldsAndTypeNames.length) {\n deleteInlineFragments(field, fragment);\n filtered = true;\n return;\n }\n\n if (fieldsAndTypeNames.length === 1) {\n const { fieldNode } = fieldsAndTypeNames[0];\n\n if (getName(fieldNode) === typeIDKey) {\n deleteInlineFragments(field, fragment);\n filtered = true;\n }\n }\n });\n\n return filtered;\n};\n"],"file":"filterInlineFragments.js"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _helpers = require("@graphql-box/helpers");
|
|
9
|
+
|
|
10
|
+
var _default = ast => {
|
|
11
|
+
return ast.definitions.filter(definition => (0, _helpers.isKind)(definition, _helpers.OPERATION_DEFINITION) || (0, _helpers.isKind)(definition, _helpers.FRAGMENT_DEFINITION));
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
exports.default = _default;
|
|
15
|
+
//# sourceMappingURL=filterOperationAndFragmentDefinitions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterOperationAndFragmentDefinitions.ts"],"names":["ast","definitions","filter","definition","OPERATION_DEFINITION","FRAGMENT_DEFINITION"],"mappings":";;;;;;;AAAA;;eAGgBA,GAAD,IAAuB;AACpC,SAAOA,GAAG,CAACC,WAAJ,CAAgBC,MAAhB,CACLC,UAAU,IACR,qBAAgCA,UAAhC,EAA4CC,6BAA5C,KACA,qBAA+BD,UAA/B,EAA2CE,4BAA3C,CAHG,CAAP;AAKD,C","sourcesContent":["import { FRAGMENT_DEFINITION, OPERATION_DEFINITION, isKind } from \"@graphql-box/helpers\";\nimport { DocumentNode, FragmentDefinitionNode, OperationDefinitionNode } from \"graphql\";\n\nexport default (ast: DocumentNode) => {\n return ast.definitions.filter(\n definition =>\n isKind<OperationDefinitionNode>(definition, OPERATION_DEFINITION) ||\n isKind<FragmentDefinitionNode>(definition, FRAGMENT_DEFINITION),\n ) as (OperationDefinitionNode | FragmentDefinitionNode)[];\n};\n"],"file":"filterOperationAndFragmentDefinitions.js"}
|
|
@@ -11,8 +11,6 @@ var _keys2 = _interopRequireDefault(require("lodash/keys"));
|
|
|
11
11
|
|
|
12
12
|
var _helpers = require("@graphql-box/helpers");
|
|
13
13
|
|
|
14
|
-
var _buildKeysAndPaths = require("./buildKeysAndPaths");
|
|
15
|
-
|
|
16
14
|
var _default = (fieldData, selectionNodes, ancestorKeysAndPaths, context) => {
|
|
17
15
|
const fieldAndTypeName = (0, _helpers.resolveFragments)(selectionNodes, context.fragmentDefinitions);
|
|
18
16
|
return (0, _keys2.default)(fieldData).reduce((acc, key) => {
|
|
@@ -23,7 +21,7 @@ var _default = (fieldData, selectionNodes, ancestorKeysAndPaths, context) => {
|
|
|
23
21
|
if (match) {
|
|
24
22
|
const {
|
|
25
23
|
requestFieldPath
|
|
26
|
-
} = (0,
|
|
24
|
+
} = (0, _helpers.buildFieldKeysAndPaths)(match.fieldNode, ancestorKeysAndPaths, context);
|
|
27
25
|
const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);
|
|
28
26
|
|
|
29
27
|
if (!(fieldTypeInfo !== null && fieldTypeInfo !== void 0 && fieldTypeInfo.hasArguments) && !(fieldTypeInfo !== null && fieldTypeInfo !== void 0 && fieldTypeInfo.hasDirectives)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/helpers/filterOutPropsWithArgsOrDirectives.ts"],"names":["fieldData","selectionNodes","ancestorKeysAndPaths","context","fieldAndTypeName","fragmentDefinitions","reduce","acc","key","match","find","fieldNode","requestFieldPath","fieldTypeInfo","fieldTypeMap","get","hasArguments","hasDirectives"],"mappings":";;;;;;;;;;;AACA;;
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterOutPropsWithArgsOrDirectives.ts"],"names":["fieldData","selectionNodes","ancestorKeysAndPaths","context","fieldAndTypeName","fragmentDefinitions","reduce","acc","key","match","find","fieldNode","requestFieldPath","fieldTypeInfo","fieldTypeMap","get","hasArguments","hasDirectives"],"mappings":";;;;;;;;;;;AACA;;eAKe,CACbA,SADa,EAEbC,cAFa,EAGbC,oBAHa,EAIbC,OAJa,KAKV;AACH,QAAMC,gBAAgB,GAAG,+BAAiBH,cAAjB,EAAiCE,OAAO,CAACE,mBAAzC,CAAzB;AAEA,SAAO,oBAAKL,SAAL,EAAgBM,MAAhB,CAAuB,CAACC,GAAD,EAAsBC,GAAtB,KAA8B;AAC1D,UAAMC,KAAK,GAAGL,gBAAgB,CAACM,IAAjB,CAAsB,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAoB,sBAAQA,SAAR,CAAD,KAAuDH,GAAhG,CAAd;;AAEA,QAAIC,KAAJ,EAAW;AACT,YAAM;AAAEG,QAAAA;AAAF,UAAuB,qCAAuBH,KAAK,CAACE,SAA7B,EAAwCT,oBAAxC,EAA8DC,OAA9D,CAA7B;AACA,YAAMU,aAAa,GAAGV,OAAO,CAACW,YAAR,CAAqBC,GAArB,CAAyBH,gBAAzB,CAAtB;;AAEA,UAAI,EAACC,aAAD,aAACA,aAAD,eAACA,aAAa,CAAEG,YAAhB,KAAgC,EAACH,aAAD,aAACA,aAAD,eAACA,aAAa,CAAEI,aAAhB,CAApC,EAAmE;AACjEV,QAAAA,GAAG,CAACC,GAAD,CAAH,GAAWR,SAAS,CAACQ,GAAD,CAApB;AACD;AACF;;AAED,WAAOD,GAAP;AACD,GAbM,EAaJ,EAbI,CAAP;AAcD,C","sourcesContent":["import { PlainObjectMap } from \"@graphql-box/core\";\nimport { KeysAndPaths, buildFieldKeysAndPaths, getName, resolveFragments } from \"@graphql-box/helpers\";\nimport { FieldNode, SelectionNode } from \"graphql\";\nimport { keys } from \"lodash\";\nimport { CacheManagerContext } from \"../defs\";\n\nexport default (\n fieldData: PlainObjectMap,\n selectionNodes: readonly SelectionNode[],\n ancestorKeysAndPaths: KeysAndPaths,\n context: CacheManagerContext,\n) => {\n const fieldAndTypeName = resolveFragments(selectionNodes, context.fragmentDefinitions);\n\n return keys(fieldData).reduce((acc: PlainObjectMap, key) => {\n const match = fieldAndTypeName.find(({ fieldNode }) => (getName(fieldNode) as FieldNode[\"name\"][\"value\"]) === key);\n\n if (match) {\n const { requestFieldPath } = buildFieldKeysAndPaths(match.fieldNode, ancestorKeysAndPaths, context);\n const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);\n\n if (!fieldTypeInfo?.hasArguments && !fieldTypeInfo?.hasDirectives) {\n acc[key] = fieldData[key];\n }\n }\n\n return acc;\n }, {});\n};\n"],"file":"filterOutPropsWithArgsOrDirectives.js"}
|
|
@@ -9,19 +9,18 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _helpers = require("@graphql-box/helpers");
|
|
11
11
|
|
|
12
|
-
var _buildKeysAndPaths = require("./buildKeysAndPaths");
|
|
13
|
-
|
|
14
12
|
var _createFragmentSpreadChecklist = _interopRequireDefault(require("./createFragmentSpreadChecklist"));
|
|
15
13
|
|
|
16
14
|
var _filterField = _interopRequireDefault(require("./filterField"));
|
|
17
15
|
|
|
18
16
|
var _filterFragmentDefinitions = _interopRequireDefault(require("./filterFragmentDefinitions"));
|
|
19
17
|
|
|
20
|
-
var _default = ({
|
|
21
|
-
ast
|
|
22
|
-
}, {
|
|
18
|
+
var _default = (requestData, {
|
|
23
19
|
fieldPathChecklist
|
|
24
20
|
}, context) => {
|
|
21
|
+
const {
|
|
22
|
+
ast
|
|
23
|
+
} = requestData;
|
|
25
24
|
const queryNode = (0, _helpers.getOperationDefinitions)(ast, context.operation)[0];
|
|
26
25
|
const {
|
|
27
26
|
fragmentDefinitions
|
|
@@ -34,7 +33,7 @@ var _default = ({
|
|
|
34
33
|
return ast;
|
|
35
34
|
}
|
|
36
35
|
|
|
37
|
-
const fragmentSpreadChecklist = (0, _createFragmentSpreadChecklist.default)(
|
|
36
|
+
const fragmentSpreadChecklist = (0, _createFragmentSpreadChecklist.default)(requestData, context);
|
|
38
37
|
|
|
39
38
|
for (let i = fieldsAndTypeNames.length - 1; i >= 0; i -= 1) {
|
|
40
39
|
const {
|
|
@@ -42,7 +41,7 @@ var _default = ({
|
|
|
42
41
|
} = fieldsAndTypeNames[i];
|
|
43
42
|
const {
|
|
44
43
|
requestFieldPath
|
|
45
|
-
} = (0,
|
|
44
|
+
} = (0, _helpers.buildFieldKeysAndPaths)(fieldNode, {
|
|
46
45
|
requestFieldPath: context.operation
|
|
47
46
|
}, context);
|
|
48
47
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/helpers/filterQuery.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterQuery.ts"],"names":["requestData","fieldPathChecklist","context","ast","queryNode","operation","fragmentDefinitions","fieldsAndTypeNames","fragmentSpreadChecklist","i","length","fieldNode","requestFieldPath","queryFiltered"],"mappings":";;;;;;;;;AACA;;AAOA;;AACA;;AACA;;eAEe,CAACA,WAAD,EAA2B;AAAEC,EAAAA;AAAF,CAA3B,EAAuEC,OAAvE,KAAwG;AACrH,QAAM;AAAEC,IAAAA;AAAF,MAAUH,WAAhB;AACA,QAAMI,SAAS,GAAG,sCAAwBD,GAAxB,EAA6BD,OAAO,CAACG,SAArC,EAAgD,CAAhD,CAAlB;AACA,QAAM;AAAEC,IAAAA;AAAF,MAA0BJ,OAAhC;AACA,QAAMK,kBAAkB,GAAG,6BAAeH,SAAf,EAA0B;AAAEE,IAAAA;AAAF,GAA1B,CAA3B;;AAEA,MAAI,CAACC,kBAAL,EAAyB;AACvB,WAAOJ,GAAP;AACD;;AAED,QAAMK,uBAAuB,GAAG,4CAA8BR,WAA9B,EAA2CE,OAA3C,CAAhC;;AAEA,OAAK,IAAIO,CAAC,GAAGF,kBAAkB,CAACG,MAAnB,GAA4B,CAAzC,EAA4CD,CAAC,IAAI,CAAjD,EAAoDA,CAAC,IAAI,CAAzD,EAA4D;AAC1D,UAAM;AAAEE,MAAAA;AAAF,QAAgBJ,kBAAkB,CAACE,CAAD,CAAxC;AAEA,UAAM;AAAEG,MAAAA;AAAF,QAAuB,qCAC3BD,SAD2B,EAE3B;AACEC,MAAAA,gBAAgB,EAAEV,OAAO,CAACG;AAD5B,KAF2B,EAK3BH,OAL2B,CAA7B;;AAQA,QAAI,0BAAYS,SAAZ,EAAuBV,kBAAvB,EAA2CO,uBAA3C,EAAoEI,gBAApE,EAAsFV,OAAtF,CAAJ,EAAoG;AAClG,sCAAkBE,SAAlB,EAA6BO,SAA7B;AACD;AACF;;AAEDT,EAAAA,OAAO,CAACW,aAAR,GAAwB,IAAxB;AACA,SAAO,wCAA0BV,GAA1B,EAA+BF,kBAA/B,EAAmDO,uBAAnD,EAA4EN,OAA5E,CAAP;AACD,C","sourcesContent":["import { RequestData } from \"@graphql-box/core\";\nimport {\n buildFieldKeysAndPaths,\n deleteChildFields,\n getChildFields,\n getOperationDefinitions,\n} from \"@graphql-box/helpers\";\nimport { CacheManagerContext, CachedResponseData } from \"../defs\";\nimport createFragmentSpreadChecklist from \"./createFragmentSpreadChecklist\";\nimport filterField from \"./filterField\";\nimport filterFragmentDefinitions from \"./filterFragmentDefinitions\";\n\nexport default (requestData: RequestData, { fieldPathChecklist }: CachedResponseData, context: CacheManagerContext) => {\n const { ast } = requestData;\n const queryNode = getOperationDefinitions(ast, context.operation)[0];\n const { fragmentDefinitions } = context;\n const fieldsAndTypeNames = getChildFields(queryNode, { fragmentDefinitions });\n\n if (!fieldsAndTypeNames) {\n return ast;\n }\n\n const fragmentSpreadChecklist = createFragmentSpreadChecklist(requestData, context);\n\n for (let i = fieldsAndTypeNames.length - 1; i >= 0; i -= 1) {\n const { fieldNode } = fieldsAndTypeNames[i];\n\n const { requestFieldPath } = buildFieldKeysAndPaths(\n fieldNode,\n {\n requestFieldPath: context.operation,\n },\n context,\n );\n\n if (filterField(fieldNode, fieldPathChecklist, fragmentSpreadChecklist, requestFieldPath, context)) {\n deleteChildFields(queryNode, fieldNode);\n }\n }\n\n context.queryFiltered = true;\n return filterFragmentDefinitions(ast, fieldPathChecklist, fragmentSpreadChecklist, context);\n};\n"],"file":"filterQuery.js"}
|
package/lib/main/main/index.js
CHANGED
|
@@ -44,8 +44,6 @@ var _consts = require("../consts");
|
|
|
44
44
|
|
|
45
45
|
var _debug = require("../debug");
|
|
46
46
|
|
|
47
|
-
var _buildKeysAndPaths = require("../helpers/buildKeysAndPaths");
|
|
48
|
-
|
|
49
47
|
var _deriveOpCacheability = _interopRequireDefault(require("../helpers/deriveOpCacheability"));
|
|
50
48
|
|
|
51
49
|
var _filterOutPropsWithArgsOrDirectives = _interopRequireDefault(require("../helpers/filterOutPropsWithArgsOrDirectives"));
|
|
@@ -312,7 +310,7 @@ let CacheManager = (_dec = (0, _debug.logCacheQuery)(), _dec2 = (0, _debug.logCa
|
|
|
312
310
|
|
|
313
311
|
async cacheQuery(requestData, updatedRequestData, rawResponseData, options, context) {
|
|
314
312
|
const cacheManagerContext = { ...context,
|
|
315
|
-
fragmentDefinitions: (0, _helpers.getFragmentDefinitions)(updatedRequestData.ast),
|
|
313
|
+
fragmentDefinitions: (0, _helpers.getFragmentDefinitions)((updatedRequestData !== null && updatedRequestData !== void 0 ? updatedRequestData : requestData).ast),
|
|
316
314
|
typeIDKey: this._typeIDKey
|
|
317
315
|
};
|
|
318
316
|
return this._cacheResponse(requestData, updatedRequestData, rawResponseData, options, cacheManagerContext);
|
|
@@ -351,6 +349,10 @@ let CacheManager = (_dec = (0, _debug.logCacheQuery)(), _dec2 = (0, _debug.logCa
|
|
|
351
349
|
this._partialQueryResponses.delete(hash);
|
|
352
350
|
}
|
|
353
351
|
|
|
352
|
+
async setQueryResponseCacheEntry(requestData, responseData, options, context) {
|
|
353
|
+
return this._setQueryResponseCacheEntry(requestData.hash, responseData, options, context);
|
|
354
|
+
}
|
|
355
|
+
|
|
354
356
|
async _analyzeFieldNode(fieldNode, cachedAncestorFieldData, cachedResponseData, options, context) {
|
|
355
357
|
if ((0, _helpers.hasChildFields)(fieldNode, {
|
|
356
358
|
fragmentDefinitions: context.fragmentDefinitions
|
|
@@ -362,7 +364,7 @@ let CacheManager = (_dec = (0, _debug.logCacheQuery)(), _dec2 = (0, _debug.logCa
|
|
|
362
364
|
}
|
|
363
365
|
|
|
364
366
|
async _analyzeLeafFieldNode(fieldNode, cachedAncestorFieldData, cachedResponseData, options, context) {
|
|
365
|
-
const keysAndPaths = (0,
|
|
367
|
+
const keysAndPaths = (0, _helpers.buildFieldKeysAndPaths)(fieldNode, cachedAncestorFieldData, context);
|
|
366
368
|
const {
|
|
367
369
|
hashedRequestFieldCacheKey,
|
|
368
370
|
propNameOrIndex,
|
|
@@ -407,7 +409,7 @@ let CacheManager = (_dec = (0, _debug.logCacheQuery)(), _dec2 = (0, _debug.logCa
|
|
|
407
409
|
}
|
|
408
410
|
|
|
409
411
|
async _analyzeParentFieldNode(fieldNode, cachedAncestorFieldData, cachedResponseData, options, context) {
|
|
410
|
-
const keysAndPaths = (0,
|
|
412
|
+
const keysAndPaths = (0, _helpers.buildFieldKeysAndPaths)(fieldNode, cachedAncestorFieldData, context);
|
|
411
413
|
const {
|
|
412
414
|
propNameOrIndex,
|
|
413
415
|
requestFieldCacheKey,
|
|
@@ -670,7 +672,7 @@ let CacheManager = (_dec = (0, _debug.logCacheQuery)(), _dec2 = (0, _debug.logCa
|
|
|
670
672
|
entityData,
|
|
671
673
|
requestFieldPathData
|
|
672
674
|
}, options, context) {
|
|
673
|
-
const keysAndPaths = (0,
|
|
675
|
+
const keysAndPaths = (0, _helpers.buildFieldKeysAndPaths)(field, ancestorKeysAndPaths, context);
|
|
674
676
|
const {
|
|
675
677
|
requestFieldCacheKey,
|
|
676
678
|
requestFieldPath,
|
|
@@ -931,7 +933,7 @@ let CacheManager = (_dec = (0, _debug.logCacheQuery)(), _dec2 = (0, _debug.logCa
|
|
|
931
933
|
const {
|
|
932
934
|
requestFieldPath: ancestorRequestFieldPath
|
|
933
935
|
} = ancestorKeysAndPaths;
|
|
934
|
-
const keysAndPaths = (0,
|
|
936
|
+
const keysAndPaths = (0, _helpers.buildFieldKeysAndPaths)(field, ancestorKeysAndPaths, context);
|
|
935
937
|
const {
|
|
936
938
|
requestFieldPath,
|
|
937
939
|
responseDataPath
|