@graphql-box/cache-manager 4.1.4 → 5.0.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/README.md +1 -5
- package/dist/cjs/index.cjs +1477 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/{lib/module/main/index.js → dist/esm/index.mjs} +734 -331
- package/dist/esm/index.mjs.map +1 -0
- package/dist/types/cjs/constants.d.cts +6 -0
- package/dist/types/cjs/constants.d.cts.map +1 -0
- package/dist/types/cjs/debug/index.d.cts +4 -0
- package/dist/types/cjs/debug/index.d.cts.map +1 -0
- package/dist/types/cjs/debug/logCacheEntry.d.cts +8 -0
- package/dist/types/cjs/debug/logCacheEntry.d.cts.map +1 -0
- package/dist/types/cjs/debug/logCacheQuery.d.cts +8 -0
- package/dist/types/cjs/debug/logCacheQuery.d.cts.map +1 -0
- package/dist/types/cjs/debug/logPartialCompiled.d.cts +6 -0
- package/dist/types/cjs/debug/logPartialCompiled.d.cts.map +1 -0
- package/dist/types/cjs/helpers/areOnlyPopulatedFieldsTypeIdKeys.d.cts +3 -0
- package/dist/types/cjs/helpers/areOnlyPopulatedFieldsTypeIdKeys.d.cts.map +1 -0
- package/dist/types/cjs/helpers/checkFieldPathChecklist.d.cts +3 -0
- package/dist/types/cjs/helpers/checkFieldPathChecklist.d.cts.map +1 -0
- package/dist/types/cjs/helpers/combineData.d.cts +2 -0
- package/dist/types/cjs/helpers/combineData.d.cts.map +1 -0
- package/dist/types/cjs/helpers/createFragmentSpreadChecklist.d.cts +9 -0
- package/dist/types/cjs/helpers/createFragmentSpreadChecklist.d.cts.map +1 -0
- package/dist/types/cjs/helpers/deriveOpCacheability.d.cts +9 -0
- package/dist/types/cjs/helpers/deriveOpCacheability.d.cts.map +1 -0
- package/dist/types/cjs/helpers/filterField.d.cts +5 -0
- package/dist/types/cjs/helpers/filterField.d.cts.map +1 -0
- package/dist/types/cjs/helpers/filterFragmentDefinitions.d.cts +5 -0
- package/dist/types/cjs/helpers/filterFragmentDefinitions.d.cts.map +1 -0
- package/dist/types/cjs/helpers/filterFragmentSpreads.d.cts +5 -0
- package/dist/types/cjs/helpers/filterFragmentSpreads.d.cts.map +1 -0
- package/dist/types/cjs/helpers/filterIDsAndTypeNames.d.cts +4 -0
- package/dist/types/cjs/helpers/filterIDsAndTypeNames.d.cts.map +1 -0
- package/dist/types/cjs/helpers/filterInlineFragments.d.cts +4 -0
- package/dist/types/cjs/helpers/filterInlineFragments.d.cts.map +1 -0
- package/dist/types/cjs/helpers/filterOperationAndFragmentDefinitions.d.cts +3 -0
- package/dist/types/cjs/helpers/filterOperationAndFragmentDefinitions.d.cts.map +1 -0
- package/dist/types/cjs/helpers/filterOutPropsWithArgsOrDirectives.d.cts +6 -0
- package/dist/types/cjs/helpers/filterOutPropsWithArgsOrDirectives.d.cts.map +1 -0
- package/dist/types/cjs/helpers/filterQuery.d.cts +4 -0
- package/dist/types/cjs/helpers/filterQuery.d.cts.map +1 -0
- package/dist/types/cjs/helpers/getDataValue.d.cts +2 -0
- package/dist/types/cjs/helpers/getDataValue.d.cts.map +1 -0
- package/dist/types/cjs/helpers/hasTypename.d.cts +3 -0
- package/dist/types/cjs/helpers/hasTypename.d.cts.map +1 -0
- package/dist/types/cjs/helpers/isFirstResponseChunk.d.cts +4 -0
- package/dist/types/cjs/helpers/isFirstResponseChunk.d.cts.map +1 -0
- package/dist/types/cjs/helpers/isLastResponseChunk.d.cts +4 -0
- package/dist/types/cjs/helpers/isLastResponseChunk.d.cts.map +1 -0
- package/dist/types/cjs/helpers/isNotLastResponseChunk.d.cts +4 -0
- package/dist/types/cjs/helpers/isNotLastResponseChunk.d.cts.map +1 -0
- package/dist/types/cjs/helpers/isNotResponseChunk.d.cts +4 -0
- package/dist/types/cjs/helpers/isNotResponseChunk.d.cts.map +1 -0
- package/dist/types/cjs/helpers/mergeObjects.d.cts +2 -0
- package/dist/types/cjs/helpers/mergeObjects.d.cts.map +1 -0
- package/dist/types/cjs/helpers/mergeResponseDataSets.d.cts +3 -0
- package/dist/types/cjs/helpers/mergeResponseDataSets.d.cts.map +1 -0
- package/dist/types/cjs/helpers/normalizePatchResponseData.d.cts +11 -0
- package/dist/types/cjs/helpers/normalizePatchResponseData.d.cts.map +1 -0
- package/dist/types/cjs/helpers/validTypeIdValue.d.cts +3 -0
- package/dist/types/cjs/helpers/validTypeIdValue.d.cts.map +1 -0
- package/dist/types/cjs/index.d.cts +3 -0
- package/dist/types/cjs/index.d.cts.map +1 -0
- package/dist/types/cjs/main.d.cts +63 -0
- package/dist/types/cjs/main.d.cts.map +1 -0
- package/dist/types/cjs/types.d.cts +131 -0
- package/dist/types/cjs/types.d.cts.map +1 -0
- package/dist/types/esm/constants.d.ts +6 -0
- package/dist/types/esm/constants.d.ts.map +1 -0
- package/dist/types/esm/debug/index.d.ts +4 -0
- package/dist/types/esm/debug/index.d.ts.map +1 -0
- package/dist/types/esm/debug/logCacheEntry.d.ts +8 -0
- package/dist/types/esm/debug/logCacheEntry.d.ts.map +1 -0
- package/dist/types/esm/debug/logCacheQuery.d.ts +8 -0
- package/dist/types/esm/debug/logCacheQuery.d.ts.map +1 -0
- package/dist/types/esm/debug/logPartialCompiled.d.ts +6 -0
- package/dist/types/esm/debug/logPartialCompiled.d.ts.map +1 -0
- package/dist/types/esm/helpers/areOnlyPopulatedFieldsTypeIdKeys.d.ts +3 -0
- package/dist/types/esm/helpers/areOnlyPopulatedFieldsTypeIdKeys.d.ts.map +1 -0
- package/dist/types/esm/helpers/checkFieldPathChecklist.d.ts +3 -0
- package/dist/types/esm/helpers/checkFieldPathChecklist.d.ts.map +1 -0
- package/dist/types/esm/helpers/combineData.d.ts +2 -0
- package/dist/types/esm/helpers/combineData.d.ts.map +1 -0
- package/dist/types/esm/helpers/createFragmentSpreadChecklist.d.ts +9 -0
- package/dist/types/esm/helpers/createFragmentSpreadChecklist.d.ts.map +1 -0
- package/dist/types/esm/helpers/deriveOpCacheability.d.ts +9 -0
- package/dist/types/esm/helpers/deriveOpCacheability.d.ts.map +1 -0
- package/dist/types/esm/helpers/filterField.d.ts +5 -0
- package/dist/types/esm/helpers/filterField.d.ts.map +1 -0
- package/dist/types/esm/helpers/filterFragmentDefinitions.d.ts +5 -0
- package/dist/types/esm/helpers/filterFragmentDefinitions.d.ts.map +1 -0
- package/dist/types/esm/helpers/filterFragmentSpreads.d.ts +5 -0
- package/dist/types/esm/helpers/filterFragmentSpreads.d.ts.map +1 -0
- package/dist/types/esm/helpers/filterIDsAndTypeNames.d.ts +4 -0
- package/dist/types/esm/helpers/filterIDsAndTypeNames.d.ts.map +1 -0
- package/dist/types/esm/helpers/filterInlineFragments.d.ts +4 -0
- package/dist/types/esm/helpers/filterInlineFragments.d.ts.map +1 -0
- package/dist/types/esm/helpers/filterOperationAndFragmentDefinitions.d.ts +3 -0
- package/dist/types/esm/helpers/filterOperationAndFragmentDefinitions.d.ts.map +1 -0
- package/dist/types/esm/helpers/filterOutPropsWithArgsOrDirectives.d.ts +6 -0
- package/dist/types/esm/helpers/filterOutPropsWithArgsOrDirectives.d.ts.map +1 -0
- package/dist/types/esm/helpers/filterQuery.d.ts +4 -0
- package/dist/types/esm/helpers/filterQuery.d.ts.map +1 -0
- package/dist/types/esm/helpers/getDataValue.d.ts +2 -0
- package/dist/types/esm/helpers/getDataValue.d.ts.map +1 -0
- package/dist/types/esm/helpers/hasTypename.d.ts +3 -0
- package/dist/types/esm/helpers/hasTypename.d.ts.map +1 -0
- package/dist/types/esm/helpers/isFirstResponseChunk.d.ts +4 -0
- package/dist/types/esm/helpers/isFirstResponseChunk.d.ts.map +1 -0
- package/dist/types/esm/helpers/isLastResponseChunk.d.ts +4 -0
- package/dist/types/esm/helpers/isLastResponseChunk.d.ts.map +1 -0
- package/dist/types/esm/helpers/isNotLastResponseChunk.d.ts +4 -0
- package/dist/types/esm/helpers/isNotLastResponseChunk.d.ts.map +1 -0
- package/dist/types/esm/helpers/isNotResponseChunk.d.ts +4 -0
- package/dist/types/esm/helpers/isNotResponseChunk.d.ts.map +1 -0
- package/dist/types/esm/helpers/mergeObjects.d.ts +2 -0
- package/dist/types/esm/helpers/mergeObjects.d.ts.map +1 -0
- package/dist/types/esm/helpers/mergeResponseDataSets.d.ts +3 -0
- package/dist/types/esm/helpers/mergeResponseDataSets.d.ts.map +1 -0
- package/dist/types/esm/helpers/normalizePatchResponseData.d.ts +11 -0
- package/dist/types/esm/helpers/normalizePatchResponseData.d.ts.map +1 -0
- package/dist/types/esm/helpers/validTypeIdValue.d.ts +3 -0
- package/dist/types/esm/helpers/validTypeIdValue.d.ts.map +1 -0
- package/dist/types/esm/index.d.ts +3 -0
- package/dist/types/esm/index.d.ts.map +1 -0
- package/{lib/types/main/index.d.ts → dist/types/esm/main.d.ts} +6 -7
- package/dist/types/esm/main.d.ts.map +1 -0
- package/{lib/types/defs/index.d.ts → dist/types/esm/types.d.ts} +26 -26
- package/dist/types/esm/types.d.ts.map +1 -0
- package/dist/types/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +54 -39
- package/src/__snapshots__/index.test.ts.snap +16531 -16531
- package/src/constants.ts +6 -0
- package/src/debug/index.ts +3 -3
- package/src/debug/logCacheEntry.ts +54 -0
- package/src/debug/{log-cache-query/index.ts → logCacheQuery.ts} +23 -20
- package/src/debug/logPartialCompiled.ts +41 -0
- package/src/helpers/areOnlyPopulatedFieldsTypeIdKeys.ts +19 -12
- package/src/helpers/checkFieldPathChecklist.ts +9 -7
- package/src/helpers/combineData.ts +14 -0
- package/src/helpers/createFragmentSpreadChecklist.ts +11 -10
- package/src/helpers/deriveOpCacheability.ts +10 -6
- package/src/helpers/filterField.ts +28 -21
- package/src/helpers/filterFragmentDefinitions.ts +35 -21
- package/src/helpers/filterFragmentSpreads.ts +17 -12
- package/src/helpers/filterIDsAndTypeNames.ts +15 -11
- package/src/helpers/filterInlineFragments.ts +13 -11
- package/src/helpers/filterOperationAndFragmentDefinitions.ts +5 -5
- package/src/helpers/filterOutPropsWithArgsOrDirectives.ts +10 -10
- package/src/helpers/filterQuery.ts +21 -12
- package/src/helpers/getDataValue.ts +14 -0
- package/src/helpers/hasTypename.ts +11 -0
- package/src/helpers/isFirstResponseChunk.ts +6 -4
- package/src/helpers/isLastResponseChunk.ts +6 -4
- package/src/helpers/isNotLastResponseChunk.ts +6 -4
- package/src/helpers/isNotResponseChunk.ts +6 -4
- package/src/helpers/mergeObjects.ts +7 -0
- package/src/helpers/mergeResponseDataSets.ts +8 -8
- package/src/helpers/normalizePatchResponseData.ts +12 -5
- package/src/helpers/validTypeIdValue.ts +18 -0
- package/src/index.test.ts +479 -450
- package/src/index.ts +2 -2
- package/src/{main/index.ts → main.ts} +287 -260
- package/src/{defs/index.ts → types.ts} +38 -43
- package/tsconfig.build.json +10 -0
- package/tsconfig.json +17 -0
- package/lib/browser/index.js +0 -2
- package/lib/browser/index.js.map +0 -1
- package/lib/browser/production.analysis.txt +0 -234
- package/lib/main/consts/index.js +0 -17
- package/lib/main/consts/index.js.map +0 -1
- package/lib/main/debug/index.js +0 -32
- package/lib/main/debug/index.js.map +0 -1
- package/lib/main/debug/log-cache-entry/index.js +0 -57
- package/lib/main/debug/log-cache-entry/index.js.map +0 -1
- package/lib/main/debug/log-cache-query/index.js +0 -59
- package/lib/main/debug/log-cache-query/index.js.map +0 -1
- package/lib/main/debug/log-partial-compiled/index.js +0 -50
- package/lib/main/debug/log-partial-compiled/index.js.map +0 -1
- package/lib/main/defs/index.js +0 -2
- package/lib/main/defs/index.js.map +0 -1
- package/lib/main/helpers/areOnlyPopulatedFieldsTypeIdKeys.js +0 -53
- package/lib/main/helpers/areOnlyPopulatedFieldsTypeIdKeys.js.map +0 -1
- package/lib/main/helpers/checkFieldPathChecklist.js +0 -40
- package/lib/main/helpers/checkFieldPathChecklist.js.map +0 -1
- package/lib/main/helpers/createFragmentSpreadChecklist.js +0 -26
- package/lib/main/helpers/createFragmentSpreadChecklist.js.map +0 -1
- package/lib/main/helpers/deriveOpCacheability.js +0 -46
- package/lib/main/helpers/deriveOpCacheability.js.map +0 -1
- package/lib/main/helpers/filterField.js +0 -95
- package/lib/main/helpers/filterField.js.map +0 -1
- package/lib/main/helpers/filterFragmentDefinitions.js +0 -55
- package/lib/main/helpers/filterFragmentDefinitions.js.map +0 -1
- package/lib/main/helpers/filterFragmentSpreads.js +0 -36
- package/lib/main/helpers/filterFragmentSpreads.js.map +0 -1
- package/lib/main/helpers/filterIDsAndTypeNames.js +0 -47
- package/lib/main/helpers/filterIDsAndTypeNames.js.map +0 -1
- package/lib/main/helpers/filterInlineFragments.js +0 -42
- package/lib/main/helpers/filterInlineFragments.js.map +0 -1
- package/lib/main/helpers/filterOperationAndFragmentDefinitions.js +0 -15
- package/lib/main/helpers/filterOperationAndFragmentDefinitions.js.map +0 -1
- package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js +0 -37
- package/lib/main/helpers/filterOutPropsWithArgsOrDirectives.js.map +0 -1
- package/lib/main/helpers/filterQuery.js +0 -58
- package/lib/main/helpers/filterQuery.js.map +0 -1
- package/lib/main/helpers/isFirstResponseChunk.js +0 -11
- package/lib/main/helpers/isFirstResponseChunk.js.map +0 -1
- package/lib/main/helpers/isLastResponseChunk.js +0 -11
- package/lib/main/helpers/isLastResponseChunk.js.map +0 -1
- package/lib/main/helpers/isNotLastResponseChunk.js +0 -11
- package/lib/main/helpers/isNotLastResponseChunk.js.map +0 -1
- package/lib/main/helpers/isNotResponseChunk.js +0 -11
- package/lib/main/helpers/isNotResponseChunk.js.map +0 -1
- package/lib/main/helpers/mergeResponseDataSets.js +0 -53
- package/lib/main/helpers/mergeResponseDataSets.js.map +0 -1
- package/lib/main/helpers/normalizePatchResponseData.js +0 -29
- package/lib/main/helpers/normalizePatchResponseData.js.map +0 -1
- package/lib/main/helpers/validTypeIDValue.js +0 -20
- package/lib/main/helpers/validTypeIDValue.js.map +0 -1
- package/lib/main/index.js +0 -31
- package/lib/main/index.js.map +0 -1
- package/lib/main/main/index.js +0 -1090
- package/lib/main/main/index.js.map +0 -1
- package/lib/module/consts/index.js +0 -6
- package/lib/module/consts/index.js.map +0 -1
- package/lib/module/debug/index.js +0 -4
- package/lib/module/debug/index.js.map +0 -1
- package/lib/module/debug/log-cache-entry/index.js +0 -48
- package/lib/module/debug/log-cache-entry/index.js.map +0 -1
- package/lib/module/debug/log-cache-query/index.js +0 -50
- package/lib/module/debug/log-cache-query/index.js.map +0 -1
- package/lib/module/debug/log-partial-compiled/index.js +0 -41
- package/lib/module/debug/log-partial-compiled/index.js.map +0 -1
- package/lib/module/defs/index.js +0 -2
- package/lib/module/defs/index.js.map +0 -1
- package/lib/module/helpers/areOnlyPopulatedFieldsTypeIdKeys.js +0 -41
- package/lib/module/helpers/areOnlyPopulatedFieldsTypeIdKeys.js.map +0 -1
- package/lib/module/helpers/checkFieldPathChecklist.js +0 -31
- package/lib/module/helpers/checkFieldPathChecklist.js.map +0 -1
- package/lib/module/helpers/createFragmentSpreadChecklist.js +0 -14
- package/lib/module/helpers/createFragmentSpreadChecklist.js.map +0 -1
- package/lib/module/helpers/deriveOpCacheability.js +0 -32
- package/lib/module/helpers/deriveOpCacheability.js.map +0 -1
- package/lib/module/helpers/filterField.js +0 -80
- package/lib/module/helpers/filterField.js.map +0 -1
- package/lib/module/helpers/filterFragmentDefinitions.js +0 -43
- package/lib/module/helpers/filterFragmentDefinitions.js.map +0 -1
- package/lib/module/helpers/filterFragmentSpreads.js +0 -22
- package/lib/module/helpers/filterFragmentSpreads.js.map +0 -1
- package/lib/module/helpers/filterIDsAndTypeNames.js +0 -36
- package/lib/module/helpers/filterIDsAndTypeNames.js.map +0 -1
- package/lib/module/helpers/filterInlineFragments.js +0 -32
- package/lib/module/helpers/filterInlineFragments.js.map +0 -1
- package/lib/module/helpers/filterOperationAndFragmentDefinitions.js +0 -5
- package/lib/module/helpers/filterOperationAndFragmentDefinitions.js.map +0 -1
- package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js +0 -24
- package/lib/module/helpers/filterOutPropsWithArgsOrDirectives.js.map +0 -1
- package/lib/module/helpers/filterQuery.js +0 -43
- package/lib/module/helpers/filterQuery.js.map +0 -1
- package/lib/module/helpers/isFirstResponseChunk.js +0 -2
- package/lib/module/helpers/isFirstResponseChunk.js.map +0 -1
- package/lib/module/helpers/isLastResponseChunk.js +0 -2
- package/lib/module/helpers/isLastResponseChunk.js.map +0 -1
- package/lib/module/helpers/isNotLastResponseChunk.js +0 -2
- package/lib/module/helpers/isNotLastResponseChunk.js.map +0 -1
- package/lib/module/helpers/isNotResponseChunk.js +0 -2
- package/lib/module/helpers/isNotResponseChunk.js.map +0 -1
- package/lib/module/helpers/mergeResponseDataSets.js +0 -41
- package/lib/module/helpers/mergeResponseDataSets.js.map +0 -1
- package/lib/module/helpers/normalizePatchResponseData.js +0 -17
- package/lib/module/helpers/normalizePatchResponseData.js.map +0 -1
- package/lib/module/helpers/validTypeIDValue.js +0 -8
- package/lib/module/helpers/validTypeIDValue.js.map +0 -1
- package/lib/module/index.js +0 -3
- package/lib/module/index.js.map +0 -1
- package/lib/module/main/index.js.map +0 -1
- package/lib/types/consts/index.d.ts +0 -6
- package/lib/types/consts/index.d.ts.map +0 -1
- package/lib/types/debug/index.d.ts +0 -4
- package/lib/types/debug/index.d.ts.map +0 -1
- package/lib/types/debug/log-cache-entry/index.d.ts +0 -2
- package/lib/types/debug/log-cache-entry/index.d.ts.map +0 -1
- package/lib/types/debug/log-cache-query/index.d.ts +0 -2
- package/lib/types/debug/log-cache-query/index.d.ts.map +0 -1
- package/lib/types/debug/log-partial-compiled/index.d.ts +0 -2
- package/lib/types/debug/log-partial-compiled/index.d.ts.map +0 -1
- package/lib/types/defs/index.d.ts.map +0 -1
- package/lib/types/helpers/areOnlyPopulatedFieldsTypeIdKeys.d.ts +0 -4
- package/lib/types/helpers/areOnlyPopulatedFieldsTypeIdKeys.d.ts.map +0 -1
- package/lib/types/helpers/checkFieldPathChecklist.d.ts +0 -4
- package/lib/types/helpers/checkFieldPathChecklist.d.ts.map +0 -1
- package/lib/types/helpers/createFragmentSpreadChecklist.d.ts +0 -12
- package/lib/types/helpers/createFragmentSpreadChecklist.d.ts.map +0 -1
- package/lib/types/helpers/deriveOpCacheability.d.ts +0 -10
- package/lib/types/helpers/deriveOpCacheability.d.ts.map +0 -1
- package/lib/types/helpers/filterField.d.ts +0 -6
- package/lib/types/helpers/filterField.d.ts.map +0 -1
- package/lib/types/helpers/filterFragmentDefinitions.d.ts +0 -6
- package/lib/types/helpers/filterFragmentDefinitions.d.ts.map +0 -1
- package/lib/types/helpers/filterFragmentSpreads.d.ts +0 -6
- package/lib/types/helpers/filterFragmentSpreads.d.ts.map +0 -1
- package/lib/types/helpers/filterIDsAndTypeNames.d.ts +0 -5
- package/lib/types/helpers/filterIDsAndTypeNames.d.ts.map +0 -1
- package/lib/types/helpers/filterInlineFragments.d.ts +0 -5
- package/lib/types/helpers/filterInlineFragments.d.ts.map +0 -1
- package/lib/types/helpers/filterOperationAndFragmentDefinitions.d.ts +0 -4
- package/lib/types/helpers/filterOperationAndFragmentDefinitions.d.ts.map +0 -1
- package/lib/types/helpers/filterOutPropsWithArgsOrDirectives.d.ts +0 -7
- package/lib/types/helpers/filterOutPropsWithArgsOrDirectives.d.ts.map +0 -1
- package/lib/types/helpers/filterQuery.d.ts +0 -5
- package/lib/types/helpers/filterQuery.d.ts.map +0 -1
- package/lib/types/helpers/isFirstResponseChunk.d.ts +0 -5
- package/lib/types/helpers/isFirstResponseChunk.d.ts.map +0 -1
- package/lib/types/helpers/isLastResponseChunk.d.ts +0 -5
- package/lib/types/helpers/isLastResponseChunk.d.ts.map +0 -1
- package/lib/types/helpers/isNotLastResponseChunk.d.ts +0 -5
- package/lib/types/helpers/isNotLastResponseChunk.d.ts.map +0 -1
- package/lib/types/helpers/isNotResponseChunk.d.ts +0 -5
- package/lib/types/helpers/isNotResponseChunk.d.ts.map +0 -1
- package/lib/types/helpers/mergeResponseDataSets.d.ts +0 -4
- package/lib/types/helpers/mergeResponseDataSets.d.ts.map +0 -1
- package/lib/types/helpers/normalizePatchResponseData.d.ts +0 -5
- package/lib/types/helpers/normalizePatchResponseData.d.ts.map +0 -1
- package/lib/types/helpers/validTypeIDValue.d.ts +0 -3
- package/lib/types/helpers/validTypeIDValue.d.ts.map +0 -1
- package/lib/types/index.d.ts +0 -3
- package/lib/types/index.d.ts.map +0 -1
- package/lib/types/index.test.d.ts +0 -2
- package/lib/types/index.test.d.ts.map +0 -1
- package/lib/types/main/index.d.ts.map +0 -1
- package/src/consts/index.ts +0 -6
- package/src/debug/log-cache-entry/index.ts +0 -45
- package/src/debug/log-partial-compiled/index.ts +0 -38
- package/src/helpers/validTypeIDValue.ts +0 -11
package/src/index.test.ts
CHANGED
|
@@ -1,50 +1,49 @@
|
|
|
1
|
-
import
|
|
2
|
-
import map from
|
|
1
|
+
import { Core } from '@cachemap/core';
|
|
2
|
+
import { init as map } from '@cachemap/map';
|
|
3
3
|
import {
|
|
4
4
|
DEFAULT_TYPE_ID_KEY,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
SUBSCRIPTION,
|
|
11
|
-
} from "@graphql-box/core";
|
|
12
|
-
import { rehydrateCacheMetadata } from "@graphql-box/helpers";
|
|
5
|
+
type RawResponseDataWithMaybeCacheMetadata,
|
|
6
|
+
type RequestData,
|
|
7
|
+
type ResponseData,
|
|
8
|
+
} from '@graphql-box/core';
|
|
9
|
+
import { rehydrateCacheMetadata } from '@graphql-box/helpers';
|
|
13
10
|
import {
|
|
14
11
|
getRequestContext,
|
|
15
12
|
getRequestData,
|
|
16
13
|
parsedRequests,
|
|
17
14
|
requestFieldTypeMaps,
|
|
18
15
|
responses,
|
|
19
|
-
} from
|
|
20
|
-
import
|
|
16
|
+
} from '@graphql-box/test-utils';
|
|
17
|
+
import { expect, jest } from '@jest/globals';
|
|
18
|
+
import { OperationTypeNode } from 'graphql';
|
|
19
|
+
import { type AnalyzeQueryResult, CacheManager, type CacheManagerDef } from './index.ts';
|
|
21
20
|
|
|
22
|
-
describe(
|
|
21
|
+
describe('@graphql-box/cache-manager >>', () => {
|
|
23
22
|
const realDateNow = Date.now.bind(global.Date);
|
|
24
23
|
let cacheManager: CacheManagerDef;
|
|
25
24
|
|
|
26
25
|
beforeAll(() => {
|
|
27
|
-
|
|
26
|
+
globalThis.Date.now = jest.fn<() => number>().mockReturnValue(Date.parse('June 6, 1979 GMT'));
|
|
28
27
|
});
|
|
29
28
|
|
|
30
29
|
afterAll(() => {
|
|
31
30
|
global.Date.now = realDateNow;
|
|
32
31
|
});
|
|
33
32
|
|
|
34
|
-
describe(
|
|
33
|
+
describe('cacheResponse >>', () => {
|
|
35
34
|
let responseData: ResponseData | undefined;
|
|
36
35
|
let requestData: RequestData;
|
|
37
36
|
|
|
38
|
-
describe(
|
|
39
|
-
describe(
|
|
37
|
+
describe('mutation >> nested interface >>', () => {
|
|
38
|
+
describe('cascading cache control >>', () => {
|
|
40
39
|
beforeAll(async () => {
|
|
41
40
|
responseData = undefined;
|
|
42
41
|
|
|
43
42
|
cacheManager = new CacheManager({
|
|
44
|
-
cache: new
|
|
45
|
-
name:
|
|
43
|
+
cache: new Core({
|
|
44
|
+
name: 'cachemap',
|
|
46
45
|
store: map(),
|
|
47
|
-
type:
|
|
46
|
+
type: 'someType',
|
|
48
47
|
}),
|
|
49
48
|
cascadeCacheControl: true,
|
|
50
49
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
@@ -56,35 +55,38 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
56
55
|
requestData,
|
|
57
56
|
responses.nestedInterfaceMutation,
|
|
58
57
|
{ awaitDataCaching: true },
|
|
59
|
-
getRequestContext({
|
|
58
|
+
getRequestContext({
|
|
59
|
+
fieldTypeMap: requestFieldTypeMaps.nestedInterfaceMutation,
|
|
60
|
+
operation: OperationTypeNode.MUTATION,
|
|
61
|
+
})
|
|
60
62
|
);
|
|
61
63
|
});
|
|
62
64
|
|
|
63
|
-
it(
|
|
65
|
+
it('correct response data', () => {
|
|
64
66
|
expect(responseData).toMatchSnapshot();
|
|
65
67
|
});
|
|
66
68
|
|
|
67
|
-
it(
|
|
68
|
-
expect(
|
|
69
|
+
it('correct cache data', async () => {
|
|
70
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
69
71
|
});
|
|
70
72
|
});
|
|
71
73
|
|
|
72
|
-
describe(
|
|
74
|
+
describe('type cache directives >>', () => {
|
|
73
75
|
beforeAll(async () => {
|
|
74
76
|
responseData = undefined;
|
|
75
77
|
|
|
76
78
|
cacheManager = new CacheManager({
|
|
77
|
-
cache: new
|
|
78
|
-
name:
|
|
79
|
+
cache: new Core({
|
|
80
|
+
name: 'cachemap',
|
|
79
81
|
store: map(),
|
|
80
|
-
type:
|
|
82
|
+
type: 'someType',
|
|
81
83
|
}),
|
|
82
84
|
typeCacheDirectives: {
|
|
83
|
-
AddStarPayload:
|
|
84
|
-
StargazerConnection:
|
|
85
|
-
StargazerEdge:
|
|
86
|
-
Starrable:
|
|
87
|
-
User:
|
|
85
|
+
AddStarPayload: 'no-cache, no-store',
|
|
86
|
+
StargazerConnection: 'public, max-age=1',
|
|
87
|
+
StargazerEdge: 'public, max-age=1',
|
|
88
|
+
Starrable: 'public, max-age=10',
|
|
89
|
+
User: 'public, max-age=5',
|
|
88
90
|
},
|
|
89
91
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
90
92
|
});
|
|
@@ -95,30 +97,33 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
95
97
|
requestData,
|
|
96
98
|
responses.nestedInterfaceMutation,
|
|
97
99
|
{ awaitDataCaching: true },
|
|
98
|
-
getRequestContext({
|
|
100
|
+
getRequestContext({
|
|
101
|
+
fieldTypeMap: requestFieldTypeMaps.nestedInterfaceMutation,
|
|
102
|
+
operation: OperationTypeNode.MUTATION,
|
|
103
|
+
})
|
|
99
104
|
);
|
|
100
105
|
});
|
|
101
106
|
|
|
102
|
-
it(
|
|
107
|
+
it('correct response data', () => {
|
|
103
108
|
expect(responseData).toMatchSnapshot();
|
|
104
109
|
});
|
|
105
110
|
|
|
106
|
-
it(
|
|
107
|
-
expect(
|
|
111
|
+
it('correct cache data', async () => {
|
|
112
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
108
113
|
});
|
|
109
114
|
});
|
|
110
115
|
});
|
|
111
116
|
|
|
112
|
-
describe(
|
|
113
|
-
describe(
|
|
117
|
+
describe('subscription >> nested type >>', () => {
|
|
118
|
+
describe('cascading cache control >>', () => {
|
|
114
119
|
beforeAll(async () => {
|
|
115
120
|
responseData = undefined;
|
|
116
121
|
|
|
117
122
|
cacheManager = new CacheManager({
|
|
118
|
-
cache: new
|
|
119
|
-
name:
|
|
123
|
+
cache: new Core({
|
|
124
|
+
name: 'cachemap',
|
|
120
125
|
store: map(),
|
|
121
|
-
type:
|
|
126
|
+
type: 'someType',
|
|
122
127
|
}),
|
|
123
128
|
cascadeCacheControl: true,
|
|
124
129
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
@@ -130,32 +135,35 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
130
135
|
requestData,
|
|
131
136
|
responses.nestedTypeSubscription,
|
|
132
137
|
{ awaitDataCaching: true },
|
|
133
|
-
getRequestContext({
|
|
138
|
+
getRequestContext({
|
|
139
|
+
fieldTypeMap: requestFieldTypeMaps.nestedTypeSubscription,
|
|
140
|
+
operation: OperationTypeNode.SUBSCRIPTION,
|
|
141
|
+
})
|
|
134
142
|
);
|
|
135
143
|
});
|
|
136
144
|
|
|
137
|
-
it(
|
|
145
|
+
it('correct response data', () => {
|
|
138
146
|
expect(responseData).toMatchSnapshot();
|
|
139
147
|
});
|
|
140
148
|
|
|
141
|
-
it(
|
|
142
|
-
expect(
|
|
149
|
+
it('correct cache data', async () => {
|
|
150
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
143
151
|
});
|
|
144
152
|
});
|
|
145
153
|
|
|
146
|
-
describe(
|
|
154
|
+
describe('type cache directives >>', () => {
|
|
147
155
|
beforeAll(async () => {
|
|
148
156
|
responseData = undefined;
|
|
149
157
|
|
|
150
158
|
cacheManager = new CacheManager({
|
|
151
|
-
cache: new
|
|
152
|
-
name:
|
|
159
|
+
cache: new Core({
|
|
160
|
+
name: 'cachemap',
|
|
153
161
|
store: map(),
|
|
154
|
-
type:
|
|
162
|
+
type: 'someType',
|
|
155
163
|
}),
|
|
156
164
|
typeCacheDirectives: {
|
|
157
|
-
Email:
|
|
158
|
-
Inbox:
|
|
165
|
+
Email: 'public, max-age=5',
|
|
166
|
+
Inbox: 'public, max-age=1',
|
|
159
167
|
},
|
|
160
168
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
161
169
|
});
|
|
@@ -166,36 +174,39 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
166
174
|
requestData,
|
|
167
175
|
responses.nestedTypeSubscription,
|
|
168
176
|
{ awaitDataCaching: true },
|
|
169
|
-
getRequestContext({
|
|
177
|
+
getRequestContext({
|
|
178
|
+
fieldTypeMap: requestFieldTypeMaps.nestedTypeSubscription,
|
|
179
|
+
operation: OperationTypeNode.SUBSCRIPTION,
|
|
180
|
+
})
|
|
170
181
|
);
|
|
171
182
|
});
|
|
172
183
|
|
|
173
|
-
it(
|
|
184
|
+
it('correct response data', () => {
|
|
174
185
|
expect(responseData).toMatchSnapshot();
|
|
175
186
|
});
|
|
176
187
|
|
|
177
|
-
it(
|
|
178
|
-
expect(
|
|
188
|
+
it('correct cache data', async () => {
|
|
189
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
179
190
|
});
|
|
180
191
|
});
|
|
181
192
|
});
|
|
182
193
|
});
|
|
183
194
|
|
|
184
|
-
describe(
|
|
195
|
+
describe('cacheQuery >>', () => {
|
|
185
196
|
let responseData: ResponseData | undefined;
|
|
186
197
|
let requestData: RequestData;
|
|
187
198
|
|
|
188
|
-
describe(
|
|
189
|
-
describe(
|
|
190
|
-
describe(
|
|
199
|
+
describe('not filtered >>', () => {
|
|
200
|
+
describe('single type >>', () => {
|
|
201
|
+
describe('cascading cache control >>', () => {
|
|
191
202
|
beforeAll(async () => {
|
|
192
203
|
responseData = undefined;
|
|
193
204
|
|
|
194
205
|
cacheManager = new CacheManager({
|
|
195
|
-
cache: new
|
|
196
|
-
name:
|
|
206
|
+
cache: new Core({
|
|
207
|
+
name: 'cachemap',
|
|
197
208
|
store: map(),
|
|
198
|
-
type:
|
|
209
|
+
type: 'someType',
|
|
199
210
|
}),
|
|
200
211
|
cascadeCacheControl: true,
|
|
201
212
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
@@ -208,31 +219,31 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
208
219
|
requestData,
|
|
209
220
|
responses.singleTypeQuery,
|
|
210
221
|
{ awaitDataCaching: true },
|
|
211
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
222
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
212
223
|
);
|
|
213
224
|
});
|
|
214
225
|
|
|
215
|
-
it(
|
|
226
|
+
it('correct response data', () => {
|
|
216
227
|
expect(responseData).toMatchSnapshot();
|
|
217
228
|
});
|
|
218
229
|
|
|
219
|
-
it(
|
|
220
|
-
expect(
|
|
230
|
+
it('correct cache data', async () => {
|
|
231
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
221
232
|
});
|
|
222
233
|
});
|
|
223
234
|
|
|
224
|
-
describe(
|
|
235
|
+
describe('type cache directives >>', () => {
|
|
225
236
|
beforeAll(async () => {
|
|
226
237
|
responseData = undefined;
|
|
227
238
|
|
|
228
239
|
cacheManager = new CacheManager({
|
|
229
|
-
cache: new
|
|
230
|
-
name:
|
|
240
|
+
cache: new Core({
|
|
241
|
+
name: 'cachemap',
|
|
231
242
|
store: map(),
|
|
232
|
-
type:
|
|
243
|
+
type: 'someType',
|
|
233
244
|
}),
|
|
234
245
|
typeCacheDirectives: {
|
|
235
|
-
Organization:
|
|
246
|
+
Organization: 'public, max-age=1',
|
|
236
247
|
},
|
|
237
248
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
238
249
|
});
|
|
@@ -244,30 +255,30 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
244
255
|
requestData,
|
|
245
256
|
responses.singleTypeQuery,
|
|
246
257
|
{ awaitDataCaching: true },
|
|
247
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
258
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
248
259
|
);
|
|
249
260
|
});
|
|
250
261
|
|
|
251
|
-
it(
|
|
262
|
+
it('correct response data', () => {
|
|
252
263
|
expect(responseData).toMatchSnapshot();
|
|
253
264
|
});
|
|
254
265
|
|
|
255
|
-
it(
|
|
256
|
-
expect(
|
|
266
|
+
it('correct cache data', async () => {
|
|
267
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
257
268
|
});
|
|
258
269
|
});
|
|
259
270
|
});
|
|
260
271
|
|
|
261
|
-
describe(
|
|
262
|
-
describe(
|
|
272
|
+
describe('nested type with edges >>', () => {
|
|
273
|
+
describe('cascading cache control >>', () => {
|
|
263
274
|
beforeAll(async () => {
|
|
264
275
|
responseData = undefined;
|
|
265
276
|
|
|
266
277
|
cacheManager = new CacheManager({
|
|
267
|
-
cache: new
|
|
268
|
-
name:
|
|
278
|
+
cache: new Core({
|
|
279
|
+
name: 'cachemap',
|
|
269
280
|
store: map(),
|
|
270
|
-
type:
|
|
281
|
+
type: 'someType',
|
|
271
282
|
}),
|
|
272
283
|
cascadeCacheControl: true,
|
|
273
284
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
@@ -280,34 +291,34 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
280
291
|
requestData,
|
|
281
292
|
responses.nestedTypeQuery,
|
|
282
293
|
{ awaitDataCaching: true },
|
|
283
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
294
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
284
295
|
);
|
|
285
296
|
});
|
|
286
297
|
|
|
287
|
-
it(
|
|
298
|
+
it('correct response data', () => {
|
|
288
299
|
expect(responseData).toMatchSnapshot();
|
|
289
300
|
});
|
|
290
301
|
|
|
291
|
-
it(
|
|
292
|
-
expect(
|
|
302
|
+
it('correct cache data', async () => {
|
|
303
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
293
304
|
});
|
|
294
305
|
});
|
|
295
306
|
|
|
296
|
-
describe(
|
|
307
|
+
describe('type cache directives >>', () => {
|
|
297
308
|
beforeAll(async () => {
|
|
298
309
|
responseData = undefined;
|
|
299
310
|
|
|
300
311
|
cacheManager = new CacheManager({
|
|
301
|
-
cache: new
|
|
302
|
-
name:
|
|
312
|
+
cache: new Core({
|
|
313
|
+
name: 'cachemap',
|
|
303
314
|
store: map(),
|
|
304
|
-
type:
|
|
315
|
+
type: 'someType',
|
|
305
316
|
}),
|
|
306
317
|
typeCacheDirectives: {
|
|
307
|
-
Organization:
|
|
308
|
-
Repository:
|
|
309
|
-
RepositoryConnection:
|
|
310
|
-
RepositoryOwner:
|
|
318
|
+
Organization: 'public, max-age=3',
|
|
319
|
+
Repository: 'public, max-age=2',
|
|
320
|
+
RepositoryConnection: 'public, max-age=1',
|
|
321
|
+
RepositoryOwner: 'public, max-age=10',
|
|
311
322
|
},
|
|
312
323
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
313
324
|
});
|
|
@@ -319,30 +330,30 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
319
330
|
requestData,
|
|
320
331
|
responses.nestedTypeQuery,
|
|
321
332
|
{ awaitDataCaching: true },
|
|
322
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
333
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
323
334
|
);
|
|
324
335
|
});
|
|
325
336
|
|
|
326
|
-
it(
|
|
337
|
+
it('correct response data', () => {
|
|
327
338
|
expect(responseData).toMatchSnapshot();
|
|
328
339
|
});
|
|
329
340
|
|
|
330
|
-
it(
|
|
331
|
-
expect(
|
|
341
|
+
it('correct cache data', async () => {
|
|
342
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
332
343
|
});
|
|
333
344
|
});
|
|
334
345
|
});
|
|
335
346
|
|
|
336
|
-
describe(
|
|
337
|
-
describe(
|
|
347
|
+
describe('nested union with edges >>', () => {
|
|
348
|
+
describe('cascading cache control >>', () => {
|
|
338
349
|
beforeAll(async () => {
|
|
339
350
|
responseData = undefined;
|
|
340
351
|
|
|
341
352
|
cacheManager = new CacheManager({
|
|
342
|
-
cache: new
|
|
343
|
-
name:
|
|
353
|
+
cache: new Core({
|
|
354
|
+
name: 'cachemap',
|
|
344
355
|
store: map(),
|
|
345
|
-
type:
|
|
356
|
+
type: 'someType',
|
|
346
357
|
}),
|
|
347
358
|
cascadeCacheControl: true,
|
|
348
359
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
@@ -355,32 +366,32 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
355
366
|
requestData,
|
|
356
367
|
responses.nestedUnionQuery,
|
|
357
368
|
{ awaitDataCaching: true },
|
|
358
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
369
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
359
370
|
);
|
|
360
371
|
});
|
|
361
372
|
|
|
362
|
-
it(
|
|
373
|
+
it('correct response data', () => {
|
|
363
374
|
expect(responseData).toMatchSnapshot();
|
|
364
375
|
});
|
|
365
376
|
|
|
366
|
-
it(
|
|
367
|
-
expect(
|
|
377
|
+
it('correct cache data', async () => {
|
|
378
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
368
379
|
});
|
|
369
380
|
});
|
|
370
381
|
|
|
371
|
-
describe(
|
|
382
|
+
describe('type cache directives >>', () => {
|
|
372
383
|
beforeAll(async () => {
|
|
373
384
|
responseData = undefined;
|
|
374
385
|
|
|
375
386
|
cacheManager = new CacheManager({
|
|
376
|
-
cache: new
|
|
377
|
-
name:
|
|
387
|
+
cache: new Core({
|
|
388
|
+
name: 'cachemap',
|
|
378
389
|
store: map(),
|
|
379
|
-
type:
|
|
390
|
+
type: 'someType',
|
|
380
391
|
}),
|
|
381
392
|
typeCacheDirectives: {
|
|
382
|
-
SearchResultItem:
|
|
383
|
-
SearchResultItemConnection:
|
|
393
|
+
SearchResultItem: 'public, max-age=1',
|
|
394
|
+
SearchResultItemConnection: 'public, max-age=3',
|
|
384
395
|
},
|
|
385
396
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
386
397
|
});
|
|
@@ -392,34 +403,34 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
392
403
|
requestData,
|
|
393
404
|
responses.nestedUnionQuery,
|
|
394
405
|
{ awaitDataCaching: true },
|
|
395
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
406
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
396
407
|
);
|
|
397
408
|
});
|
|
398
409
|
|
|
399
|
-
it(
|
|
410
|
+
it('correct response data', () => {
|
|
400
411
|
expect(responseData).toMatchSnapshot();
|
|
401
412
|
});
|
|
402
413
|
|
|
403
|
-
it(
|
|
404
|
-
expect(
|
|
414
|
+
it('correct cache data', async () => {
|
|
415
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
405
416
|
});
|
|
406
417
|
});
|
|
407
418
|
});
|
|
408
419
|
});
|
|
409
420
|
|
|
410
|
-
describe(
|
|
411
|
-
describe(
|
|
412
|
-
describe(
|
|
421
|
+
describe('filtered >>', () => {
|
|
422
|
+
describe('single type >>', () => {
|
|
423
|
+
describe('cascading cache control >>', () => {
|
|
413
424
|
beforeAll(async () => {
|
|
414
425
|
responseData = undefined;
|
|
415
|
-
// @ts-
|
|
416
|
-
jest.spyOn(CacheManager,
|
|
426
|
+
// @ts-expect-error property is private
|
|
427
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
417
428
|
|
|
418
429
|
cacheManager = new CacheManager({
|
|
419
|
-
cache: new
|
|
420
|
-
name:
|
|
430
|
+
cache: new Core({
|
|
431
|
+
name: 'cachemap',
|
|
421
432
|
store: map(),
|
|
422
|
-
type:
|
|
433
|
+
type: 'someType',
|
|
423
434
|
}),
|
|
424
435
|
cascadeCacheControl: true,
|
|
425
436
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
@@ -432,14 +443,16 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
432
443
|
requestData,
|
|
433
444
|
responses.singleTypeQuerySet.initial,
|
|
434
445
|
{ awaitDataCaching: true },
|
|
435
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
446
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
436
447
|
);
|
|
437
448
|
|
|
438
449
|
const { cacheMetadata, data } = responses.singleTypeQuerySet.partial;
|
|
439
450
|
|
|
440
|
-
// @ts-
|
|
441
|
-
|
|
442
|
-
|
|
451
|
+
// @ts-expect-error property is private
|
|
452
|
+
// eslint-disable-next-line max-len
|
|
453
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
|
454
|
+
jest.spyOn(cacheManager._partialQueryResponses, 'get').mockReturnValue({
|
|
455
|
+
cacheMetadata: rehydrateCacheMetadata(cacheMetadata),
|
|
443
456
|
data,
|
|
444
457
|
});
|
|
445
458
|
|
|
@@ -448,33 +461,33 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
448
461
|
getRequestData(parsedRequests.singleTypeQuerySet.updated),
|
|
449
462
|
responses.singleTypeQuerySet.updated as RawResponseDataWithMaybeCacheMetadata,
|
|
450
463
|
{ awaitDataCaching: true },
|
|
451
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery, queryFiltered: true })
|
|
464
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery, queryFiltered: true })
|
|
452
465
|
);
|
|
453
466
|
});
|
|
454
467
|
|
|
455
|
-
it(
|
|
468
|
+
it('correct response data', () => {
|
|
456
469
|
expect(responseData).toMatchSnapshot();
|
|
457
470
|
});
|
|
458
471
|
|
|
459
|
-
it(
|
|
460
|
-
expect(
|
|
472
|
+
it('correct cache data', async () => {
|
|
473
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
461
474
|
});
|
|
462
475
|
});
|
|
463
476
|
|
|
464
|
-
describe(
|
|
477
|
+
describe('type cache directives >>', () => {
|
|
465
478
|
beforeAll(async () => {
|
|
466
479
|
responseData = undefined;
|
|
467
|
-
// @ts-
|
|
468
|
-
jest.spyOn(CacheManager,
|
|
480
|
+
// @ts-expect-error property is private
|
|
481
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
469
482
|
|
|
470
483
|
cacheManager = new CacheManager({
|
|
471
|
-
cache: new
|
|
472
|
-
name:
|
|
484
|
+
cache: new Core({
|
|
485
|
+
name: 'cachemap',
|
|
473
486
|
store: map(),
|
|
474
|
-
type:
|
|
487
|
+
type: 'someType',
|
|
475
488
|
}),
|
|
476
489
|
typeCacheDirectives: {
|
|
477
|
-
Organization:
|
|
490
|
+
Organization: 'public, max-age=1',
|
|
478
491
|
},
|
|
479
492
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
480
493
|
});
|
|
@@ -486,14 +499,16 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
486
499
|
requestData,
|
|
487
500
|
responses.singleTypeQuerySet.initial,
|
|
488
501
|
{ awaitDataCaching: true },
|
|
489
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
502
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
490
503
|
);
|
|
491
504
|
|
|
492
505
|
const { cacheMetadata, data } = responses.singleTypeQuerySet.partial;
|
|
493
506
|
|
|
494
|
-
// @ts-
|
|
495
|
-
|
|
496
|
-
|
|
507
|
+
// @ts-expect-error property is private
|
|
508
|
+
// eslint-disable-next-line max-len
|
|
509
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
|
510
|
+
jest.spyOn(cacheManager._partialQueryResponses, 'get').mockReturnValue({
|
|
511
|
+
cacheMetadata: rehydrateCacheMetadata(cacheMetadata),
|
|
497
512
|
data,
|
|
498
513
|
});
|
|
499
514
|
|
|
@@ -502,32 +517,32 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
502
517
|
getRequestData(parsedRequests.singleTypeQuerySet.updated),
|
|
503
518
|
responses.singleTypeQuerySet.updated as RawResponseDataWithMaybeCacheMetadata,
|
|
504
519
|
{ awaitDataCaching: true },
|
|
505
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery, queryFiltered: true })
|
|
520
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery, queryFiltered: true })
|
|
506
521
|
);
|
|
507
522
|
});
|
|
508
523
|
|
|
509
|
-
it(
|
|
524
|
+
it('correct response data', () => {
|
|
510
525
|
expect(responseData).toMatchSnapshot();
|
|
511
526
|
});
|
|
512
527
|
|
|
513
|
-
it(
|
|
514
|
-
expect(
|
|
528
|
+
it('correct cache data', async () => {
|
|
529
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
515
530
|
});
|
|
516
531
|
});
|
|
517
532
|
});
|
|
518
533
|
|
|
519
|
-
describe(
|
|
520
|
-
describe(
|
|
534
|
+
describe('nested type with edges >>', () => {
|
|
535
|
+
describe('cascading cache control >>', () => {
|
|
521
536
|
beforeAll(async () => {
|
|
522
537
|
responseData = undefined;
|
|
523
|
-
// @ts-
|
|
524
|
-
jest.spyOn(CacheManager,
|
|
538
|
+
// @ts-expect-error property is private
|
|
539
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
525
540
|
|
|
526
541
|
cacheManager = new CacheManager({
|
|
527
|
-
cache: new
|
|
528
|
-
name:
|
|
542
|
+
cache: new Core({
|
|
543
|
+
name: 'cachemap',
|
|
529
544
|
store: map(),
|
|
530
|
-
type:
|
|
545
|
+
type: 'someType',
|
|
531
546
|
}),
|
|
532
547
|
cascadeCacheControl: true,
|
|
533
548
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
@@ -540,14 +555,16 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
540
555
|
requestData,
|
|
541
556
|
responses.nestedTypeQuerySet.initial,
|
|
542
557
|
{ awaitDataCaching: true },
|
|
543
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
558
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
544
559
|
);
|
|
545
560
|
|
|
546
561
|
const { cacheMetadata, data } = responses.nestedTypeQuerySet.partial;
|
|
547
562
|
|
|
548
|
-
// @ts-
|
|
549
|
-
|
|
550
|
-
|
|
563
|
+
// @ts-expect-error property is private
|
|
564
|
+
// eslint-disable-next-line max-len
|
|
565
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
|
566
|
+
jest.spyOn(cacheManager._partialQueryResponses, 'get').mockReturnValue({
|
|
567
|
+
cacheMetadata: rehydrateCacheMetadata(cacheMetadata),
|
|
551
568
|
data,
|
|
552
569
|
});
|
|
553
570
|
|
|
@@ -556,36 +573,36 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
556
573
|
getRequestData(parsedRequests.nestedTypeQuerySet.updated),
|
|
557
574
|
responses.nestedTypeQuerySet.updated as RawResponseDataWithMaybeCacheMetadata,
|
|
558
575
|
{ awaitDataCaching: true },
|
|
559
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery, queryFiltered: true })
|
|
576
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery, queryFiltered: true })
|
|
560
577
|
);
|
|
561
578
|
});
|
|
562
579
|
|
|
563
|
-
it(
|
|
580
|
+
it('correct response data', () => {
|
|
564
581
|
expect(responseData).toMatchSnapshot();
|
|
565
582
|
});
|
|
566
583
|
|
|
567
|
-
it(
|
|
568
|
-
expect(
|
|
584
|
+
it('correct cache data', async () => {
|
|
585
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
569
586
|
});
|
|
570
587
|
});
|
|
571
588
|
|
|
572
|
-
describe(
|
|
589
|
+
describe('type cache directives >>', () => {
|
|
573
590
|
beforeAll(async () => {
|
|
574
591
|
responseData = undefined;
|
|
575
|
-
// @ts-
|
|
576
|
-
jest.spyOn(CacheManager,
|
|
592
|
+
// @ts-expect-error property is private
|
|
593
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
577
594
|
|
|
578
595
|
cacheManager = new CacheManager({
|
|
579
|
-
cache: new
|
|
580
|
-
name:
|
|
596
|
+
cache: new Core({
|
|
597
|
+
name: 'cachemap',
|
|
581
598
|
store: map(),
|
|
582
|
-
type:
|
|
599
|
+
type: 'someType',
|
|
583
600
|
}),
|
|
584
601
|
typeCacheDirectives: {
|
|
585
|
-
Organization:
|
|
586
|
-
Repository:
|
|
587
|
-
RepositoryConnection:
|
|
588
|
-
RepositoryOwner:
|
|
602
|
+
Organization: 'public, max-age=3',
|
|
603
|
+
Repository: 'public, max-age=2',
|
|
604
|
+
RepositoryConnection: 'public, max-age=1',
|
|
605
|
+
RepositoryOwner: 'public, max-age=10',
|
|
589
606
|
},
|
|
590
607
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
591
608
|
});
|
|
@@ -597,14 +614,16 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
597
614
|
requestData,
|
|
598
615
|
responses.nestedTypeQuerySet.initial,
|
|
599
616
|
{ awaitDataCaching: true },
|
|
600
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
617
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
601
618
|
);
|
|
602
619
|
|
|
603
620
|
const { cacheMetadata, data } = responses.nestedTypeQuerySet.partial;
|
|
604
621
|
|
|
605
|
-
// @ts-
|
|
606
|
-
|
|
607
|
-
|
|
622
|
+
// @ts-expect-error property is private
|
|
623
|
+
// eslint-disable-next-line max-len
|
|
624
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
|
625
|
+
jest.spyOn(cacheManager._partialQueryResponses, 'get').mockReturnValue({
|
|
626
|
+
cacheMetadata: rehydrateCacheMetadata(cacheMetadata),
|
|
608
627
|
data,
|
|
609
628
|
});
|
|
610
629
|
|
|
@@ -613,32 +632,32 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
613
632
|
getRequestData(parsedRequests.nestedTypeQuerySet.updated),
|
|
614
633
|
responses.nestedTypeQuerySet.updated as RawResponseDataWithMaybeCacheMetadata,
|
|
615
634
|
{ awaitDataCaching: true },
|
|
616
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery, queryFiltered: true })
|
|
635
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery, queryFiltered: true })
|
|
617
636
|
);
|
|
618
637
|
});
|
|
619
638
|
|
|
620
|
-
it(
|
|
639
|
+
it('correct response data', () => {
|
|
621
640
|
expect(responseData).toMatchSnapshot();
|
|
622
641
|
});
|
|
623
642
|
|
|
624
|
-
it(
|
|
625
|
-
expect(
|
|
643
|
+
it('correct cache data', async () => {
|
|
644
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
626
645
|
});
|
|
627
646
|
});
|
|
628
647
|
});
|
|
629
648
|
|
|
630
|
-
describe(
|
|
631
|
-
describe(
|
|
649
|
+
describe('nested union with edges >>', () => {
|
|
650
|
+
describe('cascading cache control >>', () => {
|
|
632
651
|
beforeAll(async () => {
|
|
633
652
|
responseData = undefined;
|
|
634
|
-
// @ts-
|
|
635
|
-
jest.spyOn(CacheManager,
|
|
653
|
+
// @ts-expect-error property is private
|
|
654
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
636
655
|
|
|
637
656
|
cacheManager = new CacheManager({
|
|
638
|
-
cache: new
|
|
639
|
-
name:
|
|
657
|
+
cache: new Core({
|
|
658
|
+
name: 'cachemap',
|
|
640
659
|
store: map(),
|
|
641
|
-
type:
|
|
660
|
+
type: 'someType',
|
|
642
661
|
}),
|
|
643
662
|
cascadeCacheControl: true,
|
|
644
663
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
@@ -651,14 +670,16 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
651
670
|
requestData,
|
|
652
671
|
responses.nestedUnionQuerySet.initial,
|
|
653
672
|
{ awaitDataCaching: true },
|
|
654
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
673
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
655
674
|
);
|
|
656
675
|
|
|
657
676
|
const { cacheMetadata, data } = responses.nestedUnionQuerySet.partial;
|
|
658
677
|
|
|
659
|
-
// @ts-
|
|
660
|
-
|
|
661
|
-
|
|
678
|
+
// @ts-expect-error property is private
|
|
679
|
+
// eslint-disable-next-line max-len
|
|
680
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
|
681
|
+
jest.spyOn(cacheManager._partialQueryResponses, 'get').mockReturnValue({
|
|
682
|
+
cacheMetadata: rehydrateCacheMetadata(cacheMetadata),
|
|
662
683
|
data,
|
|
663
684
|
});
|
|
664
685
|
|
|
@@ -667,34 +688,34 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
667
688
|
getRequestData(parsedRequests.nestedUnionQuerySet.updated),
|
|
668
689
|
responses.nestedUnionQuerySet.updated as RawResponseDataWithMaybeCacheMetadata,
|
|
669
690
|
{ awaitDataCaching: true },
|
|
670
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery, queryFiltered: true })
|
|
691
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery, queryFiltered: true })
|
|
671
692
|
);
|
|
672
693
|
});
|
|
673
694
|
|
|
674
|
-
it(
|
|
695
|
+
it('correct response data', () => {
|
|
675
696
|
expect(responseData).toMatchSnapshot();
|
|
676
697
|
});
|
|
677
698
|
|
|
678
|
-
it(
|
|
679
|
-
expect(
|
|
699
|
+
it('correct cache data', async () => {
|
|
700
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
680
701
|
});
|
|
681
702
|
});
|
|
682
703
|
|
|
683
|
-
describe(
|
|
704
|
+
describe('type cache directives >>', () => {
|
|
684
705
|
beforeAll(async () => {
|
|
685
706
|
responseData = undefined;
|
|
686
|
-
// @ts-
|
|
687
|
-
jest.spyOn(CacheManager,
|
|
707
|
+
// @ts-expect-error property is private
|
|
708
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
688
709
|
|
|
689
710
|
cacheManager = new CacheManager({
|
|
690
|
-
cache: new
|
|
691
|
-
name:
|
|
711
|
+
cache: new Core({
|
|
712
|
+
name: 'cachemap',
|
|
692
713
|
store: map(),
|
|
693
|
-
type:
|
|
714
|
+
type: 'someType',
|
|
694
715
|
}),
|
|
695
716
|
typeCacheDirectives: {
|
|
696
|
-
SearchResultItem:
|
|
697
|
-
SearchResultItemConnection:
|
|
717
|
+
SearchResultItem: 'public, max-age=1',
|
|
718
|
+
SearchResultItemConnection: 'public, max-age=3',
|
|
698
719
|
},
|
|
699
720
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
700
721
|
});
|
|
@@ -706,14 +727,16 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
706
727
|
requestData,
|
|
707
728
|
responses.nestedUnionQuerySet.initial,
|
|
708
729
|
{ awaitDataCaching: true },
|
|
709
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
730
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
710
731
|
);
|
|
711
732
|
|
|
712
733
|
const { cacheMetadata, data } = responses.nestedUnionQuerySet.partial;
|
|
713
734
|
|
|
714
|
-
// @ts-
|
|
715
|
-
|
|
716
|
-
|
|
735
|
+
// @ts-expect-error property is private
|
|
736
|
+
// eslint-disable-next-line max-len
|
|
737
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
|
738
|
+
jest.spyOn(cacheManager._partialQueryResponses, 'get').mockReturnValue({
|
|
739
|
+
cacheMetadata: rehydrateCacheMetadata(cacheMetadata),
|
|
717
740
|
data,
|
|
718
741
|
});
|
|
719
742
|
|
|
@@ -722,33 +745,33 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
722
745
|
getRequestData(parsedRequests.nestedUnionQuerySet.updated),
|
|
723
746
|
responses.nestedUnionQuerySet.updated as RawResponseDataWithMaybeCacheMetadata,
|
|
724
747
|
{ awaitDataCaching: true },
|
|
725
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery, queryFiltered: true })
|
|
748
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery, queryFiltered: true })
|
|
726
749
|
);
|
|
727
750
|
});
|
|
728
751
|
|
|
729
|
-
it(
|
|
752
|
+
it('correct response data', () => {
|
|
730
753
|
expect(responseData).toMatchSnapshot();
|
|
731
754
|
});
|
|
732
755
|
|
|
733
|
-
it(
|
|
734
|
-
expect(
|
|
756
|
+
it('correct cache data', async () => {
|
|
757
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
735
758
|
});
|
|
736
759
|
});
|
|
737
760
|
});
|
|
738
761
|
|
|
739
|
-
describe(
|
|
740
|
-
describe(
|
|
762
|
+
describe('defer >>', () => {
|
|
763
|
+
describe('cascading cache control >>', () => {
|
|
741
764
|
const responseDataSet: ResponseData[] = [];
|
|
742
765
|
|
|
743
766
|
beforeAll(async () => {
|
|
744
|
-
// @ts-
|
|
745
|
-
jest.spyOn(CacheManager,
|
|
767
|
+
// @ts-expect-error property is private
|
|
768
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
746
769
|
|
|
747
770
|
cacheManager = new CacheManager({
|
|
748
|
-
cache: new
|
|
749
|
-
name:
|
|
771
|
+
cache: new Core({
|
|
772
|
+
name: 'cachemap',
|
|
750
773
|
store: map(),
|
|
751
|
-
type:
|
|
774
|
+
type: 'someType',
|
|
752
775
|
}),
|
|
753
776
|
cascadeCacheControl: true,
|
|
754
777
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
@@ -761,68 +784,72 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
761
784
|
requestData,
|
|
762
785
|
responses.deferQuerySet.initial,
|
|
763
786
|
{ awaitDataCaching: true },
|
|
764
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true })
|
|
787
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true })
|
|
765
788
|
);
|
|
766
789
|
|
|
767
790
|
const { cacheMetadata, data } = responses.deferQuerySet.partial;
|
|
768
791
|
|
|
769
|
-
// @ts-
|
|
770
|
-
|
|
771
|
-
|
|
792
|
+
// @ts-expect-error property is private
|
|
793
|
+
// eslint-disable-next-line max-len
|
|
794
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
|
795
|
+
jest.spyOn(cacheManager._partialQueryResponses, 'get').mockReturnValue({
|
|
796
|
+
cacheMetadata: rehydrateCacheMetadata(cacheMetadata),
|
|
772
797
|
data,
|
|
773
798
|
});
|
|
774
799
|
|
|
775
|
-
await new Promise(
|
|
800
|
+
await new Promise<void>(resolve => {
|
|
776
801
|
const updateResponses = [...(responses.deferQuerySet.updated as RawResponseDataWithMaybeCacheMetadata[])];
|
|
777
802
|
|
|
778
|
-
const interval = setInterval(
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
803
|
+
const interval = setInterval(() => {
|
|
804
|
+
void (async () => {
|
|
805
|
+
const result = await cacheManager.cacheQuery(
|
|
806
|
+
getRequestData(parsedRequests.deferQuerySet.full),
|
|
807
|
+
getRequestData(parsedRequests.deferQuerySet.updated),
|
|
808
|
+
updateResponses.shift()!,
|
|
809
|
+
{ awaitDataCaching: true },
|
|
810
|
+
getRequestContext({
|
|
811
|
+
fieldTypeMap: requestFieldTypeMaps.deferQuery,
|
|
812
|
+
hasDeferOrStream: true,
|
|
813
|
+
queryFiltered: true,
|
|
814
|
+
})
|
|
815
|
+
);
|
|
816
|
+
|
|
817
|
+
responseDataSet.push(result);
|
|
818
|
+
|
|
819
|
+
if (updateResponses.length === 0) {
|
|
820
|
+
clearInterval(interval);
|
|
821
|
+
resolve();
|
|
822
|
+
}
|
|
823
|
+
})();
|
|
797
824
|
}, 50);
|
|
798
825
|
});
|
|
799
826
|
});
|
|
800
827
|
|
|
801
|
-
it(
|
|
828
|
+
it('correct response data', () => {
|
|
802
829
|
expect(responseDataSet).toMatchSnapshot();
|
|
803
830
|
});
|
|
804
831
|
|
|
805
|
-
it(
|
|
806
|
-
expect(
|
|
832
|
+
it('correct cache data', async () => {
|
|
833
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
807
834
|
});
|
|
808
835
|
});
|
|
809
836
|
});
|
|
810
837
|
});
|
|
811
838
|
});
|
|
812
839
|
|
|
813
|
-
describe(
|
|
840
|
+
describe('analyzeQuery >>', () => {
|
|
814
841
|
let analyzeQueryResult: AnalyzeQueryResult | undefined;
|
|
815
842
|
|
|
816
|
-
describe(
|
|
817
|
-
describe(
|
|
843
|
+
describe('no matching data >>', () => {
|
|
844
|
+
describe('single type >>', () => {
|
|
818
845
|
beforeAll(async () => {
|
|
819
846
|
analyzeQueryResult = undefined;
|
|
820
847
|
|
|
821
848
|
cacheManager = new CacheManager({
|
|
822
|
-
cache: new
|
|
823
|
-
name:
|
|
849
|
+
cache: new Core({
|
|
850
|
+
name: 'cachemap',
|
|
824
851
|
store: map(),
|
|
825
|
-
type:
|
|
852
|
+
type: 'someType',
|
|
826
853
|
}),
|
|
827
854
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
828
855
|
});
|
|
@@ -830,29 +857,29 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
830
857
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
831
858
|
getRequestData(parsedRequests.singleTypeQuery),
|
|
832
859
|
{ awaitDataCaching: true },
|
|
833
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
860
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
834
861
|
);
|
|
835
862
|
});
|
|
836
863
|
|
|
837
|
-
it(
|
|
838
|
-
const { ast, ...otherProps } = analyzeQueryResult
|
|
864
|
+
it('correct request data', () => {
|
|
865
|
+
const { ast, ...otherProps } = analyzeQueryResult!.updated!;
|
|
839
866
|
expect(otherProps).toMatchSnapshot();
|
|
840
867
|
});
|
|
841
868
|
|
|
842
|
-
it(
|
|
869
|
+
it('no response data', () => {
|
|
843
870
|
expect(analyzeQueryResult?.response).toBeUndefined();
|
|
844
871
|
});
|
|
845
872
|
});
|
|
846
873
|
|
|
847
|
-
describe(
|
|
874
|
+
describe('nested type with edges >>', () => {
|
|
848
875
|
beforeAll(async () => {
|
|
849
876
|
analyzeQueryResult = undefined;
|
|
850
877
|
|
|
851
878
|
cacheManager = new CacheManager({
|
|
852
|
-
cache: new
|
|
853
|
-
name:
|
|
879
|
+
cache: new Core({
|
|
880
|
+
name: 'cachemap',
|
|
854
881
|
store: map(),
|
|
855
|
-
type:
|
|
882
|
+
type: 'someType',
|
|
856
883
|
}),
|
|
857
884
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
858
885
|
});
|
|
@@ -860,29 +887,29 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
860
887
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
861
888
|
getRequestData(parsedRequests.nestedTypeQuery),
|
|
862
889
|
{ awaitDataCaching: true },
|
|
863
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
890
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
864
891
|
);
|
|
865
892
|
});
|
|
866
893
|
|
|
867
|
-
it(
|
|
868
|
-
const { ast, ...otherProps } = analyzeQueryResult
|
|
894
|
+
it('correct request data', () => {
|
|
895
|
+
const { ast, ...otherProps } = analyzeQueryResult!.updated!;
|
|
869
896
|
expect(otherProps).toMatchSnapshot();
|
|
870
897
|
});
|
|
871
898
|
|
|
872
|
-
it(
|
|
899
|
+
it('no response data', () => {
|
|
873
900
|
expect(analyzeQueryResult?.response).toBeUndefined();
|
|
874
901
|
});
|
|
875
902
|
});
|
|
876
903
|
|
|
877
|
-
describe(
|
|
904
|
+
describe('nested union with edges >>', () => {
|
|
878
905
|
beforeAll(async () => {
|
|
879
906
|
analyzeQueryResult = undefined;
|
|
880
907
|
|
|
881
908
|
cacheManager = new CacheManager({
|
|
882
|
-
cache: new
|
|
883
|
-
name:
|
|
909
|
+
cache: new Core({
|
|
910
|
+
name: 'cachemap',
|
|
884
911
|
store: map(),
|
|
885
|
-
type:
|
|
912
|
+
type: 'someType',
|
|
886
913
|
}),
|
|
887
914
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
888
915
|
});
|
|
@@ -890,29 +917,29 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
890
917
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
891
918
|
getRequestData(parsedRequests.nestedUnionQuery),
|
|
892
919
|
{ awaitDataCaching: true },
|
|
893
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
920
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
894
921
|
);
|
|
895
922
|
});
|
|
896
923
|
|
|
897
|
-
it(
|
|
898
|
-
const { ast, ...otherProps } = analyzeQueryResult
|
|
924
|
+
it('correct request data', () => {
|
|
925
|
+
const { ast, ...otherProps } = analyzeQueryResult!.updated!;
|
|
899
926
|
expect(otherProps).toMatchSnapshot();
|
|
900
927
|
});
|
|
901
928
|
|
|
902
|
-
it(
|
|
929
|
+
it('no response data', () => {
|
|
903
930
|
expect(analyzeQueryResult?.response).toBeUndefined();
|
|
904
931
|
});
|
|
905
932
|
});
|
|
906
933
|
|
|
907
|
-
describe(
|
|
934
|
+
describe('defer >>', () => {
|
|
908
935
|
beforeAll(async () => {
|
|
909
936
|
analyzeQueryResult = undefined;
|
|
910
937
|
|
|
911
938
|
cacheManager = new CacheManager({
|
|
912
|
-
cache: new
|
|
913
|
-
name:
|
|
939
|
+
cache: new Core({
|
|
940
|
+
name: 'cachemap',
|
|
914
941
|
store: map(),
|
|
915
|
-
type:
|
|
942
|
+
type: 'someType',
|
|
916
943
|
}),
|
|
917
944
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
918
945
|
});
|
|
@@ -920,36 +947,36 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
920
947
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
921
948
|
getRequestData(parsedRequests.deferQuery),
|
|
922
949
|
{ awaitDataCaching: true },
|
|
923
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true })
|
|
950
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true })
|
|
924
951
|
);
|
|
925
952
|
});
|
|
926
953
|
|
|
927
|
-
it(
|
|
928
|
-
const { ast, ...otherProps } = analyzeQueryResult
|
|
954
|
+
it('correct request data', () => {
|
|
955
|
+
const { ast, ...otherProps } = analyzeQueryResult!.updated!;
|
|
929
956
|
expect(otherProps).toMatchSnapshot();
|
|
930
957
|
});
|
|
931
958
|
|
|
932
|
-
it(
|
|
959
|
+
it('no response data', () => {
|
|
933
960
|
expect(analyzeQueryResult?.response).toBeUndefined();
|
|
934
961
|
});
|
|
935
962
|
});
|
|
936
963
|
});
|
|
937
964
|
|
|
938
|
-
describe(
|
|
939
|
-
describe(
|
|
965
|
+
describe('entire matching data >>', () => {
|
|
966
|
+
describe('single type >>', () => {
|
|
940
967
|
beforeAll(async () => {
|
|
941
968
|
analyzeQueryResult = undefined;
|
|
942
|
-
// @ts-
|
|
943
|
-
jest.spyOn(CacheManager,
|
|
969
|
+
// @ts-expect-error property is private
|
|
970
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
944
971
|
|
|
945
972
|
cacheManager = new CacheManager({
|
|
946
|
-
cache: new
|
|
947
|
-
name:
|
|
973
|
+
cache: new Core({
|
|
974
|
+
name: 'cachemap',
|
|
948
975
|
store: map(),
|
|
949
|
-
type:
|
|
976
|
+
type: 'someType',
|
|
950
977
|
}),
|
|
951
978
|
typeCacheDirectives: {
|
|
952
|
-
Organization:
|
|
979
|
+
Organization: 'public, max-age=1',
|
|
953
980
|
},
|
|
954
981
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
955
982
|
});
|
|
@@ -961,46 +988,46 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
961
988
|
requestData,
|
|
962
989
|
responses.singleTypeQuery,
|
|
963
990
|
{ awaitDataCaching: true },
|
|
964
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
991
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
965
992
|
);
|
|
966
993
|
|
|
967
994
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
968
995
|
getRequestData(parsedRequests.singleTypeQuery),
|
|
969
996
|
{ awaitDataCaching: true },
|
|
970
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
997
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
971
998
|
);
|
|
972
999
|
});
|
|
973
1000
|
|
|
974
|
-
it(
|
|
1001
|
+
it('no request data', () => {
|
|
975
1002
|
expect(analyzeQueryResult?.updated).toBeUndefined();
|
|
976
1003
|
});
|
|
977
1004
|
|
|
978
|
-
it(
|
|
1005
|
+
it('correct response data', () => {
|
|
979
1006
|
expect(analyzeQueryResult?.response).toMatchSnapshot();
|
|
980
1007
|
});
|
|
981
1008
|
|
|
982
|
-
it(
|
|
983
|
-
expect(
|
|
1009
|
+
it('correct cache data', async () => {
|
|
1010
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
984
1011
|
});
|
|
985
1012
|
});
|
|
986
1013
|
|
|
987
|
-
describe(
|
|
1014
|
+
describe('nested type with edges >>', () => {
|
|
988
1015
|
beforeAll(async () => {
|
|
989
1016
|
analyzeQueryResult = undefined;
|
|
990
|
-
// @ts-
|
|
991
|
-
jest.spyOn(CacheManager,
|
|
1017
|
+
// @ts-expect-error property is private
|
|
1018
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
992
1019
|
|
|
993
1020
|
cacheManager = new CacheManager({
|
|
994
|
-
cache: new
|
|
995
|
-
name:
|
|
1021
|
+
cache: new Core({
|
|
1022
|
+
name: 'cachemap',
|
|
996
1023
|
store: map(),
|
|
997
|
-
type:
|
|
1024
|
+
type: 'someType',
|
|
998
1025
|
}),
|
|
999
1026
|
typeCacheDirectives: {
|
|
1000
|
-
Organization:
|
|
1001
|
-
Repository:
|
|
1002
|
-
RepositoryConnection:
|
|
1003
|
-
RepositoryOwner:
|
|
1027
|
+
Organization: 'public, max-age=3',
|
|
1028
|
+
Repository: 'public, max-age=2',
|
|
1029
|
+
RepositoryConnection: 'public, max-age=1',
|
|
1030
|
+
RepositoryOwner: 'public, max-age=10',
|
|
1004
1031
|
},
|
|
1005
1032
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
1006
1033
|
});
|
|
@@ -1012,44 +1039,44 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
1012
1039
|
requestData,
|
|
1013
1040
|
responses.nestedTypeQuery,
|
|
1014
1041
|
{ awaitDataCaching: true },
|
|
1015
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
1042
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
1016
1043
|
);
|
|
1017
1044
|
|
|
1018
1045
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
1019
1046
|
getRequestData(parsedRequests.nestedTypeQuery),
|
|
1020
1047
|
{ awaitDataCaching: true },
|
|
1021
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
1048
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
1022
1049
|
);
|
|
1023
1050
|
});
|
|
1024
1051
|
|
|
1025
|
-
it(
|
|
1052
|
+
it('no request data', () => {
|
|
1026
1053
|
expect(analyzeQueryResult?.updated).toBeUndefined();
|
|
1027
1054
|
});
|
|
1028
1055
|
|
|
1029
|
-
it(
|
|
1056
|
+
it('correct response data', () => {
|
|
1030
1057
|
expect(analyzeQueryResult?.response).toMatchSnapshot();
|
|
1031
1058
|
});
|
|
1032
1059
|
|
|
1033
|
-
it(
|
|
1034
|
-
expect(
|
|
1060
|
+
it('correct cache data', async () => {
|
|
1061
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
1035
1062
|
});
|
|
1036
1063
|
});
|
|
1037
1064
|
|
|
1038
|
-
describe(
|
|
1065
|
+
describe('nested union with edges >>', () => {
|
|
1039
1066
|
beforeAll(async () => {
|
|
1040
1067
|
analyzeQueryResult = undefined;
|
|
1041
|
-
// @ts-
|
|
1042
|
-
jest.spyOn(CacheManager,
|
|
1068
|
+
// @ts-expect-error property is private
|
|
1069
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
1043
1070
|
|
|
1044
1071
|
cacheManager = new CacheManager({
|
|
1045
|
-
cache: new
|
|
1046
|
-
name:
|
|
1072
|
+
cache: new Core({
|
|
1073
|
+
name: 'cachemap',
|
|
1047
1074
|
store: map(),
|
|
1048
|
-
type:
|
|
1075
|
+
type: 'someType',
|
|
1049
1076
|
}),
|
|
1050
1077
|
typeCacheDirectives: {
|
|
1051
|
-
SearchResultItem:
|
|
1052
|
-
SearchResultItemConnection:
|
|
1078
|
+
SearchResultItem: 'public, max-age=1',
|
|
1079
|
+
SearchResultItemConnection: 'public, max-age=3',
|
|
1053
1080
|
},
|
|
1054
1081
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
1055
1082
|
});
|
|
@@ -1061,40 +1088,40 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
1061
1088
|
requestData,
|
|
1062
1089
|
responses.nestedUnionQuery,
|
|
1063
1090
|
{ awaitDataCaching: true },
|
|
1064
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
1091
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
1065
1092
|
);
|
|
1066
1093
|
|
|
1067
1094
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
1068
1095
|
getRequestData(parsedRequests.nestedUnionQuery),
|
|
1069
1096
|
{ awaitDataCaching: true },
|
|
1070
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
1097
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
1071
1098
|
);
|
|
1072
1099
|
});
|
|
1073
1100
|
|
|
1074
|
-
it(
|
|
1101
|
+
it('no request data', () => {
|
|
1075
1102
|
expect(analyzeQueryResult?.updated).toBeUndefined();
|
|
1076
1103
|
});
|
|
1077
1104
|
|
|
1078
|
-
it(
|
|
1105
|
+
it('correct response data', () => {
|
|
1079
1106
|
expect(analyzeQueryResult?.response).toMatchSnapshot();
|
|
1080
1107
|
});
|
|
1081
1108
|
|
|
1082
|
-
it(
|
|
1083
|
-
expect(
|
|
1109
|
+
it('correct cache data', async () => {
|
|
1110
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
1084
1111
|
});
|
|
1085
1112
|
});
|
|
1086
1113
|
|
|
1087
|
-
describe(
|
|
1114
|
+
describe('defer >>', () => {
|
|
1088
1115
|
beforeAll(async () => {
|
|
1089
1116
|
analyzeQueryResult = undefined;
|
|
1090
|
-
// @ts-
|
|
1091
|
-
jest.spyOn(CacheManager,
|
|
1117
|
+
// @ts-expect-error property is private
|
|
1118
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
1092
1119
|
|
|
1093
1120
|
cacheManager = new CacheManager({
|
|
1094
|
-
cache: new
|
|
1095
|
-
name:
|
|
1121
|
+
cache: new Core({
|
|
1122
|
+
name: 'cachemap',
|
|
1096
1123
|
store: map(),
|
|
1097
|
-
type:
|
|
1124
|
+
type: 'someType',
|
|
1098
1125
|
}),
|
|
1099
1126
|
cascadeCacheControl: true,
|
|
1100
1127
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
@@ -1102,64 +1129,66 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
1102
1129
|
|
|
1103
1130
|
const requestData = getRequestData(parsedRequests.deferQuerySet.updated);
|
|
1104
1131
|
|
|
1105
|
-
await new Promise(
|
|
1132
|
+
await new Promise<void>(resolve => {
|
|
1106
1133
|
const updateResponses = [...(responses.deferQuerySet.updated as RawResponseDataWithMaybeCacheMetadata[])];
|
|
1107
1134
|
|
|
1108
|
-
const interval = setInterval(
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1135
|
+
const interval = setInterval(() => {
|
|
1136
|
+
void (async () => {
|
|
1137
|
+
await cacheManager.cacheQuery(
|
|
1138
|
+
requestData,
|
|
1139
|
+
requestData,
|
|
1140
|
+
updateResponses.shift()!,
|
|
1141
|
+
{ awaitDataCaching: true },
|
|
1142
|
+
getRequestContext({
|
|
1143
|
+
fieldTypeMap: requestFieldTypeMaps.deferQuery,
|
|
1144
|
+
hasDeferOrStream: true,
|
|
1145
|
+
})
|
|
1146
|
+
);
|
|
1147
|
+
|
|
1148
|
+
if (updateResponses.length === 0) {
|
|
1149
|
+
clearInterval(interval);
|
|
1150
|
+
resolve();
|
|
1151
|
+
}
|
|
1152
|
+
})();
|
|
1124
1153
|
}, 50);
|
|
1125
1154
|
});
|
|
1126
1155
|
|
|
1127
1156
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
1128
1157
|
requestData,
|
|
1129
1158
|
{ awaitDataCaching: true },
|
|
1130
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true })
|
|
1159
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true })
|
|
1131
1160
|
);
|
|
1132
1161
|
});
|
|
1133
1162
|
|
|
1134
|
-
it(
|
|
1163
|
+
it('no request data', () => {
|
|
1135
1164
|
expect(analyzeQueryResult?.updated).toBeUndefined();
|
|
1136
1165
|
});
|
|
1137
1166
|
|
|
1138
|
-
it(
|
|
1167
|
+
it('correct response data', () => {
|
|
1139
1168
|
expect(analyzeQueryResult?.response).toMatchSnapshot();
|
|
1140
1169
|
});
|
|
1141
1170
|
|
|
1142
|
-
it(
|
|
1143
|
-
expect(
|
|
1171
|
+
it('correct cache data', async () => {
|
|
1172
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
1144
1173
|
});
|
|
1145
1174
|
});
|
|
1146
1175
|
});
|
|
1147
1176
|
|
|
1148
|
-
describe(
|
|
1149
|
-
describe(
|
|
1177
|
+
describe('some matching data >>', () => {
|
|
1178
|
+
describe('single type >>', () => {
|
|
1150
1179
|
beforeAll(async () => {
|
|
1151
1180
|
analyzeQueryResult = undefined;
|
|
1152
|
-
// @ts-
|
|
1153
|
-
jest.spyOn(CacheManager,
|
|
1181
|
+
// @ts-expect-error property is private
|
|
1182
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
1154
1183
|
|
|
1155
1184
|
cacheManager = new CacheManager({
|
|
1156
|
-
cache: new
|
|
1157
|
-
name:
|
|
1185
|
+
cache: new Core({
|
|
1186
|
+
name: 'cachemap',
|
|
1158
1187
|
store: map(),
|
|
1159
|
-
type:
|
|
1188
|
+
type: 'someType',
|
|
1160
1189
|
}),
|
|
1161
1190
|
typeCacheDirectives: {
|
|
1162
|
-
Organization:
|
|
1191
|
+
Organization: 'public, max-age=1',
|
|
1163
1192
|
},
|
|
1164
1193
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
1165
1194
|
});
|
|
@@ -1171,49 +1200,49 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
1171
1200
|
requestData,
|
|
1172
1201
|
responses.singleTypeQuerySet.initial,
|
|
1173
1202
|
{ awaitDataCaching: true },
|
|
1174
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
1203
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
1175
1204
|
);
|
|
1176
1205
|
|
|
1177
1206
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
1178
1207
|
getRequestData(parsedRequests.singleTypeQuery),
|
|
1179
1208
|
{ awaitDataCaching: true },
|
|
1180
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
1209
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
1181
1210
|
);
|
|
1182
1211
|
});
|
|
1183
1212
|
|
|
1184
|
-
it(
|
|
1185
|
-
const { ast, ...otherProps } = analyzeQueryResult
|
|
1213
|
+
it('correct request data', () => {
|
|
1214
|
+
const { ast, ...otherProps } = analyzeQueryResult!.updated!;
|
|
1186
1215
|
expect(otherProps).toMatchSnapshot();
|
|
1187
1216
|
});
|
|
1188
1217
|
|
|
1189
|
-
it(
|
|
1218
|
+
it('no response data', () => {
|
|
1190
1219
|
expect(analyzeQueryResult?.response).toBeUndefined();
|
|
1191
1220
|
});
|
|
1192
1221
|
|
|
1193
|
-
it(
|
|
1194
|
-
expect(
|
|
1222
|
+
it('correct cache data', async () => {
|
|
1223
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
1195
1224
|
});
|
|
1196
1225
|
|
|
1197
|
-
it(
|
|
1198
|
-
// @ts-
|
|
1226
|
+
it('correct partial data', () => {
|
|
1227
|
+
// @ts-expect-error property is private
|
|
1199
1228
|
expect(cacheManager._partialQueryResponses).toMatchSnapshot();
|
|
1200
1229
|
});
|
|
1201
1230
|
});
|
|
1202
1231
|
|
|
1203
|
-
describe(
|
|
1232
|
+
describe('single type with just ID match >>', () => {
|
|
1204
1233
|
beforeAll(async () => {
|
|
1205
1234
|
analyzeQueryResult = undefined;
|
|
1206
|
-
// @ts-
|
|
1207
|
-
jest.spyOn(CacheManager,
|
|
1235
|
+
// @ts-expect-error property is private
|
|
1236
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
1208
1237
|
|
|
1209
1238
|
cacheManager = new CacheManager({
|
|
1210
|
-
cache: new
|
|
1211
|
-
name:
|
|
1239
|
+
cache: new Core({
|
|
1240
|
+
name: 'cachemap',
|
|
1212
1241
|
store: map(),
|
|
1213
|
-
type:
|
|
1242
|
+
type: 'someType',
|
|
1214
1243
|
}),
|
|
1215
1244
|
typeCacheDirectives: {
|
|
1216
|
-
Organization:
|
|
1245
|
+
Organization: 'public, max-age=1',
|
|
1217
1246
|
},
|
|
1218
1247
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
1219
1248
|
});
|
|
@@ -1225,52 +1254,52 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
1225
1254
|
requestData,
|
|
1226
1255
|
responses.singleTypeQuerySmallA,
|
|
1227
1256
|
{ awaitDataCaching: true },
|
|
1228
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
1257
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
1229
1258
|
);
|
|
1230
1259
|
|
|
1231
1260
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
1232
1261
|
getRequestData(parsedRequests.singleTypeQuerySmallB),
|
|
1233
1262
|
{ awaitDataCaching: true },
|
|
1234
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
1263
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.singleTypeQuery })
|
|
1235
1264
|
);
|
|
1236
1265
|
});
|
|
1237
1266
|
|
|
1238
|
-
it(
|
|
1239
|
-
const { ast, ...otherProps } = analyzeQueryResult
|
|
1267
|
+
it('correct request data', () => {
|
|
1268
|
+
const { ast, ...otherProps } = analyzeQueryResult!.updated!;
|
|
1240
1269
|
expect(otherProps).toMatchSnapshot();
|
|
1241
1270
|
});
|
|
1242
1271
|
|
|
1243
|
-
it(
|
|
1272
|
+
it('no response data', () => {
|
|
1244
1273
|
expect(analyzeQueryResult?.response).toBeUndefined();
|
|
1245
1274
|
});
|
|
1246
1275
|
|
|
1247
|
-
it(
|
|
1248
|
-
expect(
|
|
1276
|
+
it('correct cache data', async () => {
|
|
1277
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
1249
1278
|
});
|
|
1250
1279
|
|
|
1251
|
-
it(
|
|
1252
|
-
// @ts-
|
|
1280
|
+
it('correct partial data', () => {
|
|
1281
|
+
// @ts-expect-error property is private
|
|
1253
1282
|
expect(cacheManager._partialQueryResponses).toMatchSnapshot();
|
|
1254
1283
|
});
|
|
1255
1284
|
});
|
|
1256
1285
|
|
|
1257
|
-
describe(
|
|
1286
|
+
describe('nested type with edges >', () => {
|
|
1258
1287
|
beforeAll(async () => {
|
|
1259
1288
|
analyzeQueryResult = undefined;
|
|
1260
|
-
// @ts-
|
|
1261
|
-
jest.spyOn(CacheManager,
|
|
1289
|
+
// @ts-expect-error property is private
|
|
1290
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
1262
1291
|
|
|
1263
1292
|
cacheManager = new CacheManager({
|
|
1264
|
-
cache: new
|
|
1265
|
-
name:
|
|
1293
|
+
cache: new Core({
|
|
1294
|
+
name: 'cachemap',
|
|
1266
1295
|
store: map(),
|
|
1267
|
-
type:
|
|
1296
|
+
type: 'someType',
|
|
1268
1297
|
}),
|
|
1269
1298
|
typeCacheDirectives: {
|
|
1270
|
-
Organization:
|
|
1271
|
-
Repository:
|
|
1272
|
-
RepositoryConnection:
|
|
1273
|
-
RepositoryOwner:
|
|
1299
|
+
Organization: 'public, max-age=3',
|
|
1300
|
+
Repository: 'public, max-age=2',
|
|
1301
|
+
RepositoryConnection: 'public, max-age=1',
|
|
1302
|
+
RepositoryOwner: 'public, max-age=10',
|
|
1274
1303
|
},
|
|
1275
1304
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
1276
1305
|
});
|
|
@@ -1282,50 +1311,50 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
1282
1311
|
requestData,
|
|
1283
1312
|
responses.nestedTypeQuerySet.initial,
|
|
1284
1313
|
{ awaitDataCaching: true },
|
|
1285
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
1314
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
1286
1315
|
);
|
|
1287
1316
|
|
|
1288
1317
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
1289
1318
|
getRequestData(parsedRequests.nestedTypeQuery),
|
|
1290
1319
|
{ awaitDataCaching: true },
|
|
1291
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
1320
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedTypeQuery })
|
|
1292
1321
|
);
|
|
1293
1322
|
});
|
|
1294
1323
|
|
|
1295
|
-
it(
|
|
1296
|
-
const { ast, ...otherProps } = analyzeQueryResult
|
|
1324
|
+
it('correct request data', () => {
|
|
1325
|
+
const { ast, ...otherProps } = analyzeQueryResult!.updated!;
|
|
1297
1326
|
expect(otherProps).toMatchSnapshot();
|
|
1298
1327
|
});
|
|
1299
1328
|
|
|
1300
|
-
it(
|
|
1329
|
+
it('no response data', () => {
|
|
1301
1330
|
expect(analyzeQueryResult?.response).toBeUndefined();
|
|
1302
1331
|
});
|
|
1303
1332
|
|
|
1304
|
-
it(
|
|
1305
|
-
expect(
|
|
1333
|
+
it('correct cache data', async () => {
|
|
1334
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
1306
1335
|
});
|
|
1307
1336
|
|
|
1308
|
-
it(
|
|
1309
|
-
// @ts-
|
|
1337
|
+
it('correct partial data', () => {
|
|
1338
|
+
// @ts-expect-error property is private
|
|
1310
1339
|
expect(cacheManager._partialQueryResponses).toMatchSnapshot();
|
|
1311
1340
|
});
|
|
1312
1341
|
});
|
|
1313
1342
|
|
|
1314
|
-
describe(
|
|
1343
|
+
describe('nested union with edges >>', () => {
|
|
1315
1344
|
beforeAll(async () => {
|
|
1316
1345
|
analyzeQueryResult = undefined;
|
|
1317
|
-
// @ts-
|
|
1318
|
-
jest.spyOn(CacheManager,
|
|
1346
|
+
// @ts-expect-error property is private
|
|
1347
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
1319
1348
|
|
|
1320
1349
|
cacheManager = new CacheManager({
|
|
1321
|
-
cache: new
|
|
1322
|
-
name:
|
|
1350
|
+
cache: new Core({
|
|
1351
|
+
name: 'cachemap',
|
|
1323
1352
|
store: map(),
|
|
1324
|
-
type:
|
|
1353
|
+
type: 'someType',
|
|
1325
1354
|
}),
|
|
1326
1355
|
typeCacheDirectives: {
|
|
1327
|
-
SearchResultItem:
|
|
1328
|
-
SearchResultItemConnection:
|
|
1356
|
+
SearchResultItem: 'public, max-age=1',
|
|
1357
|
+
SearchResultItemConnection: 'public, max-age=3',
|
|
1329
1358
|
},
|
|
1330
1359
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
1331
1360
|
});
|
|
@@ -1337,46 +1366,46 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
1337
1366
|
requestData,
|
|
1338
1367
|
responses.nestedUnionQuerySet.initial,
|
|
1339
1368
|
{ awaitDataCaching: true },
|
|
1340
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
1369
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
1341
1370
|
);
|
|
1342
1371
|
|
|
1343
1372
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
1344
1373
|
getRequestData(parsedRequests.nestedUnionQuery),
|
|
1345
1374
|
{ awaitDataCaching: true },
|
|
1346
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
1375
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.nestedUnionQuery })
|
|
1347
1376
|
);
|
|
1348
1377
|
});
|
|
1349
1378
|
|
|
1350
|
-
it(
|
|
1351
|
-
const { ast, ...otherProps } = analyzeQueryResult
|
|
1379
|
+
it('correct request data', () => {
|
|
1380
|
+
const { ast, ...otherProps } = analyzeQueryResult!.updated!;
|
|
1352
1381
|
expect(otherProps).toMatchSnapshot();
|
|
1353
1382
|
});
|
|
1354
1383
|
|
|
1355
|
-
it(
|
|
1384
|
+
it('no response data', () => {
|
|
1356
1385
|
expect(analyzeQueryResult?.response).toBeUndefined();
|
|
1357
1386
|
});
|
|
1358
1387
|
|
|
1359
|
-
it(
|
|
1360
|
-
expect(
|
|
1388
|
+
it('correct cache data', async () => {
|
|
1389
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
1361
1390
|
});
|
|
1362
1391
|
|
|
1363
|
-
it(
|
|
1364
|
-
// @ts-
|
|
1392
|
+
it('correct partial data', () => {
|
|
1393
|
+
// @ts-expect-error property is private
|
|
1365
1394
|
expect(cacheManager._partialQueryResponses).toMatchSnapshot();
|
|
1366
1395
|
});
|
|
1367
1396
|
});
|
|
1368
1397
|
|
|
1369
|
-
describe(
|
|
1398
|
+
describe('fragment spreads >> within fragment spreads >>', () => {
|
|
1370
1399
|
beforeAll(async () => {
|
|
1371
1400
|
analyzeQueryResult = undefined;
|
|
1372
|
-
// @ts-
|
|
1373
|
-
jest.spyOn(CacheManager,
|
|
1401
|
+
// @ts-expect-error property is private
|
|
1402
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
1374
1403
|
|
|
1375
1404
|
cacheManager = new CacheManager({
|
|
1376
|
-
cache: new
|
|
1377
|
-
name:
|
|
1405
|
+
cache: new Core({
|
|
1406
|
+
name: 'cachemap',
|
|
1378
1407
|
store: map(),
|
|
1379
|
-
type:
|
|
1408
|
+
type: 'someType',
|
|
1380
1409
|
}),
|
|
1381
1410
|
cascadeCacheControl: true,
|
|
1382
1411
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
@@ -1389,46 +1418,46 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
1389
1418
|
requestData,
|
|
1390
1419
|
responses.getSearchResultsQuery,
|
|
1391
1420
|
{ awaitDataCaching: true },
|
|
1392
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.getSearchResultsQuery, hasDeferOrStream: true })
|
|
1421
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.getSearchResultsQuery, hasDeferOrStream: true })
|
|
1393
1422
|
);
|
|
1394
1423
|
|
|
1395
1424
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
1396
1425
|
getRequestData(parsedRequests.getMoviePreviewQuery),
|
|
1397
1426
|
{ awaitDataCaching: true },
|
|
1398
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.getMoviePreviewQuery, hasDeferOrStream: true })
|
|
1427
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.getMoviePreviewQuery, hasDeferOrStream: true })
|
|
1399
1428
|
);
|
|
1400
1429
|
});
|
|
1401
1430
|
|
|
1402
|
-
it(
|
|
1403
|
-
const { ast, ...otherProps } = analyzeQueryResult
|
|
1431
|
+
it('correct request data', () => {
|
|
1432
|
+
const { ast, ...otherProps } = analyzeQueryResult!.updated!;
|
|
1404
1433
|
expect(otherProps).toMatchSnapshot();
|
|
1405
1434
|
});
|
|
1406
1435
|
|
|
1407
|
-
it(
|
|
1436
|
+
it('no response data', () => {
|
|
1408
1437
|
expect(analyzeQueryResult?.response).toBeUndefined();
|
|
1409
1438
|
});
|
|
1410
1439
|
|
|
1411
|
-
it(
|
|
1412
|
-
expect(
|
|
1440
|
+
it('correct cache data', async () => {
|
|
1441
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
1413
1442
|
});
|
|
1414
1443
|
|
|
1415
|
-
it(
|
|
1416
|
-
// @ts-
|
|
1444
|
+
it('correct partial data', () => {
|
|
1445
|
+
// @ts-expect-error property is private
|
|
1417
1446
|
expect(cacheManager._partialQueryResponses).toMatchSnapshot();
|
|
1418
1447
|
});
|
|
1419
1448
|
});
|
|
1420
1449
|
|
|
1421
|
-
describe(
|
|
1450
|
+
describe('defer >>', () => {
|
|
1422
1451
|
beforeAll(async () => {
|
|
1423
1452
|
analyzeQueryResult = undefined;
|
|
1424
|
-
// @ts-
|
|
1425
|
-
jest.spyOn(CacheManager,
|
|
1453
|
+
// @ts-expect-error property is private
|
|
1454
|
+
jest.spyOn(CacheManager, '_isValid').mockReturnValue(true);
|
|
1426
1455
|
|
|
1427
1456
|
cacheManager = new CacheManager({
|
|
1428
|
-
cache: new
|
|
1429
|
-
name:
|
|
1457
|
+
cache: new Core({
|
|
1458
|
+
name: 'cachemap',
|
|
1430
1459
|
store: map(),
|
|
1431
|
-
type:
|
|
1460
|
+
type: 'someType',
|
|
1432
1461
|
}),
|
|
1433
1462
|
cascadeCacheControl: true,
|
|
1434
1463
|
typeIDKey: DEFAULT_TYPE_ID_KEY,
|
|
@@ -1441,31 +1470,31 @@ describe("@graphql-box/cache-manager >>", () => {
|
|
|
1441
1470
|
requestData,
|
|
1442
1471
|
responses.deferQuerySet.initial,
|
|
1443
1472
|
{ awaitDataCaching: true },
|
|
1444
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true })
|
|
1473
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true })
|
|
1445
1474
|
);
|
|
1446
1475
|
|
|
1447
1476
|
analyzeQueryResult = await cacheManager.analyzeQuery(
|
|
1448
1477
|
getRequestData(parsedRequests.deferQuery),
|
|
1449
1478
|
{ awaitDataCaching: true },
|
|
1450
|
-
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true })
|
|
1479
|
+
getRequestContext({ fieldTypeMap: requestFieldTypeMaps.deferQuery, hasDeferOrStream: true })
|
|
1451
1480
|
);
|
|
1452
1481
|
});
|
|
1453
1482
|
|
|
1454
|
-
it(
|
|
1455
|
-
const { ast, ...otherProps } = analyzeQueryResult
|
|
1483
|
+
it('correct request data', () => {
|
|
1484
|
+
const { ast, ...otherProps } = analyzeQueryResult!.updated!;
|
|
1456
1485
|
expect(otherProps).toMatchSnapshot();
|
|
1457
1486
|
});
|
|
1458
1487
|
|
|
1459
|
-
it(
|
|
1488
|
+
it('no response data', () => {
|
|
1460
1489
|
expect(analyzeQueryResult?.response).toBeUndefined();
|
|
1461
1490
|
});
|
|
1462
1491
|
|
|
1463
|
-
it(
|
|
1464
|
-
expect(
|
|
1492
|
+
it('correct cache data', async () => {
|
|
1493
|
+
await expect(cacheManager.cache.export()).resolves.toMatchSnapshot();
|
|
1465
1494
|
});
|
|
1466
1495
|
|
|
1467
|
-
it(
|
|
1468
|
-
// @ts-
|
|
1496
|
+
it('correct partial data', () => {
|
|
1497
|
+
// @ts-expect-error property is private
|
|
1469
1498
|
expect(cacheManager._partialQueryResponses).toMatchSnapshot();
|
|
1470
1499
|
});
|
|
1471
1500
|
});
|