@graphql-box/cache-manager 3.1.2 → 3.2.2
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 +44 -56
- package/lib/main/debug/log-cache-entry/index.js +8 -3
- package/lib/main/debug/log-cache-entry/index.js.map +1 -1
- package/lib/main/debug/log-cache-query/index.js +8 -3
- package/lib/main/debug/log-cache-query/index.js.map +1 -1
- package/lib/main/helpers/createFragmentSpreadChecklist.js +10 -15
- 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 +3 -3
- package/lib/main/helpers/filterFragmentDefinitions.js.map +1 -1
- package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js +1 -3
- package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js.map +1 -1
- package/lib/main/helpers/filterQuery.js +2 -4
- package/lib/main/helpers/filterQuery.js.map +1 -1
- package/lib/main/main/index.js +25 -14
- package/lib/main/main/index.js.map +1 -1
- package/lib/module/debug/log-cache-entry/index.js +8 -3
- package/lib/module/debug/log-cache-entry/index.js.map +1 -1
- package/lib/module/debug/log-cache-query/index.js +8 -3
- package/lib/module/debug/log-cache-query/index.js.map +1 -1
- package/lib/module/helpers/createFragmentSpreadChecklist.js +10 -14
- 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 +4 -4
- package/lib/module/helpers/filterFragmentDefinitions.js.map +1 -1
- package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js +1 -2
- package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js.map +1 -1
- package/lib/module/helpers/filterQuery.js +2 -3
- package/lib/module/helpers/filterQuery.js.map +1 -1
- package/lib/module/main/index.js +22 -10
- 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/defs/index.d.ts +3 -16
- package/lib/types/defs/index.d.ts.map +1 -1
- package/lib/types/helpers/createFragmentSpreadChecklist.d.ts +2 -1
- package/lib/types/helpers/createFragmentSpreadChecklist.d.ts.map +1 -1
- package/lib/types/helpers/filterField.d.ts.map +1 -1
- 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.map +1 -1
- package/lib/types/main/index.d.ts +6 -3
- package/lib/types/main/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/__snapshots__/index.test.ts.snap +1082 -1082
- package/src/debug/log-cache-entry/index.ts +8 -3
- package/src/debug/log-cache-query/index.ts +8 -3
- package/src/defs/index.ts +8 -17
- package/src/helpers/createFragmentSpreadChecklist.ts +3 -3
- package/src/helpers/filterField.ts +8 -2
- package/src/helpers/filterFragmentDefinitions.ts +2 -2
- package/src/helpers/filterOutPropsWithArgsOrDirectives.ts +2 -3
- package/src/helpers/filterQuery.ts +7 -3
- package/src/main/index.ts +30 -14
- 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 +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":";AAYA,gBAAe,CAAC;AAAEA,EAAAA;AAAF,CAAD,EAA2B;AAAEC,EAAAA;AAAF,CAA3B,KACb,MAAKA,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,CADF","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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { TYPE_NAME_KEY } from "@graphql-box/core";
|
|
2
|
-
import { FRAGMENT_SPREAD, deleteChildFields, getChildFields, getName, hasChildFields } from "@graphql-box/helpers";
|
|
3
|
-
import { buildFieldKeysAndPaths } from "./buildKeysAndPaths";
|
|
2
|
+
import { FRAGMENT_SPREAD, buildFieldKeysAndPaths, deleteChildFields, getChildFields, getName, hasChildFields } from "@graphql-box/helpers";
|
|
4
3
|
import checkFieldPathChecklist from "./checkFieldPathChecklist";
|
|
5
4
|
import filterFragmentSpreads from "./filterFragmentSpreads";
|
|
6
5
|
import filterIDsAndTypeNames from "./filterIDsAndTypeNames";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/helpers/filterField.ts"],"names":["TYPE_NAME_KEY","FRAGMENT_SPREAD","deleteChildFields","getChildFields","getName","hasChildFields","
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterField.ts"],"names":["TYPE_NAME_KEY","FRAGMENT_SPREAD","buildFieldKeysAndPaths","deleteChildFields","getChildFields","getName","hasChildFields","checkFieldPathChecklist","filterFragmentSpreads","filterIDsAndTypeNames","filterInlineFragments","filterField","field","fieldPathChecklist","fragmentSpreadChecklist","ancestorRequestFieldPath","context","fragmentDefinitions","typeIDKey","fieldsAndTypeNames","fragmentSpreadFieldCounter","i","length","fieldNode","childField","fragmentKind","fragmentName","typeName","childTypeName","hasData","total","childFieldName","requestFieldPath","typeUnused","get"],"mappings":"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","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"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import _keys from "lodash/keys";
|
|
2
|
-
import { deleteFragmentDefinitions
|
|
2
|
+
import { deleteFragmentDefinitions } from "@graphql-box/helpers";
|
|
3
3
|
import filterField from "./filterField";
|
|
4
4
|
export default ((ast, fieldPathChecklist, fragmentSpreadChecklist, context) => {
|
|
5
|
-
var _getFragmentDefinitio;
|
|
6
|
-
|
|
7
5
|
const definitionsToFilter = _keys(fragmentSpreadChecklist).reduce((namesAndPaths, key) => {
|
|
8
6
|
const {
|
|
9
7
|
deleted,
|
|
@@ -15,7 +13,9 @@ export default ((ast, fieldPathChecklist, fragmentSpreadChecklist, context) => {
|
|
|
15
13
|
}] : namesAndPaths;
|
|
16
14
|
}, []);
|
|
17
15
|
|
|
18
|
-
const
|
|
16
|
+
const {
|
|
17
|
+
fragmentDefinitions = {}
|
|
18
|
+
} = context;
|
|
19
19
|
definitionsToFilter.forEach(({
|
|
20
20
|
name,
|
|
21
21
|
path
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/helpers/filterFragmentDefinitions.ts"],"names":["deleteFragmentDefinitions","
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterFragmentDefinitions.ts"],"names":["deleteFragmentDefinitions","filterField","ast","fieldPathChecklist","fragmentSpreadChecklist","context","definitionsToFilter","reduce","namesAndPaths","key","deleted","total","name","path","paths","fragmentDefinitions","forEach","fragmentDefinition","definitionsToDelete","names","length","include"],"mappings":";AAAA,SAASA,yBAAT,QAA0C,sBAA1C;AAKA,OAAOC,WAAP,MAAwB,eAAxB;AAEA,gBAAe,CACbC,GADa,EAEbC,kBAFa,EAGbC,uBAHa,EAIbC,OAJa,KAKV;AACH,QAAMC,mBAAmB,GAAG,MAAKF,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;AACAX,IAAAA,WAAW,CAACgB,kBAAD,EAAqBd,kBAArB,EAAyCC,uBAAzC,EAAkES,IAAlE,EAAwER,OAAxE,CAAX;AACD,GAHD;;AAKA,QAAMa,mBAAmB,GAAG,MAAKd,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,SAAOF,yBAAyB,CAACE,GAAD,EAAM;AACpCmB,IAAAA,OAAO,EAAEH;AAD2B,GAAN,CAAhC;AAGD,CApCD","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"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _keys from "lodash/keys";
|
|
2
|
-
import { getName, resolveFragments } from "@graphql-box/helpers";
|
|
3
|
-
import { buildFieldKeysAndPaths } from "./buildKeysAndPaths";
|
|
2
|
+
import { buildFieldKeysAndPaths, getName, resolveFragments } from "@graphql-box/helpers";
|
|
4
3
|
export default ((fieldData, selectionNodes, ancestorKeysAndPaths, context) => {
|
|
5
4
|
const fieldAndTypeName = resolveFragments(selectionNodes, context.fragmentDefinitions);
|
|
6
5
|
return _keys(fieldData).reduce((acc, key) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/helpers/filterOutPropsWithArgsOrDirectives.ts"],"names":["
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterOutPropsWithArgsOrDirectives.ts"],"names":["buildFieldKeysAndPaths","getName","resolveFragments","fieldData","selectionNodes","ancestorKeysAndPaths","context","fieldAndTypeName","fragmentDefinitions","reduce","acc","key","match","find","fieldNode","requestFieldPath","fieldTypeInfo","fieldTypeMap","get","hasArguments","hasDirectives"],"mappings":";AACA,SAAuBA,sBAAvB,EAA+CC,OAA/C,EAAwDC,gBAAxD,QAAgF,sBAAhF;AAKA,gBAAe,CACbC,SADa,EAEbC,cAFa,EAGbC,oBAHa,EAIbC,OAJa,KAKV;AACH,QAAMC,gBAAgB,GAAGL,gBAAgB,CAACE,cAAD,EAAiBE,OAAO,CAACE,mBAAzB,CAAzC;AAEA,SAAO,MAAKL,SAAL,EAAgBM,MAAhB,CAAuB,CAACC,GAAD,EAAsBC,GAAtB,KAA8B;AAC1D,UAAMC,KAAK,GAAGL,gBAAgB,CAACM,IAAjB,CAAsB,CAAC;AAAEC,MAAAA;AAAF,KAAD,KAAoBb,OAAO,CAACa,SAAD,CAAR,KAAuDH,GAAhG,CAAd;;AAEA,QAAIC,KAAJ,EAAW;AACT,YAAM;AAAEG,QAAAA;AAAF,UAAuBf,sBAAsB,CAACY,KAAK,CAACE,SAAP,EAAkBT,oBAAlB,EAAwCC,OAAxC,CAAnD;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,CAtBD","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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { deleteChildFields, getChildFields, getOperationDefinitions } from "@graphql-box/helpers";
|
|
2
|
-
import { buildFieldKeysAndPaths } from "./buildKeysAndPaths";
|
|
1
|
+
import { buildFieldKeysAndPaths, deleteChildFields, getChildFields, getOperationDefinitions } from "@graphql-box/helpers";
|
|
3
2
|
import createFragmentSpreadChecklist from "./createFragmentSpreadChecklist";
|
|
4
3
|
import filterField from "./filterField";
|
|
5
4
|
import filterFragmentDefinitions from "./filterFragmentDefinitions";
|
|
@@ -21,7 +20,7 @@ export default ((requestData, {
|
|
|
21
20
|
return ast;
|
|
22
21
|
}
|
|
23
22
|
|
|
24
|
-
const fragmentSpreadChecklist = createFragmentSpreadChecklist(requestData);
|
|
23
|
+
const fragmentSpreadChecklist = createFragmentSpreadChecklist(requestData, context);
|
|
25
24
|
|
|
26
25
|
for (let i = fieldsAndTypeNames.length - 1; i >= 0; i -= 1) {
|
|
27
26
|
const {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/helpers/filterQuery.ts"],"names":["deleteChildFields","getChildFields","getOperationDefinitions","
|
|
1
|
+
{"version":3,"sources":["../../../src/helpers/filterQuery.ts"],"names":["buildFieldKeysAndPaths","deleteChildFields","getChildFields","getOperationDefinitions","createFragmentSpreadChecklist","filterField","filterFragmentDefinitions","requestData","fieldPathChecklist","context","ast","queryNode","operation","fragmentDefinitions","fieldsAndTypeNames","fragmentSpreadChecklist","i","length","fieldNode","requestFieldPath","queryFiltered"],"mappings":"AACA,SACEA,sBADF,EAEEC,iBAFF,EAGEC,cAHF,EAIEC,uBAJF,QAKO,sBALP;AAOA,OAAOC,6BAAP,MAA0C,iCAA1C;AACA,OAAOC,WAAP,MAAwB,eAAxB;AACA,OAAOC,yBAAP,MAAsC,6BAAtC;AAEA,gBAAe,CAACC,WAAD,EAA2B;AAAEC,EAAAA;AAAF,CAA3B,EAAuEC,OAAvE,KAAwG;AACrH,QAAM;AAAEC,IAAAA;AAAF,MAAUH,WAAhB;AACA,QAAMI,SAAS,GAAGR,uBAAuB,CAACO,GAAD,EAAMD,OAAO,CAACG,SAAd,CAAvB,CAAgD,CAAhD,CAAlB;AACA,QAAM;AAAEC,IAAAA;AAAF,MAA0BJ,OAAhC;AACA,QAAMK,kBAAkB,GAAGZ,cAAc,CAACS,SAAD,EAAY;AAAEE,IAAAA;AAAF,GAAZ,CAAzC;;AAEA,MAAI,CAACC,kBAAL,EAAyB;AACvB,WAAOJ,GAAP;AACD;;AAED,QAAMK,uBAAuB,GAAGX,6BAA6B,CAACG,WAAD,EAAcE,OAAd,CAA7D;;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,QAAuBnB,sBAAsB,CACjDkB,SADiD,EAEjD;AACEC,MAAAA,gBAAgB,EAAEV,OAAO,CAACG;AAD5B,KAFiD,EAKjDH,OALiD,CAAnD;;AAQA,QAAIJ,WAAW,CAACa,SAAD,EAAYV,kBAAZ,EAAgCO,uBAAhC,EAAyDI,gBAAzD,EAA2EV,OAA3E,CAAf,EAAoG;AAClGR,MAAAA,iBAAiB,CAACU,SAAD,EAAYO,SAAZ,CAAjB;AACD;AACF;;AAEDT,EAAAA,OAAO,CAACW,aAAR,GAAwB,IAAxB;AACA,SAAOd,yBAAyB,CAACI,GAAD,EAAMF,kBAAN,EAA0BO,uBAA1B,EAAmDN,OAAnD,CAAhC;AACD,CA9BD","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/module/main/index.js
CHANGED
|
@@ -14,12 +14,11 @@ var _dec, _dec2, _dec3, _class;
|
|
|
14
14
|
|
|
15
15
|
import "core-js/modules/es.promise.js";
|
|
16
16
|
import { DATA_ENTITIES, QUERY, QUERY_RESPONSES, REQUEST_FIELD_PATHS, TYPE_NAME_KEY } from "@graphql-box/core";
|
|
17
|
-
import { FRAGMENT_SPREAD, dehydrateCacheMetadata, getChildFields, getFragmentDefinitions, getOperationDefinitions, hasChildFields, hashRequest, iterateChildFields, mergeObjects, rehydrateCacheMetadata } from "@graphql-box/helpers";
|
|
17
|
+
import { FRAGMENT_SPREAD, buildFieldKeysAndPaths, dehydrateCacheMetadata, getChildFields, getFragmentDefinitions, getOperationDefinitions, hasChildFields, hashRequest, iterateChildFields, mergeObjects, rehydrateCacheMetadata } from "@graphql-box/helpers";
|
|
18
18
|
import Cacheability from "cacheability";
|
|
19
19
|
import { print } from "graphql";
|
|
20
20
|
import { CACHE_CONTROL, HEADER_NO_CACHE, METADATA, NO_CACHE } from "../consts";
|
|
21
21
|
import { logCacheEntry, logCacheQuery, logPartialCompiled } from "../debug";
|
|
22
|
-
import { buildFieldKeysAndPaths } from "../helpers/buildKeysAndPaths";
|
|
23
22
|
import deriveOpCacheability from "../helpers/deriveOpCacheability";
|
|
24
23
|
import filterOutPropsWithArgsOrDirectives from "../helpers/filterOutPropsWithArgsOrDirectives";
|
|
25
24
|
import filterQuery from "../helpers/filterQuery";
|
|
@@ -285,7 +284,7 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
|
|
|
285
284
|
|
|
286
285
|
async cacheQuery(requestData, updatedRequestData, rawResponseData, options, context) {
|
|
287
286
|
const cacheManagerContext = { ...context,
|
|
288
|
-
fragmentDefinitions: getFragmentDefinitions(updatedRequestData.ast),
|
|
287
|
+
fragmentDefinitions: getFragmentDefinitions((updatedRequestData !== null && updatedRequestData !== void 0 ? updatedRequestData : requestData).ast),
|
|
289
288
|
typeIDKey: this._typeIDKey
|
|
290
289
|
};
|
|
291
290
|
return this._cacheResponse(requestData, updatedRequestData, rawResponseData, options, cacheManagerContext);
|
|
@@ -324,6 +323,10 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
|
|
|
324
323
|
this._partialQueryResponses.delete(hash);
|
|
325
324
|
}
|
|
326
325
|
|
|
326
|
+
async setQueryResponseCacheEntry(requestData, responseData, options, context) {
|
|
327
|
+
return this._setQueryResponseCacheEntry(requestData.hash, responseData, options, context);
|
|
328
|
+
}
|
|
329
|
+
|
|
327
330
|
async _analyzeFieldNode(fieldNode, cachedAncestorFieldData, cachedResponseData, options, context) {
|
|
328
331
|
if (hasChildFields(fieldNode, {
|
|
329
332
|
fragmentDefinitions: context.fragmentDefinitions
|
|
@@ -339,6 +342,7 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
|
|
|
339
342
|
const {
|
|
340
343
|
hashedRequestFieldCacheKey,
|
|
341
344
|
propNameOrIndex,
|
|
345
|
+
requestFieldCacheKey,
|
|
342
346
|
requestFieldPath
|
|
343
347
|
} = keysAndPaths;
|
|
344
348
|
const fieldTypeInfo = context.fieldTypeMap.get(requestFieldPath);
|
|
@@ -360,7 +364,7 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
|
|
|
360
364
|
const {
|
|
361
365
|
cacheability,
|
|
362
366
|
entry
|
|
363
|
-
} = await this._retrieveCachedRequestFieldPathData(hashedRequestFieldCacheKey, options, context);
|
|
367
|
+
} = await this._retrieveCachedRequestFieldPathData(hashedRequestFieldCacheKey, requestFieldCacheKey, options, context);
|
|
364
368
|
|
|
365
369
|
CacheManager._setCachedResponseData({
|
|
366
370
|
cacheability,
|
|
@@ -715,7 +719,8 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
|
|
|
715
719
|
requestFieldPathData: ancestorRequestFieldPathData
|
|
716
720
|
}, {
|
|
717
721
|
hashedRequestFieldCacheKey,
|
|
718
|
-
propNameOrIndex
|
|
722
|
+
propNameOrIndex,
|
|
723
|
+
requestFieldCacheKey
|
|
719
724
|
}, fieldTypeInfo, options, context) {
|
|
720
725
|
var _entityData;
|
|
721
726
|
|
|
@@ -729,7 +734,7 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
|
|
|
729
734
|
const {
|
|
730
735
|
cacheability: entryCacheability,
|
|
731
736
|
entry
|
|
732
|
-
} = await this._retrieveCachedRequestFieldPathData(hashedRequestFieldCacheKey, options, context);
|
|
737
|
+
} = await this._retrieveCachedRequestFieldPathData(hashedRequestFieldCacheKey, requestFieldCacheKey, options, context);
|
|
733
738
|
|
|
734
739
|
if (entry) {
|
|
735
740
|
requestFieldPathData = this._mergeObjects(requestFieldPathData, entry);
|
|
@@ -768,8 +773,10 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
|
|
|
768
773
|
};
|
|
769
774
|
}
|
|
770
775
|
|
|
771
|
-
async _retrieveCachedRequestFieldPathData(hash, options, context) {
|
|
772
|
-
return this._checkCacheEntry(REQUEST_FIELD_PATHS, hash, options, context
|
|
776
|
+
async _retrieveCachedRequestFieldPathData(hash, requestFieldCacheKey, options, context) {
|
|
777
|
+
return this._checkCacheEntry(REQUEST_FIELD_PATHS, hash, options, { ...context,
|
|
778
|
+
requestFieldCacheKey
|
|
779
|
+
}) || {};
|
|
773
780
|
}
|
|
774
781
|
|
|
775
782
|
async _retrieveCachedResponseData({
|
|
@@ -997,6 +1004,7 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
|
|
|
997
1004
|
}, options, context) {
|
|
998
1005
|
const {
|
|
999
1006
|
hashedRequestFieldCacheKey,
|
|
1007
|
+
requestFieldCacheKey,
|
|
1000
1008
|
responseDataPath
|
|
1001
1009
|
} = keysAndPaths;
|
|
1002
1010
|
|
|
@@ -1013,7 +1021,9 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
|
|
|
1013
1021
|
fieldData = filterOutPropsWithArgsOrDirectives(fieldData, field.selectionSet.selections, keysAndPaths, context);
|
|
1014
1022
|
}
|
|
1015
1023
|
|
|
1016
|
-
const result = await this._checkCacheEntry(REQUEST_FIELD_PATHS, hashedRequestFieldCacheKey, options, context
|
|
1024
|
+
const result = await this._checkCacheEntry(REQUEST_FIELD_PATHS, hashedRequestFieldCacheKey, options, { ...context,
|
|
1025
|
+
requestFieldCacheKey
|
|
1026
|
+
});
|
|
1017
1027
|
|
|
1018
1028
|
if (result && _isObjectLike(fieldData)) {
|
|
1019
1029
|
fieldData = this._mergeObjects(result.entry, fieldData);
|
|
@@ -1024,7 +1034,9 @@ export let CacheManager = (_dec = logCacheQuery(), _dec2 = logCacheEntry(), _dec
|
|
|
1024
1034
|
cacheControl: cacheability.printCacheControl()
|
|
1025
1035
|
},
|
|
1026
1036
|
tag: options.tag
|
|
1027
|
-
}, options, context
|
|
1037
|
+
}, options, { ...context,
|
|
1038
|
+
requestFieldCacheKey
|
|
1039
|
+
});
|
|
1028
1040
|
|
|
1029
1041
|
if (hasChildFields(field, {
|
|
1030
1042
|
fragmentDefinitions: context.fragmentDefinitions
|