@jetshop/core 6.3.5 → 6.3.8-alpha-6

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.
Files changed (96) hide show
  1. package/ChannelHandler/channelUtils.js +1 -1
  2. package/ChannelHandler/channelUtils.js.map +1 -1
  3. package/boot/apollo.js +3 -39
  4. package/boot/apollo.js.map +1 -1
  5. package/boot/client/startClient.js +1 -16
  6. package/boot/client/startClient.js.map +1 -1
  7. package/boot/server/createApolloServer.js +0 -6
  8. package/boot/server/createApolloServer.js.map +1 -1
  9. package/boot/server/createRenderer.d.ts +2 -2
  10. package/boot/server/createRenderer.js +12 -25
  11. package/boot/server/createRenderer.js.map +1 -1
  12. package/boot/server/createServer.js +0 -11
  13. package/boot/server/createServer.js.map +1 -1
  14. package/boot/server/index.d.ts +0 -2
  15. package/boot/server/index.js +4 -16
  16. package/boot/server/index.js.map +1 -1
  17. package/boot/worker/createApolloServerWorker.d.ts +18 -0
  18. package/boot/worker/createApolloServerWorker.js +119 -0
  19. package/boot/worker/createApolloServerWorker.js.map +1 -0
  20. package/boot/worker/createRenderer.d.ts +23 -0
  21. package/boot/worker/createRenderer.js +242 -0
  22. package/boot/worker/createRenderer.js.map +1 -0
  23. package/boot/worker/getPrefetchFiles.d.ts +10 -0
  24. package/boot/worker/getPrefetchFiles.js +20 -0
  25. package/boot/worker/getPrefetchFiles.js.map +1 -0
  26. package/boot/worker/getPreloadAssets.d.ts +10 -0
  27. package/boot/worker/getPreloadAssets.js +18 -0
  28. package/boot/worker/getPreloadAssets.js.map +1 -0
  29. package/boot/worker/index.d.ts +6 -0
  30. package/boot/worker/index.js +98 -0
  31. package/boot/worker/index.js.map +1 -0
  32. package/components/Auth/formFieldsFromSettings.d.ts +1 -1
  33. package/components/Auth/signupSubmit.js +4 -2
  34. package/components/Auth/signupSubmit.js.map +1 -1
  35. package/components/ConfigProvider.d.ts +3 -15
  36. package/components/ConfigProvider.js.map +1 -1
  37. package/components/DynamicRoute/GenericError.js +0 -4
  38. package/components/DynamicRoute/GenericError.js.map +1 -1
  39. package/components/Pagination/PaginationProvider.d.ts +0 -2
  40. package/components/Pagination/PaginationProvider.js +1 -10
  41. package/components/Pagination/PaginationProvider.js.map +1 -1
  42. package/global.d.ts +0 -1
  43. package/hooks/usePreconnectLinks.js +1 -5
  44. package/hooks/usePreconnectLinks.js.map +1 -1
  45. package/hooks/usePreconnectLinks.test.js +0 -4
  46. package/package.json +6 -7
  47. package/analytics/integrations/gtm/README.md +0 -3
  48. package/boot/server/IntervalQuery.d.ts +0 -32
  49. package/boot/server/IntervalQuery.js +0 -95
  50. package/boot/server/IntervalQuery.js.map +0 -1
  51. package/boot/server/IntervalQuery.test.js +0 -276
  52. package/boot/server/PersistedApolloClient.d.ts +0 -20
  53. package/boot/server/PersistedApolloClient.js +0 -40
  54. package/boot/server/PersistedApolloClient.js.map +0 -1
  55. package/boot/server/PersistedApolloClient.test.js +0 -234
  56. package/boot/server/createApolloServer.test.js +0 -114
  57. package/boot/server/getPreloadAssets.test.js +0 -133
  58. package/boot/server/persistedQueries/PersistedClient.d.ts +0 -22
  59. package/boot/server/persistedQueries/PersistedClient.js +0 -58
  60. package/boot/server/persistedQueries/PersistedClient.js.map +0 -1
  61. package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +0 -201
  62. package/boot/server/persistedQueries/__tests__/mockQuery.gql +0 -6
  63. package/boot/server/persistedQueries/getPersistedQueriesForRequest.d.ts +0 -3
  64. package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +0 -27
  65. package/boot/server/persistedQueries/getPersistedQueriesForRequest.js.map +0 -1
  66. package/boot/server/saleSource.test.js +0 -39
  67. package/boot/server/salesSource.d.ts +0 -8
  68. package/boot/server/salesSource.js +0 -16
  69. package/boot/server/salesSource.js.map +0 -1
  70. package/errorReporting.browser.d.ts +0 -3
  71. package/errorReporting.browser.js +0 -17
  72. package/errorReporting.browser.js.map +0 -1
  73. package/errorReporting.d.ts +0 -4
  74. package/errorReporting.js +0 -24
  75. package/errorReporting.js.map +0 -1
  76. package/errorReporting.server.d.ts +0 -3
  77. package/errorReporting.server.js +0 -12
  78. package/errorReporting.server.js.map +0 -1
  79. package/errorReporting.shared.d.ts +0 -5
  80. package/errorReporting.shared.js +0 -17
  81. package/errorReporting.shared.js.map +0 -1
  82. package/polyfills.d.ts +0 -1
  83. package/polyfills.js +0 -58
  84. package/polyfills.js.map +0 -1
  85. package/sentry/client.d.ts +0 -1
  86. package/sentry/client.js +0 -30
  87. package/sentry/client.js.map +0 -1
  88. package/sentry/common.d.ts +0 -1
  89. package/sentry/common.js +0 -5
  90. package/sentry/common.js.map +0 -1
  91. package/sentry/server.d.ts +0 -1
  92. package/sentry/server.js +0 -20
  93. package/sentry/server.js.map +0 -1
  94. package/sentry/utils.d.ts +0 -1
  95. package/sentry/utils.js +0 -2
  96. package/sentry/utils.js.map +0 -1
@@ -20,13 +20,10 @@ export interface ApolloConfig {
20
20
  engineApiKey?: string;
21
21
  enableGateway?: boolean;
22
22
  channelsQuery?: DocumentNode;
23
- persistedQueries?: {
24
- query: DocumentNode;
25
- variables?: Record<string, any>;
26
- }[];
23
+ persistedQueries?: any;
27
24
  }
28
25
  export interface ChannelOverrides {
29
- [id: number]: Omit<BootOptions, 'usePolyfilling' | 'apolloConfig' | 'intl' | 'disableGeoRedirect' | 'singleDomainMode' | 'optimize' | 'routes' | 'loginPath' | 'pathsWithNoAuthRequired'>;
26
+ [id: number]: Omit<BootOptions, 'apolloConfig' | 'intl' | 'disableGeoRedirect' | 'singleDomainMode' | 'optimize' | 'routes' | 'loginPath' | 'pathsWithNoAuthRequired'>;
30
27
  }
31
28
  export interface OptimizeConfig {
32
29
  container: string;
@@ -82,24 +79,15 @@ export interface BootOptions {
82
79
  optimize?: OptimizeConfig;
83
80
  routes?: Routes;
84
81
  preload?: PreLoaderProviderConfig;
85
- sentry?: Sentry;
82
+ sentry?: any;
86
83
  /** Server specific configuration */
87
84
  server?: Server;
88
85
  usePrimaryRouteForProducts?: boolean;
89
86
  useTrackingConsentAPI?: boolean;
90
87
  useIndefinitelySavedCart?: boolean;
91
- /** Enable this if you want to use Polyfill.io service before booting shop on client */
92
88
  usePolyfilling?: boolean;
93
89
  useMobileImageSizes?: boolean;
94
90
  }
95
- interface Sentry {
96
- /** DSN used to track client side errors */
97
- clientDSN?: string;
98
- /** DSN used to track server side errors */
99
- serverDSN?: string;
100
- /** A list of strings or RegExps to filter errors to ignore */
101
- ignoreErrors?: (string | RegExp)[];
102
- }
103
91
  interface Server {
104
92
  /** GraphQL proxy server configuration */
105
93
  graphql?: GraphQL;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigProvider.js","sourceRoot":"","sources":["ConfigProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAgB,MAAM,OAAO,CAAC;AAM3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA2H5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAC5C,SAAS,CACV,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,EAO9B;QAP8B,EAC7B,MAAM,EAAE,UAAU,EAClB,QAAQ,OAKT,EAJI,IAAI,cAHsB,sBAI9B,CADQ;IAKP,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO,CACL,oBAAC,iBAAiB,CAAC,QAAQ,kBAAC,KAAK,EAAE,MAAM,IAAM,IAAI,GAChD,QAAQ,CACkB,CAC9B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ConfigProvider.js","sourceRoot":"","sources":["ConfigProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAgB,MAAM,OAAO,CAAC;AAM3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAkH5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAC5C,SAAS,CACV,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,EAO9B;QAP8B,EAC7B,MAAM,EAAE,UAAU,EAClB,QAAQ,OAKT,EAJI,IAAI,cAHsB,sBAI9B,CADQ;IAKP,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO,CACL,oBAAC,iBAAiB,CAAC,QAAQ,kBAAC,KAAK,EAAE,MAAM,IAAM,IAAI,GAChD,QAAQ,CACkB,CAC9B,CAAC;AACJ,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
- import report from '@jetshop/core/errorReporting';
3
2
  export const DefaultError = ({ error, info }) => (React.createElement("section", { style: {
4
3
  width: '57ch',
5
4
  maxWidth: '100%',
@@ -41,9 +40,6 @@ class ErrorBoundary extends React.Component {
41
40
  };
42
41
  }
43
42
  componentDidCatch(error, info) {
44
- const { extraInfo = {} } = this.props;
45
- // Report to Sentry
46
- report(error, Object.assign(Object.assign({}, extraInfo), { reactInfo: info }));
47
43
  this.setState({ error, info });
48
44
  }
49
45
  render() {
@@ -1 +1 @@
1
- {"version":3,"file":"GenericError.js","sourceRoot":"","sources":["GenericError.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,MAAM,MAAM,8BAA8B,CAAC;AAalD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAsB,EAAE,EAAE,CAAC,CACnE,iCACE,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,MAAM;KAChB;IAED,4BACE,KAAK,EAAE;YACL,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,MAAM;SACrB,4BAGE;IACL,2EAAgD;IAChD;QACE,2BACE,IAAI,EAAC,GAAG,EACR,KAAK,EAAE;gBACL,OAAO,EAAE,cAAc;gBACvB,MAAM,EAAE,eAAe;gBACvB,YAAY,EAAE,KAAK;gBACnB,OAAO,EAAE,QAAQ;gBACjB,cAAc,EAAE,MAAM;gBACtB,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,SAAS;gBACrB,MAAM,EAAE,mBAAmB;gBAC3B,KAAK,EAAE,MAAM;aACd,gCAGC,CACA;IACL,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CACxC;QACG,KAAK,IAAI;;YAAW,KAAK,CAAC,OAAO,CAAK;QACtC,IAAI,IAAI,CACP,6BACE,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,GAAG;gBACf,KAAK,EAAE,SAAS;aACjB,IAEA,IAAI,CAAC,cAAc,CAChB,CACP,CACG,CACP,CACO,CACX,CAAC;AAEF,MAAM,aAAc,SAAQ,KAAK,CAAC,SAGjC;IAHD;;QAIE,UAAK,GAAuB;YAC1B,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;SAChB,CAAC;IAsBJ,CAAC;IAhBC,iBAAiB,CAAC,KAAY,EAAE,IAAqB;QACnD,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,mBAAmB;QACnB,MAAM,CAAC,KAAK,kCAAO,SAAS,KAAE,SAAS,EAAE,IAAI,IAAG,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAyC,CAAC;QAElE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACrB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC5B;QAED,OAAO,oBAAC,IAAI,oBAAK,IAAI,CAAC,KAAK,EAAI,CAAC;IAClC,CAAC;;AAnBM,0BAAY,GAAgC;IACjD,SAAS,EAAE,YAAY;CACxB,CAAC;AAoBJ,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"GenericError.js","sourceRoot":"","sources":["GenericError.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAsB,EAAE,EAAE,CAAC,CACnE,iCACE,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,MAAM;KAChB;IAED,4BACE,KAAK,EAAE;YACL,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,MAAM;SACrB,4BAGE;IACL,2EAAgD;IAChD;QACE,2BACE,IAAI,EAAC,GAAG,EACR,KAAK,EAAE;gBACL,OAAO,EAAE,cAAc;gBACvB,MAAM,EAAE,eAAe;gBACvB,YAAY,EAAE,KAAK;gBACnB,OAAO,EAAE,QAAQ;gBACjB,cAAc,EAAE,MAAM;gBACtB,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,SAAS;gBACrB,MAAM,EAAE,mBAAmB;gBAC3B,KAAK,EAAE,MAAM;aACd,gCAGC,CACA;IACL,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CACxC;QACG,KAAK,IAAI;;YAAW,KAAK,CAAC,OAAO,CAAK;QACtC,IAAI,IAAI,CACP,6BACE,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,GAAG;gBACf,KAAK,EAAE,SAAS;aACjB,IAEA,IAAI,CAAC,cAAc,CAChB,CACP,CACG,CACP,CACO,CACX,CAAC;AAEF,MAAM,aAAc,SAAQ,KAAK,CAAC,SAGjC;IAHD;;QAIE,UAAK,GAAuB;YAC1B,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;SAChB,CAAC;IAmBJ,CAAC;IAbC,iBAAiB,CAAC,KAAY,EAAE,IAAqB;QACnD,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAyC,CAAC;QAElE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACrB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC5B;QAED,OAAO,oBAAC,IAAI,oBAAK,IAAI,CAAC,KAAK,EAAI,CAAC;IAClC,CAAC;;AAhBM,0BAAY,GAAgC;IACjD,SAAS,EAAE,YAAY;CACxB,CAAC;AAiBJ,eAAe,aAAa,CAAC"}
@@ -8,12 +8,10 @@ export type IPaginationProps = {
8
8
  defaultProductsPerPage?: number;
9
9
  /** The query param to use for pagination. @default 'page' */
10
10
  queryParam?: string;
11
- errorReportingEnabled?: boolean;
12
11
  } & ReactCookieProps;
13
12
  export declare function usePagination(): import("@jetshop/core/components/Pagination/PaginationContext").PaginationState;
14
13
  declare const _default: React.ComponentType<{
15
14
  defaultProductsPerPage?: number;
16
15
  queryParam?: string;
17
- errorReportingEnabled?: boolean;
18
16
  }>;
19
17
  export default _default;
@@ -1,6 +1,5 @@
1
1
  import { pushHistory, replaceHistory } from '@jetshop/core/components/Filters/utils/updateHistory';
2
2
  import PaginationContext from '@jetshop/core/components/Pagination/PaginationContext';
3
- import report from '@jetshop/core/errorReporting';
4
3
  import qs from 'qs';
5
4
  import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';
6
5
  import { withCookies } from 'react-cookie';
@@ -46,7 +45,7 @@ const calculateOffset = (page, perPage) => {
46
45
  return 0;
47
46
  }
48
47
  };
49
- const PaginationProvider = ({ cookies, defaultProductsPerPage = 16, children, queryParam = 'page', errorReportingEnabled = true }) => {
48
+ const PaginationProvider = ({ cookies, defaultProductsPerPage = 16, children, queryParam = 'page' }) => {
50
49
  const history = useHistory();
51
50
  const location = useLocation();
52
51
  const [currentPage, setCurrentPage] = useState(getPageFromSearch(location, queryParam) || 1);
@@ -70,14 +69,6 @@ const PaginationProvider = ({ cookies, defaultProductsPerPage = 16, children, qu
70
69
  }, [cookies]);
71
70
  const cookieProductsPerPage = parseInt(cookies.get('perPage'), 10);
72
71
  const perPage = cookieProductsPerPage || defaultProductsPerPage;
73
- if (errorReportingEnabled && currentPage >= 1000) {
74
- report(new Error('Page number is too nigh'), {
75
- currentPage,
76
- perPage,
77
- location,
78
- history
79
- });
80
- }
81
72
  const value = useMemo(() => ({
82
73
  currentPage,
83
74
  offset: calculateOffset(currentPage, perPage),
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationProvider.js","sourceRoot":"","sources":["PaginationProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,cAAc,EACf,MAAM,sDAAsD,CAAC;AAC9D,OAAO,iBAEN,MAAM,uDAAuD,CAAC;AAE/D,OAAO,MAAM,MAAM,8BAA8B,CAAC;AAClD,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,EAAE,EAEZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,EACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAoB,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,aAAa,GAAG,CACpB,EAAE,OAAO,EAAE,QAAQ,EAA4C,EAC/D,OAAe,EACf,UAAkB,EAClB,OAAyB,EACzB,EAAE;IACF,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAC5B,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EACxE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC5B,CAAC;IAEF,MAAM,MAAM,mCAAQ,aAAa,KAAE,CAAC,UAAU,CAAC,EAAE,OAAO,GAAE,CAAC;IAE3D,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;QAC9B,cAAc,CAAC;YACb,OAAO;YACP,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM;YACN,SAAS,EAAE,OAAO,KAAK,CAAC;YACxB,SAAS,EAAE,kBAAkB;SAC9B,CAAC,CAAC;KACJ;SAAM;QACL,WAAW,CAAC;YACV,OAAO;YACP,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM;YACN,SAAS,EAAE,OAAO,KAAK,CAAC;YACxB,SAAS,EAAE,kBAAkB;SAC9B,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,QAAkB,EAAE,UAAkB,EAAE,EAAE;IACnE,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,oDAAoD;IACpD,IAAI,QAAQ,CAAC,MAAM,EAAE;QACnB,IAAI,GAAG,QAAQ,CACb,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,EAClE,EAAE,CACH,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE;IACxD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,EAAE;QAC3B,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;KAC7B;SAAM;QACL,OAAO,CAAC,CAAC;KACV;AACH,CAAC,CAAC;AAYF,MAAM,kBAAkB,GAAyB,CAAC,EAChD,OAAO,EACP,sBAAsB,GAAG,EAAE,EAC3B,QAAQ,EACR,UAAU,GAAG,MAAM,EACnB,qBAAqB,GAAG,IAAI,EAC7B,EAAE,EAAE;IACH,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAC/B,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAC5C,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,CAC7C,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,iBAAiB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAErD,IAAI,IAAI,EAAE;YACR,cAAc,CAAC,IAAI,CAAC,CAAC;SACtB;QAED,IAAI,CAAC,IAAI,IAAI,WAAW,KAAK,CAAC,EAAE;YAC9B,cAAc,CAAC,CAAC,CAAC,CAAC;SACnB;QACD,uDAAuD;IACzD,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,IAAY,EAAE,OAAyB,EAAE,EAAE;QAC1C,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,aAAa,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC,EACD,CAAC,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAChC,CAAC;IAEF,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,OAAe,EAAE,EAAE;QAClB,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACrC,cAAc,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC,EACD,CAAC,OAAO,CAAC,CACV,CAAC;IAEF,MAAM,qBAAqB,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,qBAAqB,IAAI,sBAAsB,CAAC;IAEhE,IAAI,qBAAqB,IAAI,WAAW,IAAI,IAAI,EAAE;QAChD,MAAM,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,EAAE;YAC3C,WAAW;YACX,OAAO;YACP,QAAQ;YACR,OAAO;SACR,CAAC,CAAC;KACJ;IAED,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EAAE,CAAC,CAAC;QACL,WAAW;QACX,MAAM,EAAE,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC;QAC7C,OAAO;QACP,QAAQ;QACR,kBAAkB;QAClB,UAAU;KACX,CAAC,EACF,CAAC,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,CAAC,CACjE,CAAC;IAEF,OAAO,CACL,oBAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IACrC,QAAQ,CACkB,CAC9B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,UAAU,aAAa;IAC3B,OAAO,UAAU,CAAC,iBAAiB,CAAC,CAAC;AACvC,CAAC;AAED,eAAe,WAAW,CAAC,kBAAkB,CAAC,CAAC"}
1
+ {"version":3,"file":"PaginationProvider.js","sourceRoot":"","sources":["PaginationProvider.tsx"],"names":[],"mappings":"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"}
package/global.d.ts CHANGED
@@ -13,7 +13,6 @@ declare module 'apollo-link' {
13
13
 
14
14
  declare global {
15
15
  let __IN_SERVER__: boolean;
16
- let __USE_SENTRY__: boolean;
17
16
  }
18
17
 
19
18
  declare module 'history' {
@@ -1,12 +1,8 @@
1
1
  import { useShopConfig } from './useShopConfig';
2
2
  export function usePreconnectLinks({ ga = false, gtm = false } = {}) {
3
- const { apolloConfig, usePolyfilling } = useShopConfig();
3
+ const { apolloConfig } = useShopConfig();
4
4
  // These links are used with every store
5
5
  const staticLinks = [
6
- usePolyfilling && {
7
- href: 'https://cdnjs.cloudflare.com',
8
- crossOrigin: null
9
- },
10
6
  (apolloConfig === null || apolloConfig === void 0 ? void 0 : apolloConfig.graphQLURI) && {
11
7
  href: apolloConfig === null || apolloConfig === void 0 ? void 0 : apolloConfig.graphQLURI,
12
8
  crossOrigin: null
@@ -1 +1 @@
1
- {"version":3,"file":"usePreconnectLinks.js","sourceRoot":"","sources":["usePreconnectLinks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAYhD,MAAM,UAAU,kBAAkB,CAAC,EACjC,EAAE,GAAG,KAAK,EACV,GAAG,GAAG,KAAK,KACc,EAAE;IAC3B,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,aAAa,EAAE,CAAC;IAEzD,wCAAwC;IACxC,MAAM,WAAW,GAAG;QAClB,cAAc,IAAI;YAChB,IAAI,EAAE,8BAA8B;YACpC,WAAW,EAAE,IAAI;SAClB;QACD,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,KAAI;YAC1B,IAAI,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU;YAC9B,WAAW,EAAE,IAAI;SAClB;KACF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,+DAA+D;IAC/D,MAAM,OAAO,GAAG,EAAE;QAChB,CAAC,CAAC;YACE,kCAAkC;YAClC,wBAAwB;YACxB,iCAAiC;SAClC;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,OAAO;QACL,GAAG,WAAW;QACd,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"usePreconnectLinks.js","sourceRoot":"","sources":["usePreconnectLinks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAYhD,MAAM,UAAU,kBAAkB,CAAC,EACjC,EAAE,GAAG,KAAK,EACV,GAAG,GAAG,KAAK,KACc,EAAE;IAC3B,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE,CAAC;IAEzC,wCAAwC;IACxC,MAAM,WAAW,GAAG;QAClB,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,KAAI;YAC1B,IAAI,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU;YAC9B,WAAW,EAAE,IAAI;SAClB;KACF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,+DAA+D;IAC/D,MAAM,OAAO,GAAG,EAAE;QAChB,CAAC,CAAC;YACE,kCAAkC;YAClC,wBAAwB;YACxB,iCAAiC;SAClC;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,OAAO;QACL,GAAG,WAAW;QACd,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC"}
@@ -12,10 +12,6 @@ function expectStaticLinks() {
12
12
  expect.objectContaining({
13
13
  href: apolloConfig.graphQLURI,
14
14
  crossOrigin: null
15
- }),
16
- expect.objectContaining({
17
- href: 'https://cdn.polyfill.io',
18
- crossOrigin: null
19
15
  })
20
16
  ];
21
17
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jetshop/core",
3
- "version": "6.3.5",
3
+ "version": "6.3.8-alpha-6",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "**/*.js",
@@ -31,20 +31,18 @@
31
31
  }
32
32
  },
33
33
  "dependencies": {
34
- "@apollo/client": "^3.7.15",
34
+ "@apollo/client": "~3.13.9",
35
+ "@apollo/server": "^4.11.0",
36
+ "@as-integrations/cloudflare-workers": "^1.1.1",
35
37
  "@graphql-tools/delegate": "^7.1.2",
36
38
  "@graphql-tools/stitch": "^7.5.1",
37
39
  "@graphql-tools/wrap": "^7.0.5",
38
40
  "@loadable/component": "^5.11.0",
39
41
  "@loadable/server": "^5.16.0",
40
- "@sentry/browser": "^6.15.0",
41
- "@sentry/core": "^6.15.0",
42
- "@sentry/node": "^6.15.0",
43
42
  "@tanem/react-nprogress": "^5.0.44",
44
43
  "@xstate/react": "^0.8.1",
45
44
  "accept-language-parser": "^1.5.0",
46
45
  "apollo-server": "~2.6.9",
47
- "apollo-server-caching": "^0.4.0",
48
46
  "apollo-server-express": "~2.6.9",
49
47
  "compression": "^1.7.2",
50
48
  "dnscache": "^1.0.2",
@@ -76,6 +74,7 @@
76
74
  "xstate": "^4.13.0"
77
75
  },
78
76
  "devDependencies": {
77
+ "@cloudflare/workers-types": "^4.20241127.0",
79
78
  "@graphql-codegen/typescript": "^1.21.0",
80
79
  "@react-mock/localstorage": "^0.1.2",
81
80
  "@types/accept-language-parser": "^1.5.1",
@@ -112,5 +111,5 @@
112
111
  "react": "^18",
113
112
  "react-dom": "^18"
114
113
  },
115
- "gitHead": "451005761243a71138a835d35d9d5084721b1e54"
114
+ "gitHead": "4cb9237f7c70e7fc05119c191f1c039ea0248670"
116
115
  }
@@ -1,3 +0,0 @@
1
- # Generating `template.json`
2
-
3
- This file is created from the container `GTM-M4Q6MBN` (test.demostore.se). If you want to make a new export, make your changes in the workspace and make a new export under Administrator -> Export container, and then commit the file to this repository.
@@ -1,32 +0,0 @@
1
- import { OperationVariables } from '@apollo/client';
2
- import { DocumentNode } from 'graphql';
3
- import { CreateClientOpts } from '../apollo';
4
- import { ChannelHeaders } from './persistedQueries/PersistedClient';
5
- export type ErrorCallback = (err: Error) => void;
6
- export interface IntervalQueryOptions {
7
- query: DocumentNode;
8
- pollInterval: number;
9
- createClientOpts: CreateClientOpts;
10
- variables?: OperationVariables;
11
- onError?: ErrorCallback;
12
- }
13
- export declare class IntervalQuery<ResponseShape> {
14
- private pendingResponse?;
15
- private lastResponse?;
16
- private query;
17
- private client?;
18
- private createClientOpts;
19
- private variables?;
20
- private timeout;
21
- private onError?;
22
- private pollInterval;
23
- private channelHeaders?;
24
- constructor({ query, variables, createClientOpts, pollInterval, onError, headers }: IntervalQueryOptions & {
25
- headers?: ChannelHeaders;
26
- });
27
- private scheduleNext;
28
- private executeQuery;
29
- results(): Promise<ResponseShape>;
30
- getPendingResponse(): Promise<ResponseShape | undefined>;
31
- extractCache(): any;
32
- }
@@ -1,95 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { createClient } from '../apollo';
11
- export class IntervalQuery {
12
- constructor({ query, variables, createClientOpts, pollInterval, onError, headers }) {
13
- this.query = query;
14
- this.createClientOpts = createClientOpts;
15
- this.client = createClient(createClientOpts).client;
16
- this.variables = variables;
17
- this.onError = onError;
18
- this.pollInterval = pollInterval;
19
- this.channelHeaders = headers;
20
- this.executeQuery();
21
- this.scheduleNext();
22
- if (typeof process !== 'undefined' && process.on) {
23
- process.on('SIGTERM', () => {
24
- clearTimeout(this.timeout);
25
- });
26
- }
27
- }
28
- scheduleNext() {
29
- this.timeout = setTimeout(() => {
30
- this.scheduleNext();
31
- this.executeQuery();
32
- }, this.pollInterval);
33
- }
34
- executeQuery() {
35
- const { client } = createClient(this.createClientOpts);
36
- const pendingResponse = client
37
- .query({
38
- query: this.query,
39
- variables: this.variables,
40
- fetchPolicy: 'network-only',
41
- context: {
42
- headers: this.channelHeaders
43
- }
44
- })
45
- .then((resp) => {
46
- const { data } = resp;
47
- if (pendingResponse !== this.pendingResponse) {
48
- // response expired
49
- return data;
50
- }
51
- this.pendingResponse = undefined;
52
- this.lastResponse = data;
53
- // https://www.apollographql.com/docs/react/api/apollo-client/#ApolloClient.stop
54
- // Stop any active client processes
55
- this.client.stop();
56
- this.client = client;
57
- return data;
58
- });
59
- pendingResponse.catch((err) => {
60
- if (pendingResponse !== this.pendingResponse) {
61
- // response expired
62
- return;
63
- }
64
- this.pendingResponse = undefined;
65
- if (this.onError) {
66
- this.onError(err);
67
- }
68
- });
69
- this.pendingResponse = pendingResponse;
70
- return this.pendingResponse;
71
- }
72
- results() {
73
- return __awaiter(this, void 0, void 0, function* () {
74
- if (this.lastResponse) {
75
- return this.lastResponse;
76
- }
77
- if (this.pendingResponse) {
78
- return this.pendingResponse;
79
- }
80
- return this.executeQuery();
81
- });
82
- }
83
- getPendingResponse() {
84
- return __awaiter(this, void 0, void 0, function* () {
85
- return this.pendingResponse;
86
- });
87
- }
88
- extractCache() {
89
- if (!this.client) {
90
- throw new Error('No queries has succeeded yet');
91
- }
92
- return this.client.extract();
93
- }
94
- }
95
- //# sourceMappingURL=IntervalQuery.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IntervalQuery.js","sourceRoot":"","sources":["IntervalQuery.ts"],"names":[],"mappings":"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"}
@@ -1,276 +0,0 @@
1
- import {
2
- ApolloClient,
3
- ApolloError,
4
- InMemoryCache,
5
- HttpLink,
6
- gql
7
- } from '@apollo/client';
8
- import { IntervalQuery } from './IntervalQuery';
9
- import nock from 'nock';
10
- beforeAll(() => {
11
- jest.useFakeTimers();
12
- nock.disableNetConnect();
13
- });
14
- afterAll(() => {
15
- jest.useRealTimers();
16
- nock.enableNetConnect();
17
- });
18
- afterEach(() => {
19
- jest.restoreAllMocks();
20
- jest.clearAllTimers();
21
- nock.enableNetConnect();
22
- });
23
- const query = gql`
24
- query ChannelsQuery {
25
- channels {
26
- id
27
- name
28
- }
29
- }
30
- `;
31
- const apolloConfig = {
32
- shopid: '...',
33
- graphQLURI: 'http://localhost/graphql',
34
- token: '...',
35
- enableGateway: false
36
- };
37
-
38
- /**
39
- * Mocks response for `/graphql`
40
- * Only for **one** request, it resets on each call.
41
- */
42
- function mockResponse({ channels = null, statusCode = 200, errors }) {
43
- const data = {
44
- errors,
45
- data: {
46
- channels: Array.isArray(channels)
47
- ? channels.map((channel) =>
48
- Object.assign({ __typename: 'Channel' }, channel)
49
- )
50
- : null
51
- }
52
- };
53
- const res = jest.fn(() => data);
54
- nock('http://localhost').post('/graphql').reply(statusCode, res);
55
- return res;
56
- }
57
- test('does request on init', async () => {
58
- const firstCall = mockResponse({
59
- channels: [
60
- {
61
- id: 1,
62
- name: 'test'
63
- }
64
- ]
65
- });
66
- const intervalQuery = new IntervalQuery({
67
- createClientOpts: { apolloConfig },
68
- query,
69
- pollInterval: 60e3
70
- });
71
- await intervalQuery.getPendingResponse();
72
- expect(firstCall).toHaveBeenCalled();
73
- const res = await intervalQuery.results();
74
- expect(res.channels).toHaveLength(1);
75
- expect(res.channels[0].id).toBe(1);
76
- });
77
- test('does request on intervals', async () => {
78
- mockResponse({
79
- channels: [
80
- {
81
- id: 1,
82
- name: 'test1'
83
- }
84
- ]
85
- });
86
- const pollInterval = 60e3;
87
- const intervalQuery = new IntervalQuery({
88
- createClientOpts: { apolloConfig },
89
- query,
90
- pollInterval
91
- });
92
- {
93
- const res = await intervalQuery.results();
94
- expect(res.channels[0].name).toBe('test1');
95
- nock.cleanAll();
96
- }
97
- {
98
- const mock = mockResponse({
99
- channels: [
100
- {
101
- id: 2,
102
- name: 'test2'
103
- }
104
- ]
105
- });
106
- jest.advanceTimersByTime(pollInterval);
107
- await intervalQuery.getPendingResponse();
108
- const res = await intervalQuery.results();
109
- expect(mock).toHaveBeenCalled();
110
- expect(res.channels[0].name).toBe('test2');
111
- }
112
- {
113
- mockResponse({
114
- channels: [
115
- {
116
- id: 3,
117
- name: 'test3'
118
- }
119
- ]
120
- });
121
- jest.advanceTimersByTime(pollInterval);
122
- await intervalQuery.getPendingResponse();
123
- const res = await intervalQuery.results();
124
- expect(res.channels[0].name).toBe('test3');
125
- }
126
- });
127
- test('propagates bad statusCodes', async () => {
128
- mockResponse({ statusCode: 500 });
129
- const onError = jest.fn();
130
- const pollInterval = 60e3;
131
- const intervalQuery = new IntervalQuery({
132
- createClientOpts: { apolloConfig },
133
- query,
134
- pollInterval,
135
- onError
136
- });
137
- expect.assertions(3);
138
- try {
139
- await intervalQuery.getPendingResponse();
140
- } catch (err) {
141
- expect(err.networkError.statusCode).toBe(500);
142
- expect(onError).toHaveBeenCalledTimes(1);
143
- }
144
- // successful response after
145
- mockResponse({ channels: [] });
146
- const res = await intervalQuery.results();
147
- expect(res.channels).toEqual([]);
148
- });
149
- test('propagates when response contains GraphQL-errors', async () => {
150
- const errorMessage = 'Something went wrong';
151
- mockResponse({
152
- errors: [
153
- {
154
- message: errorMessage,
155
- locations: null
156
- }
157
- ]
158
- });
159
- const pollInterval = 60e3;
160
- const intervalQuery = new IntervalQuery({
161
- createClientOpts: { apolloConfig },
162
- query,
163
- pollInterval
164
- });
165
- expect.assertions(2);
166
- try {
167
- await intervalQuery.getPendingResponse();
168
- } catch (_err) {
169
- const err = _err;
170
- expect(err).toBeInstanceOf(ApolloError);
171
- expect(err.message).toBe(`GraphQL error: ${errorMessage}`);
172
- }
173
- });
174
- test('extracting and using cache in new client', async () => {
175
- mockResponse({
176
- channels: [
177
- {
178
- id: 1,
179
- name: 'test1'
180
- }
181
- ]
182
- });
183
- const pollInterval = 60e3;
184
- const intervalQuery = new IntervalQuery({
185
- createClientOpts: { apolloConfig },
186
- query,
187
- pollInterval
188
- });
189
- await intervalQuery.getPendingResponse();
190
- {
191
- const cache = intervalQuery.extractCache();
192
- expect(cache).toHaveProperty('Channel:1');
193
- expect(cache['Channel:1'].name).toBe('test1');
194
- const newClient = new ApolloClient({
195
- link: new HttpLink(),
196
- cache: new InMemoryCache().restore(cache)
197
- });
198
- const res = newClient.readQuery({
199
- query
200
- });
201
- expect(res.channels).toHaveLength(1);
202
- expect(res.channels[0].name).toBe('test1');
203
- }
204
- // update data in new request
205
- {
206
- const mock = mockResponse({
207
- channels: [
208
- {
209
- id: 1,
210
- name: 'test1--updated'
211
- },
212
- {
213
- id: 2,
214
- name: 'test2'
215
- }
216
- ]
217
- });
218
- jest.advanceTimersByTime(pollInterval);
219
- await intervalQuery.getPendingResponse();
220
- expect(mock).toHaveBeenCalled();
221
- const cache = intervalQuery.extractCache();
222
- const newClient = new ApolloClient({
223
- link: new HttpLink(),
224
- cache: new InMemoryCache().restore(cache)
225
- });
226
- const res = newClient.readQuery({
227
- query
228
- });
229
- expect(res.channels).toHaveLength(2);
230
- expect(res.channels[0].name).toBe('test1--updated');
231
- expect(res.channels[1].name).toBe('test2');
232
- }
233
- });
234
-
235
- test(`internal state doesn't get overridden by erroneous requests`, async () => {
236
- mockResponse({
237
- channels: [
238
- {
239
- id: 1,
240
- name: 'test1'
241
- }
242
- ]
243
- });
244
- const pollInterval = 60e3;
245
- const intervalQuery = new IntervalQuery({
246
- createClientOpts: { apolloConfig },
247
- query,
248
- pollInterval
249
- });
250
- await intervalQuery.getPendingResponse();
251
-
252
- mockResponse({
253
- errors: [
254
- {
255
- message: 'Something went wrong',
256
- locations: null
257
- }
258
- ]
259
- });
260
- jest.advanceTimersByTime(pollInterval);
261
- let err;
262
- try {
263
- await intervalQuery.getPendingResponse();
264
- } catch (_err) {
265
- err = _err;
266
- }
267
- expect(err).toBeInstanceOf(Error);
268
-
269
- const cache = intervalQuery.extractCache();
270
- expect(cache['Channel:1']).toBeTruthy();
271
- expect(cache['Channel:1'].name).toBe('test1');
272
-
273
- const res = await intervalQuery.results();
274
-
275
- expect(res.channels[0].name).toBe('test1');
276
- });
@@ -1,20 +0,0 @@
1
- import { Channel } from '@jetshop/core/types';
2
- import { CreateClientOpts } from '../apollo';
3
- /**
4
- * Persisted Apollo Client that's shared across all requests on the server
5
- */
6
- export declare class PersistedApolloClient {
7
- /**
8
- * **⚠️ WARNING ⚠️**
9
- *
10
- * Use this client with care as it's cache will be shared amongst **all** requests
11
- * It's private in this class for us to be able to expose only specific queries
12
- */
13
- private channelsIntervalQuery;
14
- constructor({ createClientOpts, channelsPollInterval }: {
15
- createClientOpts: CreateClientOpts;
16
- channelsPollInterval?: number;
17
- });
18
- extractCache(): any;
19
- getChannels(): Promise<Channel[]>;
20
- }