@graphitation/apollo-react-relay-duct-tape 1.0.5 → 1.0.7
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/.eslintcache +1 -1
- package/CHANGELOG.md +18 -2
- package/lib/hooks.d.ts +4 -3
- package/lib/hooks.d.ts.map +1 -1
- package/lib/hooks.js +26 -2
- package/lib/hooks.js.map +3 -3
- package/lib/hooks.mjs +26 -2
- package/lib/hooks.mjs.map +2 -2
- package/lib/types.d.ts +7 -2
- package/lib/types.d.ts.map +1 -1
- package/lib/types.js.map +1 -1
- package/package.json +1 -1
package/.eslintcache
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/__tests__/hooks.test.tsx":"1","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/__tests__/useOverridenOrDefaultApolloClient.test.tsx":"2","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/convertFetchPolicy.ts":"3","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/hooks.ts":"4","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/index.ts":"5","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/__tests__/compiledHooks.test.tsx":"6","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/__tests__/fragmentReferencesFieldPolicy.test.ts":"7","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/__tests__/nodeFromCacheFieldPolicy.test.ts":"8","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/index.ts":"9","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/types.ts":"10","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledFragment.ts":"11","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledLazyLoadQuery.ts":"12","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledPaginationFragment.ts":"13","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledRefetchableFragment.ts":"14","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useDeepCompareMemoize.ts":"15","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useForceUpdate.ts":"16","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/fragmentReferencesFieldPolicy.ts":"17","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/index.ts":"18","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/nodeFromCacheFieldPolicy.ts":"19","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/shallowCompareFragmentReferences.ts":"20","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/typePolicies.ts":"21","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/types.ts":"22","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/useOverridenOrDefaultApolloClient.ts":"23"},{"size":10715,"mtime":1687263583503,"results":"24","hashOfConfig":"25"},{"size":1917,"mtime":1687263583503,"results":"26","hashOfConfig":"25"},{"size":690,"mtime":1687263583503,"results":"27","hashOfConfig":"25"},{"size":10134,"mtime":1687263583503,"results":"28","hashOfConfig":"25"},{"size":174,"mtime":1687263583503,"results":"29","hashOfConfig":"25"},{"size":33757,"mtime":1687263583503,"results":"30","hashOfConfig":"25"},{"size":1839,"mtime":1687263583503,"results":"31","hashOfConfig":"25"},{"size":3041,"mtime":1687263583503,"results":"32","hashOfConfig":"25"},{"size":445,"mtime":1687263583503,"results":"33","hashOfConfig":"25"},{"size":575,"mtime":1687263583503,"results":"34","hashOfConfig":"25"},{"size":2426,"mtime":1687263583503,"results":"35","hashOfConfig":"25"},{"size":3662,"mtime":1687263583503,"results":"36","hashOfConfig":"25"},{"size":9254,"mtime":1687263583503,"results":"37","hashOfConfig":"25"},{"size":5414,"mtime":1687263583503,"results":"38","hashOfConfig":"25"},{"size":843,"mtime":1687263583503,"results":"39","hashOfConfig":"25"},{"size":152,"mtime":1687263583503,"results":"40","hashOfConfig":"25"},{"size":286,"mtime":1687263583503,"results":"41","hashOfConfig":"25"},{"size":342,"mtime":1687263583503,"results":"42","hashOfConfig":"25"},{"size":2829,"mtime":1687263583503,"results":"43","hashOfConfig":"25"},{"size":2163,"mtime":1687263583503,"results":"44","hashOfConfig":"25"},{"size":1110,"mtime":1687263583503,"results":"45","hashOfConfig":"25"},{"size":1889,"mtime":1687263583503,"results":"46","hashOfConfig":"25"},{"size":1314,"mtime":1687263583503,"results":"47","hashOfConfig":"25"},{"filePath":"48","messages":"49","suppressedMessages":"50","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"pac3w",{"filePath":"51","messages":"52","suppressedMessages":"53","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"54","messages":"55","suppressedMessages":"56","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"57","messages":"58","suppressedMessages":"59","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"60","messages":"61","suppressedMessages":"62","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"63","messages":"64","suppressedMessages":"65","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"66","messages":"67","suppressedMessages":"68","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"69","messages":"70","suppressedMessages":"71","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"72","messages":"73","suppressedMessages":"74","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"75","messages":"76","suppressedMessages":"77","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"78","messages":"79","suppressedMessages":"80","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"81","messages":"82","suppressedMessages":"83","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"84","messages":"85","suppressedMessages":"86","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"87","messages":"88","suppressedMessages":"89","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"90","messages":"91","suppressedMessages":"92","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"93","messages":"94","suppressedMessages":"95","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"96","messages":"97","suppressedMessages":"98","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"99","messages":"100","suppressedMessages":"101","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"102","messages":"103","suppressedMessages":"104","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"105","messages":"106","suppressedMessages":"107","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"108","messages":"109","suppressedMessages":"110","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"111","messages":"112","suppressedMessages":"113","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"114","messages":"115","suppressedMessages":"116","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/__tests__/hooks.test.tsx",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/__tests__/useOverridenOrDefaultApolloClient.test.tsx",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/convertFetchPolicy.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/hooks.ts",[],["117"],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/index.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/__tests__/compiledHooks.test.tsx",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/__tests__/fragmentReferencesFieldPolicy.test.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/__tests__/nodeFromCacheFieldPolicy.test.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/index.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/types.ts",[],["118"],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledFragment.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledLazyLoadQuery.ts",[],["119"],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledPaginationFragment.ts",[],["120","121","122","123","124"],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledRefetchableFragment.ts",[],["125"],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useDeepCompareMemoize.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useForceUpdate.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/fragmentReferencesFieldPolicy.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/index.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/nodeFromCacheFieldPolicy.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/shallowCompareFragmentReferences.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/typePolicies.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/types.ts",[],["126","127"],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/useOverridenOrDefaultApolloClient.ts",[],["128"],{"ruleId":"129","severity":1,"message":"130","line":249,"column":38,"nodeType":"131","messageId":"132","endLine":249,"endColumn":41,"suggestions":"133","suppressions":"134"},{"ruleId":"129","severity":1,"message":"130","line":16,"column":32,"nodeType":"131","messageId":"132","endLine":16,"endColumn":35,"suggestions":"135","suppressions":"136"},{"ruleId":"129","severity":1,"message":"130","line":87,"column":28,"nodeType":"131","messageId":"132","endLine":87,"endColumn":31,"suggestions":"137","suppressions":"138"},{"ruleId":"129","severity":1,"message":"130","line":163,"column":24,"nodeType":"131","messageId":"132","endLine":163,"endColumn":27,"suggestions":"139","suppressions":"140"},{"ruleId":"129","severity":1,"message":"130","line":166,"column":4,"nodeType":"131","messageId":"132","endLine":166,"endColumn":7,"suggestions":"141","suppressions":"142"},{"ruleId":"129","severity":1,"message":"130","line":168,"column":30,"nodeType":"131","messageId":"132","endLine":168,"endColumn":33,"suggestions":"143","suppressions":"144"},{"ruleId":"129","severity":1,"message":"130","line":178,"column":24,"nodeType":"131","messageId":"132","endLine":178,"endColumn":27,"suggestions":"145","suppressions":"146"},{"ruleId":"129","severity":1,"message":"130","line":214,"column":9,"nodeType":"131","messageId":"132","endLine":214,"endColumn":12,"suggestions":"147","suppressions":"148"},{"ruleId":"129","severity":1,"message":"130","line":38,"column":26,"nodeType":"131","messageId":"132","endLine":38,"endColumn":29,"suggestions":"149","suppressions":"150"},{"ruleId":"129","severity":1,"message":"130","line":5,"column":19,"nodeType":"131","messageId":"132","endLine":5,"endColumn":22,"suggestions":"151","suppressions":"152"},{"ruleId":"129","severity":1,"message":"130","line":10,"column":19,"nodeType":"131","messageId":"132","endLine":10,"endColumn":22,"suggestions":"153","suppressions":"154"},{"ruleId":"129","severity":1,"message":"130","line":17,"column":51,"nodeType":"131","messageId":"132","endLine":17,"endColumn":54,"suggestions":"155","suppressions":"156"},"@typescript-eslint/no-explicit-any","Unexpected any. Specify a different type.","TSAnyKeyword","unexpectedAny",["157","158"],["159"],["160","161"],["162"],["163","164"],["165"],["166","167"],["168"],["169","170"],["171"],["172","173"],["174"],["175","176"],["177"],["178","179"],["180"],["181","182"],["183"],["184","185"],["186"],["187","188"],["189"],["190","191"],["192"],{"messageId":"193","fix":"194","desc":"195"},{"messageId":"196","fix":"197","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"201","desc":"195"},{"messageId":"196","fix":"202","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"203","desc":"195"},{"messageId":"196","fix":"204","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"205","desc":"195"},{"messageId":"196","fix":"206","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"207","desc":"195"},{"messageId":"196","fix":"208","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"209","desc":"195"},{"messageId":"196","fix":"210","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"211","desc":"195"},{"messageId":"196","fix":"212","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"213","desc":"195"},{"messageId":"196","fix":"214","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"215","desc":"195"},{"messageId":"196","fix":"216","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"217","desc":"195"},{"messageId":"196","fix":"218","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"219","desc":"195"},{"messageId":"196","fix":"220","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"221","desc":"195"},{"messageId":"196","fix":"222","desc":"198"},{"kind":"199","justification":"200"},"suggestUnknown",{"range":"223","text":"224"},"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct.","suggestNever",{"range":"223","text":"225"},"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of.","directive","",{"range":"226","text":"224"},{"range":"226","text":"225"},{"range":"227","text":"224"},{"range":"227","text":"225"},{"range":"228","text":"224"},{"range":"228","text":"225"},{"range":"229","text":"224"},{"range":"229","text":"225"},{"range":"230","text":"224"},{"range":"230","text":"225"},{"range":"231","text":"224"},{"range":"231","text":"225"},{"range":"232","text":"224"},{"range":"232","text":"225"},{"range":"233","text":"224"},{"range":"233","text":"225"},{"range":"234","text":"224"},{"range":"234","text":"225"},{"range":"235","text":"224"},{"range":"235","text":"225"},{"range":"236","text":"224"},{"range":"236","text":"225"},[9584,9587],"unknown","never",[567,570],[2626,2629],[5394,5397],[5495,5498],[5595,5598],[5884,5887],[6948,6951],[1283,1286],[158,161],[276,279],[455,458]]
|
|
1
|
+
[{"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/__tests__/hooks.test.tsx":"1","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/__tests__/useOverridenOrDefaultApolloClient.test.tsx":"2","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/convertFetchPolicy.ts":"3","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/hooks.ts":"4","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/index.ts":"5","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/__tests__/compiledHooks.test.tsx":"6","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/__tests__/fragmentReferencesFieldPolicy.test.ts":"7","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/__tests__/nodeFromCacheFieldPolicy.test.ts":"8","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/index.ts":"9","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/types.ts":"10","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledFragment.ts":"11","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledLazyLoadQuery.ts":"12","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledPaginationFragment.ts":"13","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledRefetchableFragment.ts":"14","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useDeepCompareMemoize.ts":"15","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useForceUpdate.ts":"16","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/fragmentReferencesFieldPolicy.ts":"17","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/index.ts":"18","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/nodeFromCacheFieldPolicy.ts":"19","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/shallowCompareFragmentReferences.ts":"20","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/typePolicies.ts":"21","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/types.ts":"22","/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/useOverridenOrDefaultApolloClient.ts":"23"},{"size":11195,"mtime":1689212356892,"results":"24","hashOfConfig":"25"},{"size":1917,"mtime":1689212356892,"results":"26","hashOfConfig":"25"},{"size":690,"mtime":1689212356892,"results":"27","hashOfConfig":"25"},{"size":11338,"mtime":1689212356892,"results":"28","hashOfConfig":"25"},{"size":174,"mtime":1689212356892,"results":"29","hashOfConfig":"25"},{"size":33757,"mtime":1689212356896,"results":"30","hashOfConfig":"25"},{"size":1839,"mtime":1689212356896,"results":"31","hashOfConfig":"25"},{"size":3041,"mtime":1689212356896,"results":"32","hashOfConfig":"25"},{"size":445,"mtime":1689212356896,"results":"33","hashOfConfig":"25"},{"size":575,"mtime":1689212356896,"results":"34","hashOfConfig":"25"},{"size":2426,"mtime":1689212356896,"results":"35","hashOfConfig":"25"},{"size":3662,"mtime":1689212356896,"results":"36","hashOfConfig":"25"},{"size":9254,"mtime":1689212356896,"results":"37","hashOfConfig":"25"},{"size":5414,"mtime":1689212356896,"results":"38","hashOfConfig":"25"},{"size":843,"mtime":1689212356896,"results":"39","hashOfConfig":"25"},{"size":152,"mtime":1689212356896,"results":"40","hashOfConfig":"25"},{"size":286,"mtime":1689212356896,"results":"41","hashOfConfig":"25"},{"size":342,"mtime":1689212356896,"results":"42","hashOfConfig":"25"},{"size":2829,"mtime":1689212356896,"results":"43","hashOfConfig":"25"},{"size":2163,"mtime":1689212356896,"results":"44","hashOfConfig":"25"},{"size":1110,"mtime":1689212356896,"results":"45","hashOfConfig":"25"},{"size":2058,"mtime":1689212356896,"results":"46","hashOfConfig":"25"},{"size":1314,"mtime":1689212356896,"results":"47","hashOfConfig":"25"},{"filePath":"48","messages":"49","suppressedMessages":"50","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"m9c228",{"filePath":"51","messages":"52","suppressedMessages":"53","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"54","messages":"55","suppressedMessages":"56","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"57","messages":"58","suppressedMessages":"59","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"60","messages":"61","suppressedMessages":"62","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"63","messages":"64","suppressedMessages":"65","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"66","messages":"67","suppressedMessages":"68","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"69","messages":"70","suppressedMessages":"71","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"72","messages":"73","suppressedMessages":"74","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"75","messages":"76","suppressedMessages":"77","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"78","messages":"79","suppressedMessages":"80","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"81","messages":"82","suppressedMessages":"83","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"84","messages":"85","suppressedMessages":"86","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"87","messages":"88","suppressedMessages":"89","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"90","messages":"91","suppressedMessages":"92","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"93","messages":"94","suppressedMessages":"95","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"96","messages":"97","suppressedMessages":"98","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"99","messages":"100","suppressedMessages":"101","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"102","messages":"103","suppressedMessages":"104","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"105","messages":"106","suppressedMessages":"107","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"108","messages":"109","suppressedMessages":"110","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"111","messages":"112","suppressedMessages":"113","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"114","messages":"115","suppressedMessages":"116","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/__tests__/hooks.test.tsx",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/__tests__/useOverridenOrDefaultApolloClient.test.tsx",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/convertFetchPolicy.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/hooks.ts",[],["117"],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/index.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/__tests__/compiledHooks.test.tsx",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/__tests__/fragmentReferencesFieldPolicy.test.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/__tests__/nodeFromCacheFieldPolicy.test.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/index.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/types.ts",[],["118"],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledFragment.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledLazyLoadQuery.ts",[],["119"],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledPaginationFragment.ts",[],["120","121","122","123","124"],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useCompiledRefetchableFragment.ts",[],["125"],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useDeepCompareMemoize.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/compiledHooks/useForceUpdate.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/fragmentReferencesFieldPolicy.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/index.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/nodeFromCacheFieldPolicy.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/shallowCompareFragmentReferences.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/storeObservation/typePolicies.ts",[],[],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/types.ts",[],["126","127"],"/mnt/vss/_work/1/s/packages/apollo-react-relay-duct-tape/src/useOverridenOrDefaultApolloClient.ts",[],["128"],{"ruleId":"129","severity":1,"message":"130","line":287,"column":38,"nodeType":"131","messageId":"132","endLine":287,"endColumn":41,"suggestions":"133","suppressions":"134"},{"ruleId":"129","severity":1,"message":"130","line":16,"column":32,"nodeType":"131","messageId":"132","endLine":16,"endColumn":35,"suggestions":"135","suppressions":"136"},{"ruleId":"129","severity":1,"message":"130","line":87,"column":28,"nodeType":"131","messageId":"132","endLine":87,"endColumn":31,"suggestions":"137","suppressions":"138"},{"ruleId":"129","severity":1,"message":"130","line":163,"column":24,"nodeType":"131","messageId":"132","endLine":163,"endColumn":27,"suggestions":"139","suppressions":"140"},{"ruleId":"129","severity":1,"message":"130","line":166,"column":4,"nodeType":"131","messageId":"132","endLine":166,"endColumn":7,"suggestions":"141","suppressions":"142"},{"ruleId":"129","severity":1,"message":"130","line":168,"column":30,"nodeType":"131","messageId":"132","endLine":168,"endColumn":33,"suggestions":"143","suppressions":"144"},{"ruleId":"129","severity":1,"message":"130","line":178,"column":24,"nodeType":"131","messageId":"132","endLine":178,"endColumn":27,"suggestions":"145","suppressions":"146"},{"ruleId":"129","severity":1,"message":"130","line":214,"column":9,"nodeType":"131","messageId":"132","endLine":214,"endColumn":12,"suggestions":"147","suppressions":"148"},{"ruleId":"129","severity":1,"message":"130","line":38,"column":26,"nodeType":"131","messageId":"132","endLine":38,"endColumn":29,"suggestions":"149","suppressions":"150"},{"ruleId":"129","severity":1,"message":"130","line":5,"column":19,"nodeType":"131","messageId":"132","endLine":5,"endColumn":22,"suggestions":"151","suppressions":"152"},{"ruleId":"129","severity":1,"message":"130","line":10,"column":19,"nodeType":"131","messageId":"132","endLine":10,"endColumn":22,"suggestions":"153","suppressions":"154"},{"ruleId":"129","severity":1,"message":"130","line":17,"column":51,"nodeType":"131","messageId":"132","endLine":17,"endColumn":54,"suggestions":"155","suppressions":"156"},"@typescript-eslint/no-explicit-any","Unexpected any. Specify a different type.","TSAnyKeyword","unexpectedAny",["157","158"],["159"],["160","161"],["162"],["163","164"],["165"],["166","167"],["168"],["169","170"],["171"],["172","173"],["174"],["175","176"],["177"],["178","179"],["180"],["181","182"],["183"],["184","185"],["186"],["187","188"],["189"],["190","191"],["192"],{"messageId":"193","fix":"194","desc":"195"},{"messageId":"196","fix":"197","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"201","desc":"195"},{"messageId":"196","fix":"202","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"203","desc":"195"},{"messageId":"196","fix":"204","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"205","desc":"195"},{"messageId":"196","fix":"206","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"207","desc":"195"},{"messageId":"196","fix":"208","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"209","desc":"195"},{"messageId":"196","fix":"210","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"211","desc":"195"},{"messageId":"196","fix":"212","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"213","desc":"195"},{"messageId":"196","fix":"214","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"215","desc":"195"},{"messageId":"196","fix":"216","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"217","desc":"195"},{"messageId":"196","fix":"218","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"219","desc":"195"},{"messageId":"196","fix":"220","desc":"198"},{"kind":"199","justification":"200"},{"messageId":"193","fix":"221","desc":"195"},{"messageId":"196","fix":"222","desc":"198"},{"kind":"199","justification":"200"},"suggestUnknown",{"range":"223","text":"224"},"Use `unknown` instead, this will force you to explicitly, and safely assert the type is correct.","suggestNever",{"range":"223","text":"225"},"Use `never` instead, this is useful when instantiating generic type parameters that you don't need to know the type of.","directive","",{"range":"226","text":"224"},{"range":"226","text":"225"},{"range":"227","text":"224"},{"range":"227","text":"225"},{"range":"228","text":"224"},{"range":"228","text":"225"},{"range":"229","text":"224"},{"range":"229","text":"225"},{"range":"230","text":"224"},{"range":"230","text":"225"},{"range":"231","text":"224"},{"range":"231","text":"225"},{"range":"232","text":"224"},{"range":"232","text":"225"},{"range":"233","text":"224"},{"range":"233","text":"225"},{"range":"234","text":"224"},{"range":"234","text":"225"},{"range":"235","text":"224"},{"range":"235","text":"225"},{"range":"236","text":"224"},{"range":"236","text":"225"},[10788,10791],"unknown","never",[567,570],[2626,2629],[5394,5397],[5495,5498],[5595,5598],[5884,5887],[6948,6951],[1283,1286],[158,161],[276,279],[455,458]]
|
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,28 @@
|
|
|
1
1
|
# Change Log - @graphitation/apollo-react-relay-duct-tape
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Thu, 13 Jul 2023 01:43:30 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## 1.0.7
|
|
8
|
+
|
|
9
|
+
Thu, 13 Jul 2023 01:43:30 GMT
|
|
10
|
+
|
|
11
|
+
### Patches
|
|
12
|
+
|
|
13
|
+
- [duct-tape] Fix order of useFragment overloads to properly support variations (eloy.de.enige@gmail.com)
|
|
14
|
+
|
|
15
|
+
## 1.0.6
|
|
16
|
+
|
|
17
|
+
Tue, 11 Jul 2023 23:53:57 GMT
|
|
18
|
+
|
|
19
|
+
### Patches
|
|
20
|
+
|
|
21
|
+
- Allow for smoother migration path (eloy.de.enige@gmail.com)
|
|
22
|
+
|
|
7
23
|
## 1.0.5
|
|
8
24
|
|
|
9
|
-
Tue, 20 Jun 2023 12:24:
|
|
25
|
+
Tue, 20 Jun 2023 12:24:10 GMT
|
|
10
26
|
|
|
11
27
|
### Patches
|
|
12
28
|
|
package/lib/hooks.d.ts
CHANGED
|
@@ -34,9 +34,8 @@ export declare function useLazyLoadQuery<TQuery extends OperationType>(query: Gr
|
|
|
34
34
|
*
|
|
35
35
|
* @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-fragment}
|
|
36
36
|
*
|
|
37
|
-
* @note For
|
|
38
|
-
*
|
|
39
|
-
* allow us to also move the usage of the graphql tagged template function inline at the `useFragment` call-site.
|
|
37
|
+
* @note For migration purposes, this hook supports the notion that the fragment reference can be undefined. This is
|
|
38
|
+
* to support cases where useFragment is used in a tree that is conditionally using fragments.
|
|
40
39
|
*
|
|
41
40
|
* @param fragmentInput The GraphQL fragment document created using the `graphql` tagged template function.
|
|
42
41
|
* @param fragmentRef The opaque fragment reference passed in by a parent component that has spread in this component's
|
|
@@ -44,6 +43,8 @@ export declare function useLazyLoadQuery<TQuery extends OperationType>(query: Gr
|
|
|
44
43
|
* @returns The data corresponding to the field selections.
|
|
45
44
|
*/
|
|
46
45
|
export declare function useFragment<TKey extends KeyType>(fragmentInput: GraphQLTaggedNode, fragmentRef: TKey): KeyTypeData<TKey>;
|
|
46
|
+
export declare function useFragment(fragmentInput: GraphQLTaggedNode, fragmentRef: undefined): undefined;
|
|
47
|
+
export declare function useFragment<TKey extends KeyType>(fragmentInput: GraphQLTaggedNode, fragmentRef: TKey | undefined): KeyTypeData<TKey> | undefined;
|
|
47
48
|
/**
|
|
48
49
|
* Equivalent to `useFragment`, but allows refetching of its subtree of the overall query.
|
|
49
50
|
*
|
package/lib/hooks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"AAWA,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,OAAO,EACP,WAAW,EACX,aAAa,EACd,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,SAAS,EACT,YAAY,EAKb,MAAM,kCAAkC,CAAC;AAM1C;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,SAAS,aAAa,EAC3D,KAAK,EAAE,iBAAiB,EACxB,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC,EAC9B,OAAO,CAAC,EAAE;IAAE,WAAW,CAAC,EAAE,WAAW,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAA;CAAE,GACnE;IAAE,KAAK,CAAC,EAAE,KAAK,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../src/hooks.ts"],"names":[],"mappings":"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"}
|
package/lib/hooks.js
CHANGED
|
@@ -79,6 +79,10 @@ var import_compiledHooks = require("./storeObservation/compiledHooks");
|
|
|
79
79
|
var import_convertFetchPolicy = require("./convertFetchPolicy");
|
|
80
80
|
var import_useOverridenOrDefaultApolloClient = require("./useOverridenOrDefaultApolloClient");
|
|
81
81
|
function useLazyLoadQuery(query, variables, options) {
|
|
82
|
+
(0, import_invariant.default)(
|
|
83
|
+
(query == null ? void 0 : query.__brand) === void 0,
|
|
84
|
+
"useLazyLoadQuery: query must be a valid runtime type."
|
|
85
|
+
);
|
|
82
86
|
const apolloOptions = options && __spreadProps(__spreadValues({}, options), {
|
|
83
87
|
fetchPolicy: (0, import_convertFetchPolicy.convertFetchPolicy)(options.fetchPolicy)
|
|
84
88
|
});
|
|
@@ -88,17 +92,33 @@ function useLazyLoadQuery(query, variables, options) {
|
|
|
88
92
|
}, apolloOptions));
|
|
89
93
|
} else {
|
|
90
94
|
const client = (0, import_useOverridenOrDefaultApolloClient.useOverridenOrDefaultApolloClient)();
|
|
91
|
-
return (0, import_client.useQuery)(
|
|
95
|
+
return (0, import_client.useQuery)(
|
|
96
|
+
// Compiled documents without narrow observables should be treated like
|
|
97
|
+
// normal queries.
|
|
98
|
+
query.executionQueryDocument || query,
|
|
99
|
+
__spreadValues({
|
|
100
|
+
client,
|
|
101
|
+
variables
|
|
102
|
+
}, apolloOptions)
|
|
103
|
+
);
|
|
92
104
|
}
|
|
93
105
|
}
|
|
94
106
|
function useFragment(fragmentInput, fragmentRef) {
|
|
95
|
-
|
|
107
|
+
(0, import_invariant.default)(
|
|
108
|
+
(fragmentInput == null ? void 0 : fragmentInput.__brand) === void 0,
|
|
109
|
+
"useFragment: fragmentInput must be a valid runtime type."
|
|
110
|
+
);
|
|
111
|
+
if (fragmentInput && fragmentInput.watchQueryDocument) {
|
|
96
112
|
return (0, import_compiledHooks.useCompiledFragment)(fragmentInput, fragmentRef);
|
|
97
113
|
} else {
|
|
98
114
|
return fragmentRef;
|
|
99
115
|
}
|
|
100
116
|
}
|
|
101
117
|
function useRefetchableFragment(fragmentInput, fragmentRef) {
|
|
118
|
+
(0, import_invariant.default)(
|
|
119
|
+
fragmentInput && fragmentInput.__brand === void 0,
|
|
120
|
+
"useRefetchableFragment: fragmentInput must be a valid runtime type."
|
|
121
|
+
);
|
|
102
122
|
(0, import_invariant.default)(
|
|
103
123
|
!!fragmentInput.watchQueryDocument,
|
|
104
124
|
"useRefetchableFragment is only supported at this time when using compilation"
|
|
@@ -109,6 +129,10 @@ function useRefetchableFragment(fragmentInput, fragmentRef) {
|
|
|
109
129
|
);
|
|
110
130
|
}
|
|
111
131
|
function usePaginationFragment(fragmentInput, fragmentRef) {
|
|
132
|
+
(0, import_invariant.default)(
|
|
133
|
+
fragmentInput && fragmentInput.__brand === void 0,
|
|
134
|
+
"usePaginationFragment: fragmentInput must be a valid runtime type."
|
|
135
|
+
);
|
|
112
136
|
(0, import_invariant.default)(
|
|
113
137
|
!!fragmentInput.watchQueryDocument,
|
|
114
138
|
"usePaginationFragment is only supported at this time when using compilation"
|
package/lib/hooks.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/hooks.ts"],
|
|
4
|
-
"sourcesContent": ["import { DocumentNode } from \"graphql\";\nimport invariant from \"invariant\";\nimport {\n useSubscription as useApolloSubscription,\n useQuery as useApolloQuery,\n useMutation as useApolloMutation,\n SubscriptionHookOptions as ApolloSubscriptionHookOptions,\n ErrorPolicy as ApolloErrorPolicy,\n ApolloClient,\n} from \"@apollo/client\";\n\nimport {\n FetchPolicy,\n GraphQLTaggedNode,\n KeyType,\n KeyTypeData,\n OperationType,\n} from \"./types\";\nimport {\n RefetchFn,\n PaginationFn,\n useCompiledLazyLoadQuery,\n useCompiledFragment,\n useCompiledRefetchableFragment,\n useCompiledPaginationFragment,\n} from \"./storeObservation/compiledHooks\";\nimport { convertFetchPolicy } from \"./convertFetchPolicy\";\nimport { useOverridenOrDefaultApolloClient } from \"./useOverridenOrDefaultApolloClient\";\nimport type { CompiledArtefactModule } from \"@graphitation/apollo-react-relay-duct-tape-compiler\";\nimport { FragmentReference } from \"./storeObservation/compiledHooks/types\";\n\n/**\n * Executes a GraphQL query.\n *\n * This hook is called 'lazy' as it is used to fetch a GraphQL query _during_ render. This hook can trigger multiple\n * round trips, one for loading and one for resolving.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-lazy-load-query}\n *\n * @param query The query operation to perform.\n * @param variables Object containing the variable values to fetch the query. These variables need to match GraphQL\n * variables declared inside the query.\n * @param options Options passed on to the underlying implementation.\n * @param options.context The query context to pass along the apollo link chain. Should be avoided when possible as\n * it will not be compatible with Relay APIs.\n * @returns An object with either an error, the result data, or neither while loading.\n */\nexport function useLazyLoadQuery<TQuery extends OperationType>(\n query: GraphQLTaggedNode,\n variables: TQuery[\"variables\"],\n options?: { fetchPolicy?: FetchPolicy; context?: TQuery[\"context\"] },\n): { error?: Error; data?: TQuery[\"response\"] } {\n const apolloOptions = options && {\n ...options,\n fetchPolicy: convertFetchPolicy(options.fetchPolicy),\n };\n if (query.watchQueryDocument) {\n return useCompiledLazyLoadQuery(query as CompiledArtefactModule, {\n variables,\n ...apolloOptions,\n });\n } else {\n const client = useOverridenOrDefaultApolloClient();\n return useApolloQuery(query, { client, variables, ...apolloOptions });\n }\n}\n\n/**\n * A first-class way for an individual component to express its direct data requirements using GraphQL. The fragment\n * should select all the fields that the component directly uses in its rendering or needs to pass to external\n * functions. It should *not* select data that its children need, unless those children are intended to remain their\n * pure React props as data inputs.\n *\n * For children that *do* have their own data requirements expressed using GraphQL, the fragment should ensure to\n * spread in the child's fragment.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-fragment}\n *\n * @note For now, the fragment objects should be exported such that parent's can interpolate them into their own\n * GraphQL documents. This may change in the future when/if we entirely switch to static compilation and will\n * allow us to also move the usage of the graphql tagged template function inline at the `useFragment` call-site.\n *\n * @param fragmentInput The GraphQL fragment document created using the `graphql` tagged template function.\n * @param fragmentRef The opaque fragment reference passed in by a parent component that has spread in this component's\n * fragment.\n * @returns The data corresponding to the field selections.\n */\nexport function useFragment<TKey extends KeyType>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey,\n): KeyTypeData<TKey> {\n if (fragmentInput.watchQueryDocument) {\n return useCompiledFragment(fragmentInput, fragmentRef as FragmentReference);\n } else {\n return fragmentRef as unknown;\n }\n}\n\n/**\n * Equivalent to `useFragment`, but allows refetching of its subtree of the overall query.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-refetchable-fragment}\n *\n * @param fragmentInput The GraphQL fragment document created using the `graphql` tagged template function.\n * @param fragmentRef The opaque fragment reference passed in by a parent component that has spread in this component's\n * fragment.\n * @returns The data corresponding to the field selections and a function to perform the refetch.\n */\nexport function useRefetchableFragment<\n TQuery extends OperationType,\n TKey extends KeyType,\n>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey,\n): [data: KeyTypeData<TKey>, refetch: RefetchFn<TQuery[\"variables\"]>] {\n invariant(\n !!fragmentInput.watchQueryDocument,\n \"useRefetchableFragment is only supported at this time when using compilation\",\n );\n return useCompiledRefetchableFragment(\n fragmentInput as CompiledArtefactModule,\n fragmentRef as FragmentReference,\n );\n}\n\n/**\n * Equivalent to `useFragment`, but allows pagination of its subtree of the overall query.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-pagination-fragment}\n *\n * @param fragmentInput The GraphQL fragment document created using the `graphql` tagged template function.\n * @param fragmentRef The opaque fragment reference passed in by a parent component that has spread in this component's\n * fragment.\n * @returns The data corresponding to the field selections and functions to deal with pagination.\n */\nexport function usePaginationFragment<\n TQuery extends OperationType,\n TKey extends KeyType,\n>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey,\n): {\n data: KeyTypeData<TKey>;\n loadNext: PaginationFn;\n loadPrevious: PaginationFn;\n hasNext: boolean;\n hasPrevious: boolean;\n isLoadingNext: boolean;\n isLoadingPrevious: boolean;\n refetch: RefetchFn<TQuery[\"variables\"]>;\n} {\n invariant(\n !!fragmentInput.watchQueryDocument,\n \"usePaginationFragment is only supported at this time when using compilation\",\n );\n return useCompiledPaginationFragment(\n fragmentInput as CompiledArtefactModule,\n fragmentRef as FragmentReference,\n );\n}\n\n// https://github.com/facebook/relay/blob/master/website/docs/api-reference/types/GraphQLSubscriptionConfig.md\ninterface GraphQLSubscriptionConfig<\n TSubscriptionPayload extends OperationType,\n> {\n subscription: GraphQLTaggedNode;\n variables: TSubscriptionPayload[\"variables\"];\n /**\n * Should be avoided when possible as it will not be compatible with Relay APIs.\n */\n context?: TSubscriptionPayload[\"context\"];\n /**\n * Should response be nullable?\n */\n onNext?: (response: TSubscriptionPayload[\"response\"]) => void;\n onError?: (error: Error) => void;\n}\n\n/**\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-subscription}\n *\n * @param config\n */\nexport function useSubscription<TSubscriptionPayload extends OperationType>(\n config: GraphQLSubscriptionConfig<TSubscriptionPayload>,\n): void {\n const client = useOverridenOrDefaultApolloClient();\n const { error } = useApolloSubscription(\n // TODO: Right now we don't replace mutation documents with imported artefacts.\n config.subscription as DocumentNode,\n {\n client,\n variables: config.variables,\n context: config.context,\n onSubscriptionData: ({ subscriptionData }) => {\n // Supposedly this never gets triggered for an error by design:\n // https://github.com/apollographql/react-apollo/issues/3177#issuecomment-506758144\n invariant(\n !subscriptionData.error,\n \"Did not expect to receive an error here\",\n );\n if (subscriptionData.data && config.onNext) {\n config.onNext(subscriptionData.data);\n }\n },\n errorPolicy: \"ignore\",\n } as ApolloSubscriptionHookOptions & {\n errorPolicy: ApolloErrorPolicy;\n },\n );\n if (error) {\n if (config.onError) {\n config.onError(error);\n } else {\n console.warn(\n `An unhandled GraphQL subscription error occurred: ${error.message}`,\n );\n }\n }\n}\n\ninterface IMutationCommitterOptions<TMutationPayload extends OperationType> {\n variables: TMutationPayload[\"variables\"];\n /**\n * Should be avoided when possible as it will not be compatible with Relay APIs.\n */\n context?: TMutationPayload[\"context\"];\n optimisticResponse?: Partial<TMutationPayload[\"response\"]> | null;\n}\n\ntype MutationCommiter<TMutationPayload extends OperationType> = (\n options: IMutationCommitterOptions<TMutationPayload>,\n) => Promise<{ errors?: Error[]; data?: TMutationPayload[\"response\"] }>;\n\n/**\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-mutation}\n *\n * @param mutation\n * @returns\n */\nexport function useMutation<TMutationPayload extends OperationType>(\n mutation: GraphQLTaggedNode,\n): [MutationCommiter<TMutationPayload>, boolean] {\n const client = useOverridenOrDefaultApolloClient();\n const [apolloUpdater, { loading: mutationLoading }] = useApolloMutation(\n // TODO: Right now we don't replace mutation documents with imported artefacts.\n mutation as DocumentNode,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n { client: client as ApolloClient<any> },\n );\n\n return [\n async (options: IMutationCommitterOptions<TMutationPayload>) => {\n const apolloResult = await apolloUpdater({\n variables: options.variables || {},\n context: options.context,\n optimisticResponse: options.optimisticResponse,\n });\n if (apolloResult.errors) {\n return {\n errors: Array.from(Object.values(apolloResult.errors)),\n data: apolloResult.data,\n };\n }\n return {\n data: apolloResult.data,\n };\n },\n mutationLoading,\n ];\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,uBAAsB;AACtB,oBAOO;AASP,2BAOO;AACP,gCAAmC;AACnC,+CAAkD;AAoB3C,SAAS,iBACd,OACA,WACA,SAC8C;AAC9C,QAAM,gBAAgB,WAAW,iCAC5B,UAD4B;AAAA,IAE/B,iBAAa,8CAAmB,QAAQ,WAAW;AAAA,EACrD;AACA,MAAI,MAAM,oBAAoB;AAC5B,eAAO,+CAAyB,OAAiC;AAAA,MAC/D;AAAA,OACG,cACJ;AAAA,EACH,OAAO;AACL,UAAM,aAAS,4EAAkC;AACjD,eAAO,
|
|
6
|
-
"names": ["
|
|
4
|
+
"sourcesContent": ["import { DocumentNode } from \"graphql\";\nimport invariant from \"invariant\";\nimport {\n useSubscription as useApolloSubscription,\n useQuery as useApolloQuery,\n useMutation as useApolloMutation,\n SubscriptionHookOptions as ApolloSubscriptionHookOptions,\n ErrorPolicy as ApolloErrorPolicy,\n ApolloClient,\n} from \"@apollo/client\";\n\nimport {\n FetchPolicy,\n GraphQLTaggedNode,\n KeyType,\n KeyTypeData,\n OperationType,\n} from \"./types\";\nimport {\n RefetchFn,\n PaginationFn,\n useCompiledLazyLoadQuery,\n useCompiledFragment,\n useCompiledRefetchableFragment,\n useCompiledPaginationFragment,\n} from \"./storeObservation/compiledHooks\";\nimport { convertFetchPolicy } from \"./convertFetchPolicy\";\nimport { useOverridenOrDefaultApolloClient } from \"./useOverridenOrDefaultApolloClient\";\nimport type { CompiledArtefactModule } from \"@graphitation/apollo-react-relay-duct-tape-compiler\";\nimport { FragmentReference } from \"./storeObservation/compiledHooks/types\";\n\n/**\n * Executes a GraphQL query.\n *\n * This hook is called 'lazy' as it is used to fetch a GraphQL query _during_ render. This hook can trigger multiple\n * round trips, one for loading and one for resolving.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-lazy-load-query}\n *\n * @param query The query operation to perform.\n * @param variables Object containing the variable values to fetch the query. These variables need to match GraphQL\n * variables declared inside the query.\n * @param options Options passed on to the underlying implementation.\n * @param options.context The query context to pass along the apollo link chain. Should be avoided when possible as\n * it will not be compatible with Relay APIs.\n * @returns An object with either an error, the result data, or neither while loading.\n */\nexport function useLazyLoadQuery<TQuery extends OperationType>(\n query: GraphQLTaggedNode,\n variables: TQuery[\"variables\"],\n options?: { fetchPolicy?: FetchPolicy; context?: TQuery[\"context\"] },\n): { error?: Error; data?: TQuery[\"response\"] } {\n invariant(\n query?.__brand === undefined,\n \"useLazyLoadQuery: query must be a valid runtime type.\",\n );\n const apolloOptions = options && {\n ...options,\n fetchPolicy: convertFetchPolicy(options.fetchPolicy),\n };\n if (query.watchQueryDocument) {\n return useCompiledLazyLoadQuery(query as CompiledArtefactModule, {\n variables,\n ...apolloOptions,\n });\n } else {\n const client = useOverridenOrDefaultApolloClient();\n return useApolloQuery(\n // Compiled documents without narrow observables should be treated like\n // normal queries.\n query.executionQueryDocument || query,\n {\n client,\n variables,\n ...apolloOptions,\n },\n );\n }\n}\n\n/**\n * A first-class way for an individual component to express its direct data requirements using GraphQL. The fragment\n * should select all the fields that the component directly uses in its rendering or needs to pass to external\n * functions. It should *not* select data that its children need, unless those children are intended to remain their\n * pure React props as data inputs.\n *\n * For children that *do* have their own data requirements expressed using GraphQL, the fragment should ensure to\n * spread in the child's fragment.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-fragment}\n *\n * @note For migration purposes, this hook supports the notion that the fragment reference can be undefined. This is\n * to support cases where useFragment is used in a tree that is conditionally using fragments.\n *\n * @param fragmentInput The GraphQL fragment document created using the `graphql` tagged template function.\n * @param fragmentRef The opaque fragment reference passed in by a parent component that has spread in this component's\n * fragment.\n * @returns The data corresponding to the field selections.\n */\nexport function useFragment<TKey extends KeyType>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey,\n): KeyTypeData<TKey>;\nexport function useFragment(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: undefined,\n): undefined;\nexport function useFragment<TKey extends KeyType>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey | undefined,\n): KeyTypeData<TKey> | undefined;\nexport function useFragment<TKey extends KeyType>(\n fragmentInput: GraphQLTaggedNode | undefined,\n fragmentRef: TKey,\n): KeyTypeData<TKey> {\n invariant(\n fragmentInput?.__brand === undefined,\n \"useFragment: fragmentInput must be a valid runtime type.\",\n );\n // If fragmentInput is undefined, it means the fragment is not compiled and we should just return the fragmentRef.\n // This is an implementation detail that should never surface to the user.\n if (fragmentInput && fragmentInput.watchQueryDocument) {\n return useCompiledFragment(fragmentInput, fragmentRef as FragmentReference);\n } else {\n return fragmentRef as unknown;\n }\n}\n\n/**\n * Equivalent to `useFragment`, but allows refetching of its subtree of the overall query.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-refetchable-fragment}\n *\n * @param fragmentInput The GraphQL fragment document created using the `graphql` tagged template function.\n * @param fragmentRef The opaque fragment reference passed in by a parent component that has spread in this component's\n * fragment.\n * @returns The data corresponding to the field selections and a function to perform the refetch.\n */\nexport function useRefetchableFragment<\n TQuery extends OperationType,\n TKey extends KeyType,\n>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey,\n): [data: KeyTypeData<TKey>, refetch: RefetchFn<TQuery[\"variables\"]>] {\n invariant(\n fragmentInput && fragmentInput.__brand === undefined,\n \"useRefetchableFragment: fragmentInput must be a valid runtime type.\",\n );\n invariant(\n !!fragmentInput.watchQueryDocument,\n \"useRefetchableFragment is only supported at this time when using compilation\",\n );\n return useCompiledRefetchableFragment(\n fragmentInput as CompiledArtefactModule,\n fragmentRef as FragmentReference,\n );\n}\n\n/**\n * Equivalent to `useFragment`, but allows pagination of its subtree of the overall query.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-pagination-fragment}\n *\n * @param fragmentInput The GraphQL fragment document created using the `graphql` tagged template function.\n * @param fragmentRef The opaque fragment reference passed in by a parent component that has spread in this component's\n * fragment.\n * @returns The data corresponding to the field selections and functions to deal with pagination.\n */\nexport function usePaginationFragment<\n TQuery extends OperationType,\n TKey extends KeyType,\n>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey,\n): {\n data: KeyTypeData<TKey>;\n loadNext: PaginationFn;\n loadPrevious: PaginationFn;\n hasNext: boolean;\n hasPrevious: boolean;\n isLoadingNext: boolean;\n isLoadingPrevious: boolean;\n refetch: RefetchFn<TQuery[\"variables\"]>;\n} {\n invariant(\n fragmentInput && fragmentInput.__brand === undefined,\n \"usePaginationFragment: fragmentInput must be a valid runtime type.\",\n );\n invariant(\n !!fragmentInput.watchQueryDocument,\n \"usePaginationFragment is only supported at this time when using compilation\",\n );\n return useCompiledPaginationFragment(\n fragmentInput as CompiledArtefactModule,\n fragmentRef as FragmentReference,\n );\n}\n\n// https://github.com/facebook/relay/blob/master/website/docs/api-reference/types/GraphQLSubscriptionConfig.md\ninterface GraphQLSubscriptionConfig<\n TSubscriptionPayload extends OperationType,\n> {\n subscription: GraphQLTaggedNode;\n variables: TSubscriptionPayload[\"variables\"];\n /**\n * Should be avoided when possible as it will not be compatible with Relay APIs.\n */\n context?: TSubscriptionPayload[\"context\"];\n /**\n * Should response be nullable?\n */\n onNext?: (response: TSubscriptionPayload[\"response\"]) => void;\n onError?: (error: Error) => void;\n}\n\n/**\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-subscription}\n *\n * @param config\n */\nexport function useSubscription<TSubscriptionPayload extends OperationType>(\n config: GraphQLSubscriptionConfig<TSubscriptionPayload>,\n): void {\n const client = useOverridenOrDefaultApolloClient();\n const { error } = useApolloSubscription(\n // TODO: Right now we don't replace mutation documents with imported artefacts.\n config.subscription as DocumentNode,\n {\n client,\n variables: config.variables,\n context: config.context,\n onSubscriptionData: ({ subscriptionData }) => {\n // Supposedly this never gets triggered for an error by design:\n // https://github.com/apollographql/react-apollo/issues/3177#issuecomment-506758144\n invariant(\n !subscriptionData.error,\n \"Did not expect to receive an error here\",\n );\n if (subscriptionData.data && config.onNext) {\n config.onNext(subscriptionData.data);\n }\n },\n errorPolicy: \"ignore\",\n } as ApolloSubscriptionHookOptions & {\n errorPolicy: ApolloErrorPolicy;\n },\n );\n if (error) {\n if (config.onError) {\n config.onError(error);\n } else {\n console.warn(\n `An unhandled GraphQL subscription error occurred: ${error.message}`,\n );\n }\n }\n}\n\ninterface IMutationCommitterOptions<TMutationPayload extends OperationType> {\n variables: TMutationPayload[\"variables\"];\n /**\n * Should be avoided when possible as it will not be compatible with Relay APIs.\n */\n context?: TMutationPayload[\"context\"];\n optimisticResponse?: Partial<TMutationPayload[\"response\"]> | null;\n}\n\ntype MutationCommiter<TMutationPayload extends OperationType> = (\n options: IMutationCommitterOptions<TMutationPayload>,\n) => Promise<{ errors?: Error[]; data?: TMutationPayload[\"response\"] }>;\n\n/**\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-mutation}\n *\n * @param mutation\n * @returns\n */\nexport function useMutation<TMutationPayload extends OperationType>(\n mutation: GraphQLTaggedNode,\n): [MutationCommiter<TMutationPayload>, boolean] {\n const client = useOverridenOrDefaultApolloClient();\n const [apolloUpdater, { loading: mutationLoading }] = useApolloMutation(\n // TODO: Right now we don't replace mutation documents with imported artefacts.\n mutation as DocumentNode,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n { client: client as ApolloClient<any> },\n );\n\n return [\n async (options: IMutationCommitterOptions<TMutationPayload>) => {\n const apolloResult = await apolloUpdater({\n variables: options.variables || {},\n context: options.context,\n optimisticResponse: options.optimisticResponse,\n });\n if (apolloResult.errors) {\n return {\n errors: Array.from(Object.values(apolloResult.errors)),\n data: apolloResult.data,\n };\n }\n return {\n data: apolloResult.data,\n };\n },\n mutationLoading,\n ];\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["invariant", "useApolloQuery", "useApolloSubscription", "useApolloMutation"]
|
|
7
7
|
}
|
package/lib/hooks.mjs
CHANGED
|
@@ -54,6 +54,10 @@ import {
|
|
|
54
54
|
import { convertFetchPolicy } from "./convertFetchPolicy.mjs";
|
|
55
55
|
import { useOverridenOrDefaultApolloClient } from "./useOverridenOrDefaultApolloClient.mjs";
|
|
56
56
|
function useLazyLoadQuery(query, variables, options) {
|
|
57
|
+
invariant(
|
|
58
|
+
(query == null ? void 0 : query.__brand) === void 0,
|
|
59
|
+
"useLazyLoadQuery: query must be a valid runtime type."
|
|
60
|
+
);
|
|
57
61
|
const apolloOptions = options && __spreadProps(__spreadValues({}, options), {
|
|
58
62
|
fetchPolicy: convertFetchPolicy(options.fetchPolicy)
|
|
59
63
|
});
|
|
@@ -63,17 +67,33 @@ function useLazyLoadQuery(query, variables, options) {
|
|
|
63
67
|
}, apolloOptions));
|
|
64
68
|
} else {
|
|
65
69
|
const client = useOverridenOrDefaultApolloClient();
|
|
66
|
-
return useApolloQuery(
|
|
70
|
+
return useApolloQuery(
|
|
71
|
+
// Compiled documents without narrow observables should be treated like
|
|
72
|
+
// normal queries.
|
|
73
|
+
query.executionQueryDocument || query,
|
|
74
|
+
__spreadValues({
|
|
75
|
+
client,
|
|
76
|
+
variables
|
|
77
|
+
}, apolloOptions)
|
|
78
|
+
);
|
|
67
79
|
}
|
|
68
80
|
}
|
|
69
81
|
function useFragment(fragmentInput, fragmentRef) {
|
|
70
|
-
|
|
82
|
+
invariant(
|
|
83
|
+
(fragmentInput == null ? void 0 : fragmentInput.__brand) === void 0,
|
|
84
|
+
"useFragment: fragmentInput must be a valid runtime type."
|
|
85
|
+
);
|
|
86
|
+
if (fragmentInput && fragmentInput.watchQueryDocument) {
|
|
71
87
|
return useCompiledFragment(fragmentInput, fragmentRef);
|
|
72
88
|
} else {
|
|
73
89
|
return fragmentRef;
|
|
74
90
|
}
|
|
75
91
|
}
|
|
76
92
|
function useRefetchableFragment(fragmentInput, fragmentRef) {
|
|
93
|
+
invariant(
|
|
94
|
+
fragmentInput && fragmentInput.__brand === void 0,
|
|
95
|
+
"useRefetchableFragment: fragmentInput must be a valid runtime type."
|
|
96
|
+
);
|
|
77
97
|
invariant(
|
|
78
98
|
!!fragmentInput.watchQueryDocument,
|
|
79
99
|
"useRefetchableFragment is only supported at this time when using compilation"
|
|
@@ -84,6 +104,10 @@ function useRefetchableFragment(fragmentInput, fragmentRef) {
|
|
|
84
104
|
);
|
|
85
105
|
}
|
|
86
106
|
function usePaginationFragment(fragmentInput, fragmentRef) {
|
|
107
|
+
invariant(
|
|
108
|
+
fragmentInput && fragmentInput.__brand === void 0,
|
|
109
|
+
"usePaginationFragment: fragmentInput must be a valid runtime type."
|
|
110
|
+
);
|
|
87
111
|
invariant(
|
|
88
112
|
!!fragmentInput.watchQueryDocument,
|
|
89
113
|
"usePaginationFragment is only supported at this time when using compilation"
|
package/lib/hooks.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/hooks.ts"],
|
|
4
|
-
"sourcesContent": ["import { DocumentNode } from \"graphql\";\nimport invariant from \"invariant\";\nimport {\n useSubscription as useApolloSubscription,\n useQuery as useApolloQuery,\n useMutation as useApolloMutation,\n SubscriptionHookOptions as ApolloSubscriptionHookOptions,\n ErrorPolicy as ApolloErrorPolicy,\n ApolloClient,\n} from \"@apollo/client\";\n\nimport {\n FetchPolicy,\n GraphQLTaggedNode,\n KeyType,\n KeyTypeData,\n OperationType,\n} from \"./types\";\nimport {\n RefetchFn,\n PaginationFn,\n useCompiledLazyLoadQuery,\n useCompiledFragment,\n useCompiledRefetchableFragment,\n useCompiledPaginationFragment,\n} from \"./storeObservation/compiledHooks\";\nimport { convertFetchPolicy } from \"./convertFetchPolicy\";\nimport { useOverridenOrDefaultApolloClient } from \"./useOverridenOrDefaultApolloClient\";\nimport type { CompiledArtefactModule } from \"@graphitation/apollo-react-relay-duct-tape-compiler\";\nimport { FragmentReference } from \"./storeObservation/compiledHooks/types\";\n\n/**\n * Executes a GraphQL query.\n *\n * This hook is called 'lazy' as it is used to fetch a GraphQL query _during_ render. This hook can trigger multiple\n * round trips, one for loading and one for resolving.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-lazy-load-query}\n *\n * @param query The query operation to perform.\n * @param variables Object containing the variable values to fetch the query. These variables need to match GraphQL\n * variables declared inside the query.\n * @param options Options passed on to the underlying implementation.\n * @param options.context The query context to pass along the apollo link chain. Should be avoided when possible as\n * it will not be compatible with Relay APIs.\n * @returns An object with either an error, the result data, or neither while loading.\n */\nexport function useLazyLoadQuery<TQuery extends OperationType>(\n query: GraphQLTaggedNode,\n variables: TQuery[\"variables\"],\n options?: { fetchPolicy?: FetchPolicy; context?: TQuery[\"context\"] },\n): { error?: Error; data?: TQuery[\"response\"] } {\n const apolloOptions = options && {\n ...options,\n fetchPolicy: convertFetchPolicy(options.fetchPolicy),\n };\n if (query.watchQueryDocument) {\n return useCompiledLazyLoadQuery(query as CompiledArtefactModule, {\n variables,\n ...apolloOptions,\n });\n } else {\n const client = useOverridenOrDefaultApolloClient();\n return useApolloQuery(query, { client, variables, ...apolloOptions });\n }\n}\n\n/**\n * A first-class way for an individual component to express its direct data requirements using GraphQL. The fragment\n * should select all the fields that the component directly uses in its rendering or needs to pass to external\n * functions. It should *not* select data that its children need, unless those children are intended to remain their\n * pure React props as data inputs.\n *\n * For children that *do* have their own data requirements expressed using GraphQL, the fragment should ensure to\n * spread in the child's fragment.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-fragment}\n *\n * @note For now, the fragment objects should be exported such that parent's can interpolate them into their own\n * GraphQL documents. This may change in the future when/if we entirely switch to static compilation and will\n * allow us to also move the usage of the graphql tagged template function inline at the `useFragment` call-site.\n *\n * @param fragmentInput The GraphQL fragment document created using the `graphql` tagged template function.\n * @param fragmentRef The opaque fragment reference passed in by a parent component that has spread in this component's\n * fragment.\n * @returns The data corresponding to the field selections.\n */\nexport function useFragment<TKey extends KeyType>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey,\n): KeyTypeData<TKey> {\n if (fragmentInput.watchQueryDocument) {\n return useCompiledFragment(fragmentInput, fragmentRef as FragmentReference);\n } else {\n return fragmentRef as unknown;\n }\n}\n\n/**\n * Equivalent to `useFragment`, but allows refetching of its subtree of the overall query.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-refetchable-fragment}\n *\n * @param fragmentInput The GraphQL fragment document created using the `graphql` tagged template function.\n * @param fragmentRef The opaque fragment reference passed in by a parent component that has spread in this component's\n * fragment.\n * @returns The data corresponding to the field selections and a function to perform the refetch.\n */\nexport function useRefetchableFragment<\n TQuery extends OperationType,\n TKey extends KeyType,\n>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey,\n): [data: KeyTypeData<TKey>, refetch: RefetchFn<TQuery[\"variables\"]>] {\n invariant(\n !!fragmentInput.watchQueryDocument,\n \"useRefetchableFragment is only supported at this time when using compilation\",\n );\n return useCompiledRefetchableFragment(\n fragmentInput as CompiledArtefactModule,\n fragmentRef as FragmentReference,\n );\n}\n\n/**\n * Equivalent to `useFragment`, but allows pagination of its subtree of the overall query.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-pagination-fragment}\n *\n * @param fragmentInput The GraphQL fragment document created using the `graphql` tagged template function.\n * @param fragmentRef The opaque fragment reference passed in by a parent component that has spread in this component's\n * fragment.\n * @returns The data corresponding to the field selections and functions to deal with pagination.\n */\nexport function usePaginationFragment<\n TQuery extends OperationType,\n TKey extends KeyType,\n>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey,\n): {\n data: KeyTypeData<TKey>;\n loadNext: PaginationFn;\n loadPrevious: PaginationFn;\n hasNext: boolean;\n hasPrevious: boolean;\n isLoadingNext: boolean;\n isLoadingPrevious: boolean;\n refetch: RefetchFn<TQuery[\"variables\"]>;\n} {\n invariant(\n !!fragmentInput.watchQueryDocument,\n \"usePaginationFragment is only supported at this time when using compilation\",\n );\n return useCompiledPaginationFragment(\n fragmentInput as CompiledArtefactModule,\n fragmentRef as FragmentReference,\n );\n}\n\n// https://github.com/facebook/relay/blob/master/website/docs/api-reference/types/GraphQLSubscriptionConfig.md\ninterface GraphQLSubscriptionConfig<\n TSubscriptionPayload extends OperationType,\n> {\n subscription: GraphQLTaggedNode;\n variables: TSubscriptionPayload[\"variables\"];\n /**\n * Should be avoided when possible as it will not be compatible with Relay APIs.\n */\n context?: TSubscriptionPayload[\"context\"];\n /**\n * Should response be nullable?\n */\n onNext?: (response: TSubscriptionPayload[\"response\"]) => void;\n onError?: (error: Error) => void;\n}\n\n/**\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-subscription}\n *\n * @param config\n */\nexport function useSubscription<TSubscriptionPayload extends OperationType>(\n config: GraphQLSubscriptionConfig<TSubscriptionPayload>,\n): void {\n const client = useOverridenOrDefaultApolloClient();\n const { error } = useApolloSubscription(\n // TODO: Right now we don't replace mutation documents with imported artefacts.\n config.subscription as DocumentNode,\n {\n client,\n variables: config.variables,\n context: config.context,\n onSubscriptionData: ({ subscriptionData }) => {\n // Supposedly this never gets triggered for an error by design:\n // https://github.com/apollographql/react-apollo/issues/3177#issuecomment-506758144\n invariant(\n !subscriptionData.error,\n \"Did not expect to receive an error here\",\n );\n if (subscriptionData.data && config.onNext) {\n config.onNext(subscriptionData.data);\n }\n },\n errorPolicy: \"ignore\",\n } as ApolloSubscriptionHookOptions & {\n errorPolicy: ApolloErrorPolicy;\n },\n );\n if (error) {\n if (config.onError) {\n config.onError(error);\n } else {\n console.warn(\n `An unhandled GraphQL subscription error occurred: ${error.message}`,\n );\n }\n }\n}\n\ninterface IMutationCommitterOptions<TMutationPayload extends OperationType> {\n variables: TMutationPayload[\"variables\"];\n /**\n * Should be avoided when possible as it will not be compatible with Relay APIs.\n */\n context?: TMutationPayload[\"context\"];\n optimisticResponse?: Partial<TMutationPayload[\"response\"]> | null;\n}\n\ntype MutationCommiter<TMutationPayload extends OperationType> = (\n options: IMutationCommitterOptions<TMutationPayload>,\n) => Promise<{ errors?: Error[]; data?: TMutationPayload[\"response\"] }>;\n\n/**\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-mutation}\n *\n * @param mutation\n * @returns\n */\nexport function useMutation<TMutationPayload extends OperationType>(\n mutation: GraphQLTaggedNode,\n): [MutationCommiter<TMutationPayload>, boolean] {\n const client = useOverridenOrDefaultApolloClient();\n const [apolloUpdater, { loading: mutationLoading }] = useApolloMutation(\n // TODO: Right now we don't replace mutation documents with imported artefacts.\n mutation as DocumentNode,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n { client: client as ApolloClient<any> },\n );\n\n return [\n async (options: IMutationCommitterOptions<TMutationPayload>) => {\n const apolloResult = await apolloUpdater({\n variables: options.variables || {},\n context: options.context,\n optimisticResponse: options.optimisticResponse,\n });\n if (apolloResult.errors) {\n return {\n errors: Array.from(Object.values(apolloResult.errors)),\n data: apolloResult.data,\n };\n }\n return {\n data: apolloResult.data,\n };\n },\n mutationLoading,\n ];\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,OAAO,eAAe;AACtB;AAAA,EACE,mBAAmB;AAAA,EACnB,YAAY;AAAA,EACZ,eAAe;AAAA,OAIV;AASP;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,0BAA0B;AACnC,SAAS,yCAAyC;AAoB3C,SAAS,iBACd,OACA,WACA,SAC8C;AAC9C,QAAM,gBAAgB,WAAW,iCAC5B,UAD4B;AAAA,IAE/B,aAAa,mBAAmB,QAAQ,WAAW;AAAA,EACrD;AACA,MAAI,MAAM,oBAAoB;AAC5B,WAAO,yBAAyB,OAAiC;AAAA,MAC/D;AAAA,OACG,cACJ;AAAA,EACH,OAAO;AACL,UAAM,SAAS,kCAAkC;AACjD,WAAO,
|
|
4
|
+
"sourcesContent": ["import { DocumentNode } from \"graphql\";\nimport invariant from \"invariant\";\nimport {\n useSubscription as useApolloSubscription,\n useQuery as useApolloQuery,\n useMutation as useApolloMutation,\n SubscriptionHookOptions as ApolloSubscriptionHookOptions,\n ErrorPolicy as ApolloErrorPolicy,\n ApolloClient,\n} from \"@apollo/client\";\n\nimport {\n FetchPolicy,\n GraphQLTaggedNode,\n KeyType,\n KeyTypeData,\n OperationType,\n} from \"./types\";\nimport {\n RefetchFn,\n PaginationFn,\n useCompiledLazyLoadQuery,\n useCompiledFragment,\n useCompiledRefetchableFragment,\n useCompiledPaginationFragment,\n} from \"./storeObservation/compiledHooks\";\nimport { convertFetchPolicy } from \"./convertFetchPolicy\";\nimport { useOverridenOrDefaultApolloClient } from \"./useOverridenOrDefaultApolloClient\";\nimport type { CompiledArtefactModule } from \"@graphitation/apollo-react-relay-duct-tape-compiler\";\nimport { FragmentReference } from \"./storeObservation/compiledHooks/types\";\n\n/**\n * Executes a GraphQL query.\n *\n * This hook is called 'lazy' as it is used to fetch a GraphQL query _during_ render. This hook can trigger multiple\n * round trips, one for loading and one for resolving.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-lazy-load-query}\n *\n * @param query The query operation to perform.\n * @param variables Object containing the variable values to fetch the query. These variables need to match GraphQL\n * variables declared inside the query.\n * @param options Options passed on to the underlying implementation.\n * @param options.context The query context to pass along the apollo link chain. Should be avoided when possible as\n * it will not be compatible with Relay APIs.\n * @returns An object with either an error, the result data, or neither while loading.\n */\nexport function useLazyLoadQuery<TQuery extends OperationType>(\n query: GraphQLTaggedNode,\n variables: TQuery[\"variables\"],\n options?: { fetchPolicy?: FetchPolicy; context?: TQuery[\"context\"] },\n): { error?: Error; data?: TQuery[\"response\"] } {\n invariant(\n query?.__brand === undefined,\n \"useLazyLoadQuery: query must be a valid runtime type.\",\n );\n const apolloOptions = options && {\n ...options,\n fetchPolicy: convertFetchPolicy(options.fetchPolicy),\n };\n if (query.watchQueryDocument) {\n return useCompiledLazyLoadQuery(query as CompiledArtefactModule, {\n variables,\n ...apolloOptions,\n });\n } else {\n const client = useOverridenOrDefaultApolloClient();\n return useApolloQuery(\n // Compiled documents without narrow observables should be treated like\n // normal queries.\n query.executionQueryDocument || query,\n {\n client,\n variables,\n ...apolloOptions,\n },\n );\n }\n}\n\n/**\n * A first-class way for an individual component to express its direct data requirements using GraphQL. The fragment\n * should select all the fields that the component directly uses in its rendering or needs to pass to external\n * functions. It should *not* select data that its children need, unless those children are intended to remain their\n * pure React props as data inputs.\n *\n * For children that *do* have their own data requirements expressed using GraphQL, the fragment should ensure to\n * spread in the child's fragment.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-fragment}\n *\n * @note For migration purposes, this hook supports the notion that the fragment reference can be undefined. This is\n * to support cases where useFragment is used in a tree that is conditionally using fragments.\n *\n * @param fragmentInput The GraphQL fragment document created using the `graphql` tagged template function.\n * @param fragmentRef The opaque fragment reference passed in by a parent component that has spread in this component's\n * fragment.\n * @returns The data corresponding to the field selections.\n */\nexport function useFragment<TKey extends KeyType>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey,\n): KeyTypeData<TKey>;\nexport function useFragment(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: undefined,\n): undefined;\nexport function useFragment<TKey extends KeyType>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey | undefined,\n): KeyTypeData<TKey> | undefined;\nexport function useFragment<TKey extends KeyType>(\n fragmentInput: GraphQLTaggedNode | undefined,\n fragmentRef: TKey,\n): KeyTypeData<TKey> {\n invariant(\n fragmentInput?.__brand === undefined,\n \"useFragment: fragmentInput must be a valid runtime type.\",\n );\n // If fragmentInput is undefined, it means the fragment is not compiled and we should just return the fragmentRef.\n // This is an implementation detail that should never surface to the user.\n if (fragmentInput && fragmentInput.watchQueryDocument) {\n return useCompiledFragment(fragmentInput, fragmentRef as FragmentReference);\n } else {\n return fragmentRef as unknown;\n }\n}\n\n/**\n * Equivalent to `useFragment`, but allows refetching of its subtree of the overall query.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-refetchable-fragment}\n *\n * @param fragmentInput The GraphQL fragment document created using the `graphql` tagged template function.\n * @param fragmentRef The opaque fragment reference passed in by a parent component that has spread in this component's\n * fragment.\n * @returns The data corresponding to the field selections and a function to perform the refetch.\n */\nexport function useRefetchableFragment<\n TQuery extends OperationType,\n TKey extends KeyType,\n>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey,\n): [data: KeyTypeData<TKey>, refetch: RefetchFn<TQuery[\"variables\"]>] {\n invariant(\n fragmentInput && fragmentInput.__brand === undefined,\n \"useRefetchableFragment: fragmentInput must be a valid runtime type.\",\n );\n invariant(\n !!fragmentInput.watchQueryDocument,\n \"useRefetchableFragment is only supported at this time when using compilation\",\n );\n return useCompiledRefetchableFragment(\n fragmentInput as CompiledArtefactModule,\n fragmentRef as FragmentReference,\n );\n}\n\n/**\n * Equivalent to `useFragment`, but allows pagination of its subtree of the overall query.\n *\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-pagination-fragment}\n *\n * @param fragmentInput The GraphQL fragment document created using the `graphql` tagged template function.\n * @param fragmentRef The opaque fragment reference passed in by a parent component that has spread in this component's\n * fragment.\n * @returns The data corresponding to the field selections and functions to deal with pagination.\n */\nexport function usePaginationFragment<\n TQuery extends OperationType,\n TKey extends KeyType,\n>(\n fragmentInput: GraphQLTaggedNode,\n fragmentRef: TKey,\n): {\n data: KeyTypeData<TKey>;\n loadNext: PaginationFn;\n loadPrevious: PaginationFn;\n hasNext: boolean;\n hasPrevious: boolean;\n isLoadingNext: boolean;\n isLoadingPrevious: boolean;\n refetch: RefetchFn<TQuery[\"variables\"]>;\n} {\n invariant(\n fragmentInput && fragmentInput.__brand === undefined,\n \"usePaginationFragment: fragmentInput must be a valid runtime type.\",\n );\n invariant(\n !!fragmentInput.watchQueryDocument,\n \"usePaginationFragment is only supported at this time when using compilation\",\n );\n return useCompiledPaginationFragment(\n fragmentInput as CompiledArtefactModule,\n fragmentRef as FragmentReference,\n );\n}\n\n// https://github.com/facebook/relay/blob/master/website/docs/api-reference/types/GraphQLSubscriptionConfig.md\ninterface GraphQLSubscriptionConfig<\n TSubscriptionPayload extends OperationType,\n> {\n subscription: GraphQLTaggedNode;\n variables: TSubscriptionPayload[\"variables\"];\n /**\n * Should be avoided when possible as it will not be compatible with Relay APIs.\n */\n context?: TSubscriptionPayload[\"context\"];\n /**\n * Should response be nullable?\n */\n onNext?: (response: TSubscriptionPayload[\"response\"]) => void;\n onError?: (error: Error) => void;\n}\n\n/**\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-subscription}\n *\n * @param config\n */\nexport function useSubscription<TSubscriptionPayload extends OperationType>(\n config: GraphQLSubscriptionConfig<TSubscriptionPayload>,\n): void {\n const client = useOverridenOrDefaultApolloClient();\n const { error } = useApolloSubscription(\n // TODO: Right now we don't replace mutation documents with imported artefacts.\n config.subscription as DocumentNode,\n {\n client,\n variables: config.variables,\n context: config.context,\n onSubscriptionData: ({ subscriptionData }) => {\n // Supposedly this never gets triggered for an error by design:\n // https://github.com/apollographql/react-apollo/issues/3177#issuecomment-506758144\n invariant(\n !subscriptionData.error,\n \"Did not expect to receive an error here\",\n );\n if (subscriptionData.data && config.onNext) {\n config.onNext(subscriptionData.data);\n }\n },\n errorPolicy: \"ignore\",\n } as ApolloSubscriptionHookOptions & {\n errorPolicy: ApolloErrorPolicy;\n },\n );\n if (error) {\n if (config.onError) {\n config.onError(error);\n } else {\n console.warn(\n `An unhandled GraphQL subscription error occurred: ${error.message}`,\n );\n }\n }\n}\n\ninterface IMutationCommitterOptions<TMutationPayload extends OperationType> {\n variables: TMutationPayload[\"variables\"];\n /**\n * Should be avoided when possible as it will not be compatible with Relay APIs.\n */\n context?: TMutationPayload[\"context\"];\n optimisticResponse?: Partial<TMutationPayload[\"response\"]> | null;\n}\n\ntype MutationCommiter<TMutationPayload extends OperationType> = (\n options: IMutationCommitterOptions<TMutationPayload>,\n) => Promise<{ errors?: Error[]; data?: TMutationPayload[\"response\"] }>;\n\n/**\n * @see {@link https://microsoft.github.io/graphitation/docs/apollo-react-relay-duct-tape/use-mutation}\n *\n * @param mutation\n * @returns\n */\nexport function useMutation<TMutationPayload extends OperationType>(\n mutation: GraphQLTaggedNode,\n): [MutationCommiter<TMutationPayload>, boolean] {\n const client = useOverridenOrDefaultApolloClient();\n const [apolloUpdater, { loading: mutationLoading }] = useApolloMutation(\n // TODO: Right now we don't replace mutation documents with imported artefacts.\n mutation as DocumentNode,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n { client: client as ApolloClient<any> },\n );\n\n return [\n async (options: IMutationCommitterOptions<TMutationPayload>) => {\n const apolloResult = await apolloUpdater({\n variables: options.variables || {},\n context: options.context,\n optimisticResponse: options.optimisticResponse,\n });\n if (apolloResult.errors) {\n return {\n errors: Array.from(Object.values(apolloResult.errors)),\n data: apolloResult.data,\n };\n }\n return {\n data: apolloResult.data,\n };\n },\n mutationLoading,\n ];\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/lib/types.d.ts
CHANGED
|
@@ -11,11 +11,16 @@ export interface OperationType {
|
|
|
11
11
|
readonly response: unknown;
|
|
12
12
|
readonly rawResponse?: unknown;
|
|
13
13
|
}
|
|
14
|
-
export type GraphQLTaggedNode =
|
|
14
|
+
export type GraphQLTaggedNode = {
|
|
15
|
+
__brand: "GraphQLTaggedNode";
|
|
16
|
+
} | (DocumentNode & {
|
|
15
17
|
watchQueryDocument?: never;
|
|
18
|
+
executionQueryDocument?: DocumentNode;
|
|
19
|
+
__brand?: never;
|
|
16
20
|
}) | {
|
|
17
21
|
watchQueryDocument: DocumentNode;
|
|
18
|
-
|
|
22
|
+
executionQueryDocument?: DocumentNode;
|
|
23
|
+
__brand?: never;
|
|
19
24
|
};
|
|
20
25
|
export type FetchPolicy = "store-or-network" | "store-and-network" | "network-only" | "store-only";
|
|
21
26
|
/**
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,WAAW,SAAS;IAExB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IAEtB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,iBAAiB,GACzB,CAAC,YAAY,GAAG;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,WAAW,SAAS;IAExB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACrB;AAED,MAAM,WAAW,OAAO;IAEtB,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,OAAO,EAAE,mBAAmB,CAAC;CAC9B,GACD,CAAC,YAAY,GAAG;IACd,kBAAkB,CAAC,EAAE,KAAK,CAAC;IAC3B,sBAAsB,CAAC,EAAE,YAAY,CAAC;IACtC,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC,GACF;IACE,kBAAkB,EAAE,YAAY,CAAC;IACjC,sBAAsB,CAAC,EAAE,YAAY,CAAC;IACtC,OAAO,CAAC,EAAE,KAAK,CAAC;CACjB,CAAC;AAEN,MAAM,MAAM,WAAW,GACnB,kBAAkB,GAClB,mBAAmB,GACnB,cAAc,GACd,YAAY,CAAC;AAEjB;;GAEG;AAEH,MAAM,WAAW,QAAQ,CAAC,GAAG,SAAS,MAAM;IAC1C,WAAW,EAAE,GAAG,CAAC;CAClB;AAED,MAAM,WAAW,aAAa,CAAC,IAAI,SAAS,MAAM;IAChD,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;CACtC;AAGD,MAAM,MAAM,YAAY,CAAC,IAAI,SAAS,MAAM,IAAI;KAC7C,GAAG,IAAI,IAAI,GAAG,IAAI;CACpB,CAAC;AAGF,MAAM,MAAM,WAAW,CAAC,QAAQ,IAAI,QAAQ,SAAS,QAAQ,CAAC,MAAM,CAAC,CAAC,GAClE,aAAa,CAAC,CAAC,CAAC,GAChB,KAAK,CAAC;AAEV;;GAEG;AAEH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC;AAExC,MAAM,MAAM,OAAO,CAAC,KAAK,GAAG,OAAO,IAAI,QAAQ,CAAC;IAC9C,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,gBAAgB,EAAE,iBAAiB,CAAC;CACrC,CAAC,CAAC;AAEH,MAAM,MAAM,WAAW,CACrB,IAAI,SAAS,OAAO,CAAC,KAAK,CAAC,EAC3B,KAAK,GAAG,OAAO,IACb,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AAE7B,MAAM,MAAM,YAAY,CAAC,KAAK,GAAG,OAAO,IAAI,aAAa,CAAC,OAAO,CAC/D,aAAa,CAAC,KAAK,CAAC,CACrB,GAAG,IAAI,CAAC,CAAC;AACV,MAAM,MAAM,gBAAgB,CAC1B,IAAI,SAAS,YAAY,CAAC,KAAK,CAAC,EAChC,KAAK,GAAG,OAAO,IACb,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC"}
|
package/lib/types.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/types.ts"],
|
|
4
|
-
"sourcesContent": ["import type { DocumentNode } from \"graphql\";\n\nexport interface Variables {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [name: string]: any;\n}\n\nexport interface Context {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [name: string]: any;\n}\n\nexport interface OperationType {\n readonly variables: Variables;\n readonly context?: Context;\n readonly response: unknown;\n readonly rawResponse?: unknown;\n}\n\nexport type GraphQLTaggedNode =\n | (DocumentNode & {
|
|
4
|
+
"sourcesContent": ["import type { DocumentNode } from \"graphql\";\n\nexport interface Variables {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [name: string]: any;\n}\n\nexport interface Context {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [name: string]: any;\n}\n\nexport interface OperationType {\n readonly variables: Variables;\n readonly context?: Context;\n readonly response: unknown;\n readonly rawResponse?: unknown;\n}\n\nexport type GraphQLTaggedNode =\n | {\n __brand: \"GraphQLTaggedNode\";\n }\n | (DocumentNode & {\n watchQueryDocument?: never;\n executionQueryDocument?: DocumentNode;\n __brand?: never;\n })\n | {\n watchQueryDocument: DocumentNode;\n executionQueryDocument?: DocumentNode;\n __brand?: never;\n };\n\nexport type FetchPolicy =\n | \"store-or-network\"\n | \"store-and-network\"\n | \"network-only\"\n | \"store-only\";\n\n/**\n * relay-compiler-language-typescript support for fragment references\n */\n\nexport interface _RefType<Ref extends string> {\n \" $refType\": Ref;\n}\n\nexport interface _FragmentRefs<Refs extends string> {\n \" $fragmentRefs\": FragmentRefs<Refs>;\n}\n\n// This is used in the actual artifacts to define the various fragment references a container holds.\nexport type FragmentRefs<Refs extends string> = {\n [ref in Refs]: true;\n};\n\n// This is a utility type for converting from a data type to a fragment reference that will resolve to that data type.\nexport type FragmentRef<Fragment> = Fragment extends _RefType<infer U>\n ? _FragmentRefs<U>\n : never;\n\n/**\n * react-relay DT\n */\n\nexport type FragmentReference = unknown;\n\nexport type KeyType<TData = unknown> = Readonly<{\n \" $data\"?: TData;\n \" $fragmentRefs\": FragmentReference;\n}>;\n\nexport type KeyTypeData<\n TKey extends KeyType<TData>,\n TData = unknown,\n> = Required<TKey>[\" $data\"];\n\nexport type ArrayKeyType<TData = unknown> = ReadonlyArray<KeyType<\n ReadonlyArray<TData>\n> | null>;\nexport type ArrayKeyTypeData<\n TKey extends ArrayKeyType<TData>,\n TData = unknown,\n> = KeyTypeData<NonNullable<TKey[number]>>;\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@graphitation/apollo-react-relay-duct-tape",
|
|
3
3
|
"description": "A compatibility wrapper that provides the react-relay API on top of Apollo Client.",
|
|
4
4
|
"license": "MIT",
|
|
5
|
-
"version": "1.0.
|
|
5
|
+
"version": "1.0.7",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
8
8
|
"url": "https://github.com/microsoft/graphitation.git",
|