@graphql-box/cache-manager 2.1.2 → 2.3.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 +139 -17
- package/lib/main/debug/log-cache-entry/index.js.map +1 -1
- package/lib/main/debug/log-partial-compiled/index.js.map +1 -1
- package/lib/main/helpers/buildKeysAndPaths.js +73 -0
- package/lib/main/helpers/buildKeysAndPaths.js.map +1 -0
- package/lib/main/helpers/checkFieldPathChecklist.js +40 -0
- package/lib/main/helpers/checkFieldPathChecklist.js.map +1 -0
- package/lib/main/helpers/createFragmentSpreadChecklist.js +28 -0
- package/lib/main/helpers/createFragmentSpreadChecklist.js.map +1 -0
- package/lib/main/helpers/deriveOpCacheability.js +46 -0
- package/lib/main/helpers/deriveOpCacheability.js.map +1 -0
- package/lib/main/helpers/filterField.js +97 -0
- package/lib/main/helpers/filterField.js.map +1 -0
- package/lib/main/helpers/filterFragmentDefinitions.js +50 -0
- package/lib/main/helpers/filterFragmentDefinitions.js.map +1 -0
- package/lib/main/helpers/filterFragmentSpreads.js +37 -0
- package/lib/main/helpers/filterFragmentSpreads.js.map +1 -0
- package/lib/main/helpers/filterIDsAndTypeNames.js +47 -0
- package/lib/main/helpers/filterIDsAndTypeNames.js.map +1 -0
- package/lib/main/helpers/filterInlineFragments.js +42 -0
- package/lib/main/helpers/filterInlineFragments.js.map +1 -0
- package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js +39 -0
- package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js.map +1 -0
- package/lib/main/helpers/filterQuery.js +59 -0
- package/lib/main/helpers/filterQuery.js.map +1 -0
- package/lib/main/helpers/normalizeResponseData.js +23 -0
- package/lib/main/helpers/normalizeResponseData.js.map +1 -0
- package/lib/main/helpers/validTypeIDValue.js +20 -0
- package/lib/main/helpers/validTypeIDValue.js.map +1 -0
- package/lib/main/main/index.js +477 -476
- package/lib/main/main/index.js.map +1 -1
- package/lib/module/debug/log-cache-entry/index.js.map +1 -1
- package/lib/module/debug/log-partial-compiled/index.js.map +1 -1
- package/lib/module/helpers/buildKeysAndPaths.js +54 -0
- package/lib/module/helpers/buildKeysAndPaths.js.map +1 -0
- package/lib/module/helpers/checkFieldPathChecklist.js +31 -0
- package/lib/module/helpers/checkFieldPathChecklist.js.map +1 -0
- package/lib/module/helpers/createFragmentSpreadChecklist.js +15 -0
- package/lib/module/helpers/createFragmentSpreadChecklist.js.map +1 -0
- package/lib/module/helpers/deriveOpCacheability.js +32 -0
- package/lib/module/helpers/deriveOpCacheability.js.map +1 -0
- package/lib/module/helpers/filterField.js +81 -0
- package/lib/module/helpers/filterField.js.map +1 -0
- package/lib/module/helpers/filterFragmentDefinitions.js +39 -0
- package/lib/module/helpers/filterFragmentDefinitions.js.map +1 -0
- package/lib/module/helpers/filterFragmentSpreads.js +23 -0
- package/lib/module/helpers/filterFragmentSpreads.js.map +1 -0
- package/lib/module/helpers/filterIDsAndTypeNames.js +36 -0
- package/lib/module/helpers/filterIDsAndTypeNames.js.map +1 -0
- package/lib/module/helpers/filterInlineFragments.js +32 -0
- package/lib/module/helpers/filterInlineFragments.js.map +1 -0
- package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js +25 -0
- package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js.map +1 -0
- package/lib/module/helpers/filterQuery.js +43 -0
- package/lib/module/helpers/filterQuery.js.map +1 -0
- package/lib/module/helpers/normalizeResponseData.js +11 -0
- package/lib/module/helpers/normalizeResponseData.js.map +1 -0
- package/lib/module/helpers/validTypeIDValue.js +8 -0
- package/lib/module/helpers/validTypeIDValue.js.map +1 -0
- package/lib/module/main/index.js +474 -475
- package/lib/module/main/index.js.map +1 -1
- package/lib/types/debug/log-cache-entry/index.d.ts.map +1 -1
- package/lib/types/debug/log-cache-query/index.d.ts.map +1 -1
- package/lib/types/debug/log-partial-compiled/index.d.ts.map +1 -1
- package/lib/types/defs/index.d.ts +19 -9
- package/lib/types/defs/index.d.ts.map +1 -1
- package/lib/types/helpers/buildKeysAndPaths.d.ts +10 -0
- package/lib/types/helpers/buildKeysAndPaths.d.ts.map +1 -0
- package/lib/types/helpers/checkFieldPathChecklist.d.ts +4 -0
- package/lib/types/helpers/checkFieldPathChecklist.d.ts.map +1 -0
- package/lib/types/helpers/createFragmentSpreadChecklist.d.ts +11 -0
- package/lib/types/helpers/createFragmentSpreadChecklist.d.ts.map +1 -0
- package/lib/types/helpers/deriveOpCacheability.d.ts +10 -0
- package/lib/types/helpers/deriveOpCacheability.d.ts.map +1 -0
- package/lib/types/helpers/filterField.d.ts +6 -0
- package/lib/types/helpers/filterField.d.ts.map +1 -0
- package/lib/types/helpers/filterFragmentDefinitions.d.ts +10 -0
- package/lib/types/helpers/filterFragmentDefinitions.d.ts.map +1 -0
- package/lib/types/helpers/filterFragmentSpreads.d.ts +6 -0
- package/lib/types/helpers/filterFragmentSpreads.d.ts.map +1 -0
- package/lib/types/helpers/filterIDsAndTypeNames.d.ts +5 -0
- package/lib/types/helpers/filterIDsAndTypeNames.d.ts.map +1 -0
- package/lib/types/helpers/filterInlineFragments.d.ts +5 -0
- package/lib/types/helpers/filterInlineFragments.d.ts.map +1 -0
- package/lib/types/helpers/filterOutPropsWithArgsOrDirectives.d.ts +6 -0
- package/lib/types/helpers/filterOutPropsWithArgsOrDirectives.d.ts.map +1 -0
- package/lib/types/helpers/filterQuery.d.ts +5 -0
- package/lib/types/helpers/filterQuery.d.ts.map +1 -0
- package/lib/types/helpers/normalizeResponseData.d.ts +10 -0
- package/lib/types/helpers/normalizeResponseData.d.ts.map +1 -0
- package/lib/types/helpers/validTypeIDValue.d.ts +3 -0
- package/lib/types/helpers/validTypeIDValue.d.ts.map +1 -0
- package/lib/types/main/index.d.ts +13 -20
- package/lib/types/main/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/__snapshots__/index.test.ts.snap +17449 -7185
- package/src/debug/log-cache-entry/index.ts +1 -1
- package/src/debug/log-partial-compiled/index.ts +1 -1
- package/src/defs/index.ts +18 -10
- package/src/helpers/buildKeysAndPaths.ts +71 -0
- package/src/helpers/checkFieldPathChecklist.ts +21 -0
- package/src/helpers/createFragmentSpreadChecklist.ts +17 -0
- package/src/helpers/deriveOpCacheability.ts +32 -0
- package/src/helpers/filterField.ts +73 -0
- package/src/helpers/filterFragmentDefinitions.ts +40 -0
- package/src/helpers/filterFragmentSpreads.ts +28 -0
- package/src/helpers/filterIDsAndTypeNames.ts +31 -0
- package/src/helpers/filterInlineFragments.ts +29 -0
- package/src/helpers/filterOutPropsWithArgsOrDirectives.ts +30 -0
- package/src/helpers/filterQuery.ts +38 -0
- package/src/helpers/normalizeResponseData.ts +9 -0
- package/src/helpers/validTypeIDValue.ts +11 -0
- package/src/index.test.ts +179 -3
- package/src/main/index.ts +516 -499
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _keys2 = _interopRequireDefault(require("lodash/keys"));
|
|
11
|
+
|
|
12
|
+
var _isEmpty2 = _interopRequireDefault(require("lodash/isEmpty"));
|
|
13
|
+
|
|
14
|
+
var _helpers = require("@graphql-box/helpers");
|
|
15
|
+
|
|
16
|
+
var _default = (field, fragmentSpreadFieldCounter, fragmentSpreadChecklist, ancestorRequestFieldPath) => {
|
|
17
|
+
if ((0, _isEmpty2.default)(fragmentSpreadFieldCounter)) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
(0, _keys2.default)(fragmentSpreadFieldCounter).forEach(key => {
|
|
22
|
+
fragmentSpreadChecklist[key].total += 1;
|
|
23
|
+
fragmentSpreadChecklist[key].paths.push(ancestorRequestFieldPath);
|
|
24
|
+
const {
|
|
25
|
+
hasData,
|
|
26
|
+
total
|
|
27
|
+
} = fragmentSpreadFieldCounter[key];
|
|
28
|
+
|
|
29
|
+
if (hasData === total) {
|
|
30
|
+
(0, _helpers.deleteFragmentSpreads)(field, key);
|
|
31
|
+
fragmentSpreadChecklist[key].deleted += 1;
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
exports.default = _default;
|
|
37
|
+
//# sourceMappingURL=filterFragmentSpreads.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterFragmentSpreads.ts"],"names":["field","fragmentSpreadFieldCounter","fragmentSpreadChecklist","ancestorRequestFieldPath","forEach","key","total","paths","push","hasData","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,IAAsC,CAAtC;AACAJ,IAAAA,uBAAuB,CAACG,GAAD,CAAvB,CAA6BE,KAA7B,CAAmCC,IAAnC,CAAwCL,wBAAxC;AAEA,UAAM;AAAEM,MAAAA,OAAF;AAAWH,MAAAA;AAAX,QAAqBL,0BAA0B,CAACI,GAAD,CAArD;;AAEA,QAAII,OAAO,KAAKH,KAAhB,EAAuB;AACrB,0CAAsBN,KAAtB,EAA6BK,GAA7B;AACAH,MAAAA,uBAAuB,CAACG,GAAD,CAAvB,CAA6BK,OAA7B,IAAwC,CAAxC;AACD;AACF,GAVD;AAWD,C","sourcesContent":["import { deleteFragmentSpreads } from \"@graphql-box/helpers\";\nimport { FieldNode, FragmentDefinitionNode } from \"graphql\";\nimport { isEmpty, keys } from \"lodash\";\nimport { FragmentSpreadFieldCounter } from \"../defs\";\nimport { FragmentSpreadCheckist } from \"./createFragmentSpreadChecklist\";\n\nexport default (\n field: FieldNode | FragmentDefinitionNode,\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].total += 1;\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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
|
|
8
|
+
var _core = require("@graphql-box/core");
|
|
9
|
+
|
|
10
|
+
var _helpers = require("@graphql-box/helpers");
|
|
11
|
+
|
|
12
|
+
var _default = (field, {
|
|
13
|
+
fragmentDefinitions,
|
|
14
|
+
typeIDKey
|
|
15
|
+
}) => {
|
|
16
|
+
const fieldsAndTypeNames = (0, _helpers.getChildFields)(field, {
|
|
17
|
+
fragmentDefinitions
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
if (!fieldsAndTypeNames || fieldsAndTypeNames.length > 3) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const fieldNames = fieldsAndTypeNames.map(({
|
|
25
|
+
fieldNode
|
|
26
|
+
}) => (0, _helpers.getName)(fieldNode));
|
|
27
|
+
|
|
28
|
+
if (fieldNames.length === 2 && fieldNames.every(name => name === typeIDKey || name === _core.TYPE_NAME_KEY)) {
|
|
29
|
+
(0, _helpers.deleteChildFields)(field, fieldsAndTypeNames.map(({
|
|
30
|
+
fieldNode
|
|
31
|
+
}) => fieldNode));
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (fieldNames.length === 1 && fieldNames[0] === typeIDKey || fieldNames[0] === _core.TYPE_NAME_KEY) {
|
|
36
|
+
const {
|
|
37
|
+
fieldNode
|
|
38
|
+
} = fieldsAndTypeNames[0];
|
|
39
|
+
(0, _helpers.deleteChildFields)(field, fieldNode);
|
|
40
|
+
return true;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return false;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
exports.default = _default;
|
|
47
|
+
//# sourceMappingURL=filterIDsAndTypeNames.js.map
|
|
@@ -0,0 +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,CAACA,KAAD,EAA4C;AAAEC,EAAAA,mBAAF;AAAuBC,EAAAA;AAAvB,CAA5C,KAAwG;AACrH,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 } from \"graphql\";\nimport { CacheManagerContext } from \"../defs\";\n\nexport default (field: FieldNode | FragmentDefinitionNode, { fragmentDefinitions, typeIDKey }: CacheManagerContext) => {\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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
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 = (field, {
|
|
11
|
+
fragmentDefinitions,
|
|
12
|
+
typeIDKey
|
|
13
|
+
}) => {
|
|
14
|
+
const inlineFragments = (0, _helpers.getInlineFragments)(field);
|
|
15
|
+
let filtered = false;
|
|
16
|
+
inlineFragments.forEach(fragment => {
|
|
17
|
+
const fieldsAndTypeNames = (0, _helpers.getChildFields)(fragment, {
|
|
18
|
+
fragmentDefinitions
|
|
19
|
+
});
|
|
20
|
+
|
|
21
|
+
if (!fieldsAndTypeNames || !fieldsAndTypeNames.length) {
|
|
22
|
+
(0, _helpers.deleteInlineFragments)(field, fragment);
|
|
23
|
+
filtered = true;
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
if (fieldsAndTypeNames.length === 1) {
|
|
28
|
+
const {
|
|
29
|
+
fieldNode
|
|
30
|
+
} = fieldsAndTypeNames[0];
|
|
31
|
+
|
|
32
|
+
if ((0, _helpers.getName)(fieldNode) === typeIDKey) {
|
|
33
|
+
(0, _helpers.deleteInlineFragments)(field, fragment);
|
|
34
|
+
filtered = true;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
return filtered;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
exports.default = _default;
|
|
42
|
+
//# sourceMappingURL=filterInlineFragments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterInlineFragments.ts"],"names":["field","fragmentDefinitions","typeIDKey","inlineFragments","filtered","forEach","fragment","fieldsAndTypeNames","length","fieldNode"],"mappings":";;;;;;;AAAA;;eAIe,CAACA,KAAD,EAA4C;AAAEC,EAAAA,mBAAF;AAAuBC,EAAAA;AAAvB,CAA5C,KAAwG;AACrH,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 } from \"graphql\";\nimport { CacheManagerContext } from \"..\";\n\nexport default (field: FieldNode | FragmentDefinitionNode, { fragmentDefinitions, typeIDKey }: CacheManagerContext) => {\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,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _keys2 = _interopRequireDefault(require("lodash/keys"));
|
|
11
|
+
|
|
12
|
+
var _helpers = require("@graphql-box/helpers");
|
|
13
|
+
|
|
14
|
+
var _buildKeysAndPaths = require("./buildKeysAndPaths");
|
|
15
|
+
|
|
16
|
+
var _default = (fieldData, selectionNodes, ancestorKeysAndPaths, context) => {
|
|
17
|
+
const fieldAndTypeName = (0, _helpers.resolveFragments)(selectionNodes, context.fragmentDefinitions);
|
|
18
|
+
return (0, _keys2.default)(fieldData).reduce((acc, key) => {
|
|
19
|
+
const match = fieldAndTypeName.find(({
|
|
20
|
+
fieldNode
|
|
21
|
+
}) => (0, _helpers.getName)(fieldNode) === key);
|
|
22
|
+
|
|
23
|
+
if (match) {
|
|
24
|
+
const {
|
|
25
|
+
requestFieldPath
|
|
26
|
+
} = (0, _buildKeysAndPaths.buildFieldKeysAndPaths)(match.fieldNode, ancestorKeysAndPaths, context);
|
|
27
|
+
const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);
|
|
28
|
+
|
|
29
|
+
if (!(fieldTypeInfo !== null && fieldTypeInfo !== void 0 && fieldTypeInfo.hasArguments) && !(fieldTypeInfo !== null && fieldTypeInfo !== void 0 && fieldTypeInfo.hasDirectives)) {
|
|
30
|
+
acc[key] = fieldData[key];
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return acc;
|
|
35
|
+
}, {});
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
exports.default = _default;
|
|
39
|
+
//# sourceMappingURL=filterOutPropsWithArgsOrDirectives.js.map
|
|
@@ -0,0 +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;;AAIA;;eAEe,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,+CAAuBH,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 { getName, resolveFragments } from \"@graphql-box/helpers\";\nimport { FieldNode, SelectionNode } from \"graphql\";\nimport { keys } from \"lodash\";\nimport { CacheManagerContext, KeysAndPaths } from \"../defs\";\nimport { buildFieldKeysAndPaths } from \"./buildKeysAndPaths\";\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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _helpers = require("@graphql-box/helpers");
|
|
11
|
+
|
|
12
|
+
var _buildKeysAndPaths = require("./buildKeysAndPaths");
|
|
13
|
+
|
|
14
|
+
var _createFragmentSpreadChecklist = _interopRequireDefault(require("./createFragmentSpreadChecklist"));
|
|
15
|
+
|
|
16
|
+
var _filterField = _interopRequireDefault(require("./filterField"));
|
|
17
|
+
|
|
18
|
+
var _filterFragmentDefinitions = _interopRequireDefault(require("./filterFragmentDefinitions"));
|
|
19
|
+
|
|
20
|
+
var _default = ({
|
|
21
|
+
ast
|
|
22
|
+
}, {
|
|
23
|
+
fieldPathChecklist
|
|
24
|
+
}, context) => {
|
|
25
|
+
const queryNode = (0, _helpers.getOperationDefinitions)(ast, context.operation)[0];
|
|
26
|
+
const {
|
|
27
|
+
fragmentDefinitions
|
|
28
|
+
} = context;
|
|
29
|
+
const fieldsAndTypeNames = (0, _helpers.getChildFields)(queryNode, {
|
|
30
|
+
fragmentDefinitions
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
if (!fieldsAndTypeNames) {
|
|
34
|
+
return ast;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
const fragmentSpreadChecklist = (0, _createFragmentSpreadChecklist.default)(ast);
|
|
38
|
+
|
|
39
|
+
for (let i = fieldsAndTypeNames.length - 1; i >= 0; i -= 1) {
|
|
40
|
+
const {
|
|
41
|
+
fieldNode
|
|
42
|
+
} = fieldsAndTypeNames[i];
|
|
43
|
+
const {
|
|
44
|
+
requestFieldPath
|
|
45
|
+
} = (0, _buildKeysAndPaths.buildFieldKeysAndPaths)(fieldNode, {
|
|
46
|
+
requestFieldPath: context.operation
|
|
47
|
+
}, context);
|
|
48
|
+
|
|
49
|
+
if ((0, _filterField.default)(fieldNode, fieldPathChecklist, fragmentSpreadChecklist, requestFieldPath, context)) {
|
|
50
|
+
(0, _helpers.deleteChildFields)(queryNode, fieldNode);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
context.queryFiltered = true;
|
|
55
|
+
return (0, _filterFragmentDefinitions.default)(ast, fieldPathChecklist, fragmentSpreadChecklist, context);
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
exports.default = _default;
|
|
59
|
+
//# sourceMappingURL=filterQuery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterQuery.ts"],"names":["ast","fieldPathChecklist","context","queryNode","operation","fragmentDefinitions","fieldsAndTypeNames","fragmentSpreadChecklist","i","length","fieldNode","requestFieldPath","queryFiltered"],"mappings":";;;;;;;;;AACA;;AAEA;;AACA;;AACA;;AACA;;eAEe,CAAC;AAAEA,EAAAA;AAAF,CAAD,EAAuB;AAAEC,EAAAA;AAAF,CAAvB,EAAmEC,OAAnE,KAAoG;AACjH,QAAMC,SAAS,GAAG,sCAAwBH,GAAxB,EAA6BE,OAAO,CAACE,SAArC,EAAgD,CAAhD,CAAlB;AACA,QAAM;AAAEC,IAAAA;AAAF,MAA0BH,OAAhC;AACA,QAAMI,kBAAkB,GAAG,6BAAeH,SAAf,EAA0B;AAAEE,IAAAA;AAAF,GAA1B,CAA3B;;AAEA,MAAI,CAACC,kBAAL,EAAyB;AACvB,WAAON,GAAP;AACD;;AAED,QAAMO,uBAAuB,GAAG,4CAA8BP,GAA9B,CAAhC;;AAEA,OAAK,IAAIQ,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,+CAC3BD,SAD2B,EAE3B;AACEC,MAAAA,gBAAgB,EAAET,OAAO,CAACE;AAD5B,KAF2B,EAK3BF,OAL2B,CAA7B;;AAQA,QAAI,0BAAYQ,SAAZ,EAAuBT,kBAAvB,EAA2CM,uBAA3C,EAAoEI,gBAApE,EAAsFT,OAAtF,CAAJ,EAAoG;AAClG,sCAAkBC,SAAlB,EAA6BO,SAA7B;AACD;AACF;;AAEDR,EAAAA,OAAO,CAACU,aAAR,GAAwB,IAAxB;AACA,SAAO,wCAA0BZ,GAA1B,EAA+BC,kBAA/B,EAAmDM,uBAAnD,EAA4EL,OAA5E,CAAP;AACD,C","sourcesContent":["import { RequestData } from \"@graphql-box/core\";\nimport { deleteChildFields, getChildFields, getOperationDefinitions } from \"@graphql-box/helpers\";\nimport { CacheManagerContext, CachedResponseData } from \"../defs\";\nimport { buildFieldKeysAndPaths } from \"./buildKeysAndPaths\";\nimport createFragmentSpreadChecklist from \"./createFragmentSpreadChecklist\";\nimport filterField from \"./filterField\";\nimport filterFragmentDefinitions from \"./filterFragmentDefinitions\";\n\nexport default ({ ast }: RequestData, { fieldPathChecklist }: CachedResponseData, context: CacheManagerContext) => {\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(ast);\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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var _set2 = _interopRequireDefault(require("lodash/set"));
|
|
11
|
+
|
|
12
|
+
var _default = ({
|
|
13
|
+
data,
|
|
14
|
+
path,
|
|
15
|
+
...rest
|
|
16
|
+
}) => {
|
|
17
|
+
return { ...rest,
|
|
18
|
+
data: (0, _set2.default)({}, path, data)
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
exports.default = _default;
|
|
23
|
+
//# sourceMappingURL=normalizeResponseData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/normalizeResponseData.ts"],"names":["data","path","rest"],"mappings":";;;;;;;;;;;eAGe,CAAC;AAAEA,EAAAA,IAAF;AAAQC,EAAAA,IAAR;AAAc,KAAGC;AAAjB,CAAD,KAAoE;AACjF,SAAO,EACL,GAAGA,IADE;AAELF,IAAAA,IAAI,EAAE,mBAAI,EAAJ,EAAQC,IAAR,EAAqCD,IAArC;AAFD,GAAP;AAID,C","sourcesContent":["import { RawResponseDataWithMaybeCacheMetadata } from \"@graphql-box/core\";\nimport { set } from \"lodash\";\n\nexport default ({ data, path, ...rest }: RawResponseDataWithMaybeCacheMetadata) => {\n return {\n ...rest,\n data: set({}, path as (string | number)[], data),\n };\n};\n"],"file":"normalizeResponseData.js"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.getValidTypeIDValue = void 0;
|
|
9
|
+
|
|
10
|
+
var _isPlainObject2 = _interopRequireDefault(require("lodash/isPlainObject"));
|
|
11
|
+
|
|
12
|
+
const getValidTypeIDValue = (requestFieldPathData, {
|
|
13
|
+
typeIDValue
|
|
14
|
+
}, typeIDKey) => {
|
|
15
|
+
const requestFieldPathDataIDValue = (0, _isPlainObject2.default)(requestFieldPathData) ? requestFieldPathData[typeIDKey] : undefined;
|
|
16
|
+
return typeIDValue || requestFieldPathDataIDValue;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
exports.getValidTypeIDValue = getValidTypeIDValue;
|
|
20
|
+
//# sourceMappingURL=validTypeIDValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/validTypeIDValue.ts"],"names":["getValidTypeIDValue","requestFieldPathData","typeIDValue","typeIDKey","requestFieldPathDataIDValue","undefined"],"mappings":";;;;;;;;;;;AAGO,MAAMA,mBAAmB,GAAG,CACjCC,oBADiC,EAEjC;AAAEC,EAAAA;AAAF,CAFiC,EAGjCC,SAHiC,KAID;AAChC,QAAMC,2BAA2B,GAAG,6BAAcH,oBAAd,IAAsCA,oBAAoB,CAACE,SAAD,CAA1D,GAAwEE,SAA5G;AACA,SAAOH,WAAW,IAAIE,2BAAtB;AACD,CAPM","sourcesContent":["import { FieldTypeInfo } from \"@graphql-box/core\";\nimport { isPlainObject } from \"lodash\";\n\nexport const getValidTypeIDValue = (\n requestFieldPathData: any,\n { typeIDValue }: FieldTypeInfo,\n typeIDKey: string,\n): string | number | undefined => {\n const requestFieldPathDataIDValue = isPlainObject(requestFieldPathData) ? requestFieldPathData[typeIDKey] : undefined;\n return typeIDValue || requestFieldPathDataIDValue;\n};\n"],"file":"validTypeIDValue.js"}
|