@jetshop/core 6.3.7 → 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.
- package/ChannelHandler/channelUtils.js +1 -1
- package/ChannelHandler/channelUtils.js.map +1 -1
- package/boot/apollo.js +3 -39
- package/boot/apollo.js.map +1 -1
- package/boot/client/startClient.js +1 -16
- package/boot/client/startClient.js.map +1 -1
- package/boot/server/createApolloServer.js +0 -6
- package/boot/server/createApolloServer.js.map +1 -1
- package/boot/server/createRenderer.d.ts +2 -2
- package/boot/server/createRenderer.js +12 -25
- package/boot/server/createRenderer.js.map +1 -1
- package/boot/server/createServer.js +0 -11
- package/boot/server/createServer.js.map +1 -1
- package/boot/server/index.d.ts +0 -2
- package/boot/server/index.js +4 -16
- package/boot/server/index.js.map +1 -1
- package/boot/worker/createApolloServerWorker.d.ts +18 -0
- package/boot/worker/createApolloServerWorker.js +119 -0
- package/boot/worker/createApolloServerWorker.js.map +1 -0
- package/boot/worker/createRenderer.d.ts +23 -0
- package/boot/worker/createRenderer.js +242 -0
- package/boot/worker/createRenderer.js.map +1 -0
- package/boot/worker/getPrefetchFiles.d.ts +10 -0
- package/boot/worker/getPrefetchFiles.js +20 -0
- package/boot/worker/getPrefetchFiles.js.map +1 -0
- package/boot/worker/getPreloadAssets.d.ts +10 -0
- package/boot/worker/getPreloadAssets.js +18 -0
- package/boot/worker/getPreloadAssets.js.map +1 -0
- package/boot/worker/index.d.ts +6 -0
- package/boot/worker/index.js +98 -0
- package/boot/worker/index.js.map +1 -0
- package/components/Auth/formFieldsFromSettings.d.ts +1 -1
- package/components/ConfigProvider.d.ts +3 -15
- package/components/ConfigProvider.js.map +1 -1
- package/components/DynamicRoute/GenericError.js +0 -4
- package/components/DynamicRoute/GenericError.js.map +1 -1
- package/components/Pagination/PaginationProvider.d.ts +0 -2
- package/components/Pagination/PaginationProvider.js +1 -10
- package/components/Pagination/PaginationProvider.js.map +1 -1
- package/global.d.ts +0 -1
- package/hooks/usePreconnectLinks.js +1 -5
- package/hooks/usePreconnectLinks.js.map +1 -1
- package/hooks/usePreconnectLinks.test.js +0 -4
- package/package.json +5 -6
- package/analytics/integrations/gtm/README.md +0 -3
- package/boot/server/IntervalQuery.d.ts +0 -32
- package/boot/server/IntervalQuery.js +0 -95
- package/boot/server/IntervalQuery.js.map +0 -1
- package/boot/server/IntervalQuery.test.js +0 -276
- package/boot/server/PersistedApolloClient.d.ts +0 -20
- package/boot/server/PersistedApolloClient.js +0 -40
- package/boot/server/PersistedApolloClient.js.map +0 -1
- package/boot/server/PersistedApolloClient.test.js +0 -234
- package/boot/server/createApolloServer.test.js +0 -114
- package/boot/server/getPreloadAssets.test.js +0 -133
- package/boot/server/persistedQueries/PersistedClient.d.ts +0 -22
- package/boot/server/persistedQueries/PersistedClient.js +0 -58
- package/boot/server/persistedQueries/PersistedClient.js.map +0 -1
- package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +0 -201
- package/boot/server/persistedQueries/__tests__/mockQuery.gql +0 -6
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.d.ts +0 -3
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +0 -27
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js.map +0 -1
- package/boot/server/saleSource.test.js +0 -39
- package/boot/server/salesSource.d.ts +0 -8
- package/boot/server/salesSource.js +0 -16
- package/boot/server/salesSource.js.map +0 -1
- package/errorReporting.browser.d.ts +0 -3
- package/errorReporting.browser.js +0 -17
- package/errorReporting.browser.js.map +0 -1
- package/errorReporting.d.ts +0 -4
- package/errorReporting.js +0 -24
- package/errorReporting.js.map +0 -1
- package/errorReporting.server.d.ts +0 -3
- package/errorReporting.server.js +0 -12
- package/errorReporting.server.js.map +0 -1
- package/errorReporting.shared.d.ts +0 -5
- package/errorReporting.shared.js +0 -17
- package/errorReporting.shared.js.map +0 -1
- package/polyfills.d.ts +0 -1
- package/polyfills.js +0 -58
- package/polyfills.js.map +0 -1
- package/sentry/client.d.ts +0 -1
- package/sentry/client.js +0 -30
- package/sentry/client.js.map +0 -1
- package/sentry/common.d.ts +0 -1
- package/sentry/common.js +0 -5
- package/sentry/common.js.map +0 -1
- package/sentry/server.d.ts +0 -1
- package/sentry/server.js +0 -20
- package/sentry/server.js.map +0 -1
- package/sentry/utils.d.ts +0 -1
- package/sentry/utils.js +0 -2
- package/sentry/utils.js.map +0 -1
|
@@ -1,234 +0,0 @@
|
|
|
1
|
-
// TODO
|
|
2
|
-
// File reverted from TypeScript, should be reverted when pipeline supports it
|
|
3
|
-
// https://gitlab.jetshop.se/jetshop/flight/merge_requests/409/diffs?commit_id=d30490f833ec2d2eec94e5a75ed99de71e666377
|
|
4
|
-
// https://gitlab.jetshop.se/jetshop/flight/blob/94b6108017f6205e7d31f6bedb19c14f278d227a/packages/core/boot/server/PersistedApolloClient.test.ts
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
ApolloClient,
|
|
8
|
-
ApolloError,
|
|
9
|
-
InMemoryCache,
|
|
10
|
-
HttpLink
|
|
11
|
-
} from '@apollo/client';
|
|
12
|
-
import { PersistedApolloClient } from './PersistedApolloClient';
|
|
13
|
-
import nock from 'nock';
|
|
14
|
-
import channelsQuery from '../ChannelsQuery.gql';
|
|
15
|
-
|
|
16
|
-
global.__IN_SERVER__ = true;
|
|
17
|
-
jest.useFakeTimers();
|
|
18
|
-
beforeEach(() => {
|
|
19
|
-
nock.disableNetConnect();
|
|
20
|
-
});
|
|
21
|
-
afterEach(() => {
|
|
22
|
-
jest.restoreAllMocks();
|
|
23
|
-
jest.clearAllTimers();
|
|
24
|
-
nock.enableNetConnect();
|
|
25
|
-
nock.cleanAll();
|
|
26
|
-
});
|
|
27
|
-
const apolloConfig = {
|
|
28
|
-
shopid: '...',
|
|
29
|
-
graphQLURI: 'http://localhost/graphql',
|
|
30
|
-
token: '...',
|
|
31
|
-
enableGateway: false,
|
|
32
|
-
channelsQuery
|
|
33
|
-
};
|
|
34
|
-
function getPendingResponse(persitedClient) {
|
|
35
|
-
const channelsIntervalQuery = persitedClient.channelsIntervalQuery;
|
|
36
|
-
return channelsIntervalQuery.getPendingResponse();
|
|
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(
|
|
49
|
-
{
|
|
50
|
-
__typename: 'Channel',
|
|
51
|
-
requiresAuth: false,
|
|
52
|
-
countries: null,
|
|
53
|
-
currencies: null,
|
|
54
|
-
defaultCurrency: null,
|
|
55
|
-
defaultLanguage: null,
|
|
56
|
-
displayName: null,
|
|
57
|
-
groupName: null,
|
|
58
|
-
isDefault: null,
|
|
59
|
-
languages: null,
|
|
60
|
-
settings: null,
|
|
61
|
-
name: null,
|
|
62
|
-
url: null,
|
|
63
|
-
imageUrl: null
|
|
64
|
-
},
|
|
65
|
-
channel
|
|
66
|
-
)
|
|
67
|
-
)
|
|
68
|
-
: null
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
const res = jest.fn(() => data);
|
|
72
|
-
nock('http://localhost').post('/graphql').reply(statusCode, res);
|
|
73
|
-
return res;
|
|
74
|
-
}
|
|
75
|
-
test('does request on init', async () => {
|
|
76
|
-
const firstCall = mockResponse({
|
|
77
|
-
channels: [
|
|
78
|
-
{
|
|
79
|
-
id: 1,
|
|
80
|
-
name: 'test'
|
|
81
|
-
}
|
|
82
|
-
]
|
|
83
|
-
});
|
|
84
|
-
const persistedClient = new PersistedApolloClient({
|
|
85
|
-
createClientOpts: { apolloConfig }
|
|
86
|
-
});
|
|
87
|
-
await getPendingResponse(persistedClient);
|
|
88
|
-
expect(firstCall).toHaveBeenCalled();
|
|
89
|
-
const channels = await persistedClient.getChannels();
|
|
90
|
-
expect(channels).toHaveLength(1);
|
|
91
|
-
expect(channels[0].id).toBe(1);
|
|
92
|
-
});
|
|
93
|
-
test('does request on intervals', async () => {
|
|
94
|
-
mockResponse({
|
|
95
|
-
channels: [
|
|
96
|
-
{
|
|
97
|
-
id: 1,
|
|
98
|
-
name: 'test1'
|
|
99
|
-
}
|
|
100
|
-
]
|
|
101
|
-
});
|
|
102
|
-
const channelsPollInterval = 60e3;
|
|
103
|
-
const persistedClient = new PersistedApolloClient({
|
|
104
|
-
createClientOpts: { apolloConfig },
|
|
105
|
-
channelsPollInterval
|
|
106
|
-
});
|
|
107
|
-
{
|
|
108
|
-
const channels = await persistedClient.getChannels();
|
|
109
|
-
expect(channels[0].name).toBe('test1');
|
|
110
|
-
}
|
|
111
|
-
{
|
|
112
|
-
mockResponse({
|
|
113
|
-
channels: [
|
|
114
|
-
{
|
|
115
|
-
id: 2,
|
|
116
|
-
name: 'test2'
|
|
117
|
-
}
|
|
118
|
-
]
|
|
119
|
-
});
|
|
120
|
-
jest.advanceTimersByTime(channelsPollInterval + 1);
|
|
121
|
-
await getPendingResponse(persistedClient);
|
|
122
|
-
const channels = await persistedClient.getChannels();
|
|
123
|
-
expect(channels[0].name).toBe('test2');
|
|
124
|
-
}
|
|
125
|
-
{
|
|
126
|
-
mockResponse({
|
|
127
|
-
channels: [
|
|
128
|
-
{
|
|
129
|
-
id: 3,
|
|
130
|
-
name: 'test3'
|
|
131
|
-
}
|
|
132
|
-
]
|
|
133
|
-
});
|
|
134
|
-
jest.advanceTimersByTime(channelsPollInterval);
|
|
135
|
-
await getPendingResponse(persistedClient);
|
|
136
|
-
const channels = await persistedClient.getChannels();
|
|
137
|
-
expect(channels[0].name).toBe('test3');
|
|
138
|
-
}
|
|
139
|
-
});
|
|
140
|
-
test('propagates bad statusCodes', async () => {
|
|
141
|
-
mockResponse({ statusCode: 500 });
|
|
142
|
-
const persistedClient = new PersistedApolloClient({
|
|
143
|
-
createClientOpts: { apolloConfig }
|
|
144
|
-
});
|
|
145
|
-
expect.assertions(1);
|
|
146
|
-
try {
|
|
147
|
-
await getPendingResponse(persistedClient);
|
|
148
|
-
} catch (err) {
|
|
149
|
-
expect(err.networkError.statusCode).toBe(500);
|
|
150
|
-
}
|
|
151
|
-
});
|
|
152
|
-
test('propagates when response contains GraphQL-errors', async () => {
|
|
153
|
-
const errorMessage = 'Something went wrong';
|
|
154
|
-
mockResponse({
|
|
155
|
-
errors: [
|
|
156
|
-
{
|
|
157
|
-
message: errorMessage,
|
|
158
|
-
locations: null
|
|
159
|
-
}
|
|
160
|
-
]
|
|
161
|
-
});
|
|
162
|
-
const persistedClient = new PersistedApolloClient({
|
|
163
|
-
createClientOpts: { apolloConfig }
|
|
164
|
-
});
|
|
165
|
-
expect.assertions(2);
|
|
166
|
-
try {
|
|
167
|
-
await getPendingResponse(persistedClient);
|
|
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 channelsPollInterval = 60e3;
|
|
185
|
-
const persistedClient = new PersistedApolloClient({
|
|
186
|
-
createClientOpts: { apolloConfig },
|
|
187
|
-
channelsPollInterval
|
|
188
|
-
});
|
|
189
|
-
await getPendingResponse(persistedClient);
|
|
190
|
-
{
|
|
191
|
-
const cache = persistedClient.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: channelsQuery
|
|
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 getPendingResponse(persistedClient);
|
|
220
|
-
expect(mock).toHaveBeenCalled();
|
|
221
|
-
const cache = persistedClient.extractCache();
|
|
222
|
-
const newClient = new ApolloClient({
|
|
223
|
-
link: new HttpLink(),
|
|
224
|
-
cache: new InMemoryCache().restore(cache)
|
|
225
|
-
});
|
|
226
|
-
const res = newClient.readQuery({
|
|
227
|
-
query: channelsQuery
|
|
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
|
-
//# sourceMappingURL=PersistedApolloClient.test.js.map
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import express from 'express';
|
|
2
|
-
import { ApolloServer, gql } from 'apollo-server-express';
|
|
3
|
-
import listen from './listen';
|
|
4
|
-
import createApolloServer from './createApolloServer';
|
|
5
|
-
import fetch from 'node-fetch';
|
|
6
|
-
import { GraphQLError } from 'graphql';
|
|
7
|
-
|
|
8
|
-
function createGraphqlClient(port) {
|
|
9
|
-
const url = `http://localhost:${port}/graphql`;
|
|
10
|
-
|
|
11
|
-
return async function request({ query, variables }) {
|
|
12
|
-
const body = { query, variables };
|
|
13
|
-
|
|
14
|
-
const resBody = await fetch(url, {
|
|
15
|
-
method: 'post',
|
|
16
|
-
body: JSON.stringify(body),
|
|
17
|
-
headers: { 'Content-Type': 'application/json' }
|
|
18
|
-
}).then(r => r.json());
|
|
19
|
-
|
|
20
|
-
return resBody;
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
async function createTargetServer() {
|
|
25
|
-
const typeDefs = gql`
|
|
26
|
-
type Query {
|
|
27
|
-
hello(name: String!): String!
|
|
28
|
-
}
|
|
29
|
-
`;
|
|
30
|
-
|
|
31
|
-
const resolvers = {
|
|
32
|
-
Query: {
|
|
33
|
-
hello: async (_source, { name }) => {
|
|
34
|
-
if (name === '') {
|
|
35
|
-
throw new GraphQLError(`Name can't be empty`);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return `Hello ${name}`;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
const apolloServer = new ApolloServer({
|
|
44
|
-
typeDefs,
|
|
45
|
-
resolvers
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
const app = express();
|
|
49
|
-
|
|
50
|
-
apolloServer.applyMiddleware({ app });
|
|
51
|
-
|
|
52
|
-
const { port, close } = await listen({ app, port: 0 });
|
|
53
|
-
const query = createGraphqlClient(port);
|
|
54
|
-
|
|
55
|
-
return { port, close, query };
|
|
56
|
-
}
|
|
57
|
-
async function createLocalServer({ targetPort }) {
|
|
58
|
-
const { apolloServer } = await createApolloServer({
|
|
59
|
-
apolloConfig: {
|
|
60
|
-
graphQLURI: `http://localhost:${targetPort}/graphql`
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
const app = express();
|
|
65
|
-
apolloServer.applyMiddleware({ app });
|
|
66
|
-
|
|
67
|
-
const { port, close } = await listen({ app, port: 0 });
|
|
68
|
-
const query = createGraphqlClient(port);
|
|
69
|
-
|
|
70
|
-
return { port, close, query };
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
let targetServer;
|
|
74
|
-
let localServer;
|
|
75
|
-
|
|
76
|
-
afterEach(async () => {
|
|
77
|
-
if (localServer) {
|
|
78
|
-
await localServer.close();
|
|
79
|
-
}
|
|
80
|
-
if (targetServer) {
|
|
81
|
-
await targetServer.close();
|
|
82
|
-
}
|
|
83
|
-
localServer = null;
|
|
84
|
-
targetServer = null;
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
test('forwarding queries', async () => {
|
|
88
|
-
targetServer = await createTargetServer();
|
|
89
|
-
localServer = await createLocalServer({ targetPort: targetServer.port });
|
|
90
|
-
|
|
91
|
-
const { data } = await localServer.query({
|
|
92
|
-
query: '{ hello(name: "World") }'
|
|
93
|
-
});
|
|
94
|
-
|
|
95
|
-
expect(data.hello).toBe('Hello World');
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
test('propagating errors', async () => {
|
|
99
|
-
targetServer = await createTargetServer();
|
|
100
|
-
localServer = await createLocalServer({ targetPort: targetServer.port });
|
|
101
|
-
|
|
102
|
-
const query = '{ hello(name: "") }'; // should trigger "Name can't be empty"
|
|
103
|
-
|
|
104
|
-
const { errors: expectedErrors } = await targetServer.query({ query });
|
|
105
|
-
const { errors: actualErrors } = await localServer.query({ query });
|
|
106
|
-
|
|
107
|
-
expect(expectedErrors).toHaveLength(1);
|
|
108
|
-
expect(actualErrors).toHaveLength(1);
|
|
109
|
-
|
|
110
|
-
expect(expectedErrors[0].message).toBe(`Name can't be empty`);
|
|
111
|
-
|
|
112
|
-
expect(actualErrors[0].message).toBe(expectedErrors[0].message);
|
|
113
|
-
expect(actualErrors[0].path).toEqual(expectedErrors[0].path);
|
|
114
|
-
});
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
import { getPreloadLinkHeaderString } from './getPreloadAssets';
|
|
2
|
-
|
|
3
|
-
const preloadAssets = [
|
|
4
|
-
{
|
|
5
|
-
filename: 'static/js/bundle.js',
|
|
6
|
-
scriptType: 'script',
|
|
7
|
-
chunk: 'client',
|
|
8
|
-
url: 'http://localhost:3001/static/js/bundle.js',
|
|
9
|
-
path:
|
|
10
|
-
'/Users/rsingh/Projects/hyperlab/jetshop-flight/packages/template-trend/build/client/static/js/bundle.js',
|
|
11
|
-
type: 'mainAsset',
|
|
12
|
-
linkType: 'preload'
|
|
13
|
-
},
|
|
14
|
-
{
|
|
15
|
-
filename:
|
|
16
|
-
'static/js/vendors~Auth-ForgotPassword~Auth-LogInPage~Auth-ResetPassword~Auth-Signup-SignUpPage~MyPages-MyPages~2700bb12.chunk.js',
|
|
17
|
-
scriptType: 'script',
|
|
18
|
-
chunk: 'ProductPage-ProductPage',
|
|
19
|
-
url:
|
|
20
|
-
'http://localhost:3001/static/js/vendors~Auth-ForgotPassword~Auth-LogInPage~Auth-ResetPassword~Auth-Signup-SignUpPage~MyPages-MyPages~2700bb12.chunk.js',
|
|
21
|
-
path:
|
|
22
|
-
'/Users/rsingh/Projects/hyperlab/jetshop-flight/packages/template-trend/build/client/static/js/vendors~Auth-ForgotPassword~Auth-LogInPage~Auth-ResetPassword~Auth-Signup-SignUpPage~MyPages-MyPages~2700bb12.chunk.js',
|
|
23
|
-
type: 'mainAsset',
|
|
24
|
-
linkType: 'preload'
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
filename:
|
|
28
|
-
'static/js/vendors~ProductPage-ProductPage~SearchPage-SearchPage~StandardCategoryPage~WindowedCategoryPage.chunk.js',
|
|
29
|
-
scriptType: 'script',
|
|
30
|
-
chunk: 'ProductPage-ProductPage',
|
|
31
|
-
url:
|
|
32
|
-
'http://localhost:3001/static/js/vendors~ProductPage-ProductPage~SearchPage-SearchPage~StandardCategoryPage~WindowedCategoryPage.chunk.js',
|
|
33
|
-
path:
|
|
34
|
-
'/Users/rsingh/Projects/hyperlab/jetshop-flight/packages/template-trend/build/client/static/js/vendors~ProductPage-ProductPage~SearchPage-SearchPage~StandardCategoryPage~WindowedCategoryPage.chunk.js',
|
|
35
|
-
type: 'mainAsset',
|
|
36
|
-
linkType: 'preload'
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
filename: 'static/css/vendors~ProductPage-ProductPage.chunk.css',
|
|
40
|
-
scriptType: 'style',
|
|
41
|
-
chunk: 'ProductPage-ProductPage',
|
|
42
|
-
url:
|
|
43
|
-
'http://localhost:3001/static/css/vendors~ProductPage-ProductPage.chunk.css',
|
|
44
|
-
path:
|
|
45
|
-
'/Users/rsingh/Projects/hyperlab/jetshop-flight/packages/template-trend/build/client/static/css/vendors~ProductPage-ProductPage.chunk.css',
|
|
46
|
-
type: 'mainAsset',
|
|
47
|
-
linkType: 'preload'
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
filename: 'static/js/vendors~ProductPage-ProductPage.chunk.js',
|
|
51
|
-
scriptType: 'script',
|
|
52
|
-
chunk: 'ProductPage-ProductPage',
|
|
53
|
-
url:
|
|
54
|
-
'http://localhost:3001/static/js/vendors~ProductPage-ProductPage.chunk.js',
|
|
55
|
-
path:
|
|
56
|
-
'/Users/rsingh/Projects/hyperlab/jetshop-flight/packages/template-trend/build/client/static/js/vendors~ProductPage-ProductPage.chunk.js',
|
|
57
|
-
type: 'mainAsset',
|
|
58
|
-
linkType: 'preload'
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
filename:
|
|
62
|
-
'static/js/Auth-ForgotPassword~Auth-LogInPage~Auth-ResetPassword~Auth-Signup-SignUpPage~MyPages-MyPages~Product~4afdd4cd.chunk.js',
|
|
63
|
-
scriptType: 'script',
|
|
64
|
-
chunk: 'ProductPage-ProductPage',
|
|
65
|
-
url:
|
|
66
|
-
'http://localhost:3001/static/js/Auth-ForgotPassword~Auth-LogInPage~Auth-ResetPassword~Auth-Signup-SignUpPage~MyPages-MyPages~Product~4afdd4cd.chunk.js',
|
|
67
|
-
path:
|
|
68
|
-
'/Users/rsingh/Projects/hyperlab/jetshop-flight/packages/template-trend/build/client/static/js/Auth-ForgotPassword~Auth-LogInPage~Auth-ResetPassword~Auth-Signup-SignUpPage~MyPages-MyPages~Product~4afdd4cd.chunk.js',
|
|
69
|
-
type: 'mainAsset',
|
|
70
|
-
linkType: 'preload'
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
filename:
|
|
74
|
-
'static/js/ProductPage-ProductPage~SearchPage-SearchPage~StandardCategoryPage~StartPage-StartPage~WindowedCategoryPage.chunk.js',
|
|
75
|
-
scriptType: 'script',
|
|
76
|
-
chunk: 'ProductPage-ProductPage',
|
|
77
|
-
url:
|
|
78
|
-
'http://localhost:3001/static/js/ProductPage-ProductPage~SearchPage-SearchPage~StandardCategoryPage~StartPage-StartPage~WindowedCategoryPage.chunk.js',
|
|
79
|
-
path:
|
|
80
|
-
'/Users/rsingh/Projects/hyperlab/jetshop-flight/packages/template-trend/build/client/static/js/ProductPage-ProductPage~SearchPage-SearchPage~StandardCategoryPage~StartPage-StartPage~WindowedCategoryPage.chunk.js',
|
|
81
|
-
type: 'mainAsset',
|
|
82
|
-
linkType: 'preload'
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
filename:
|
|
86
|
-
'static/js/ProductPage-ProductPage~SearchPage-SearchPage~StandardCategoryPage~WindowedCategoryPage.chunk.js',
|
|
87
|
-
scriptType: 'script',
|
|
88
|
-
chunk: 'ProductPage-ProductPage',
|
|
89
|
-
url:
|
|
90
|
-
'http://localhost:3001/static/js/ProductPage-ProductPage~SearchPage-SearchPage~StandardCategoryPage~WindowedCategoryPage.chunk.js',
|
|
91
|
-
path:
|
|
92
|
-
'/Users/rsingh/Projects/hyperlab/jetshop-flight/packages/template-trend/build/client/static/js/ProductPage-ProductPage~SearchPage-SearchPage~StandardCategoryPage~WindowedCategoryPage.chunk.js',
|
|
93
|
-
type: 'mainAsset',
|
|
94
|
-
linkType: 'preload'
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
filename:
|
|
98
|
-
'static/js/MyPages-MyPages~ProductPage-ProductPage~StandardCategoryPage~WindowedCategoryPage.chunk.js',
|
|
99
|
-
scriptType: 'script',
|
|
100
|
-
chunk: 'ProductPage-ProductPage',
|
|
101
|
-
url:
|
|
102
|
-
'http://localhost:3001/static/js/MyPages-MyPages~ProductPage-ProductPage~StandardCategoryPage~WindowedCategoryPage.chunk.js',
|
|
103
|
-
path:
|
|
104
|
-
'/Users/rsingh/Projects/hyperlab/jetshop-flight/packages/template-trend/build/client/static/js/MyPages-MyPages~ProductPage-ProductPage~StandardCategoryPage~WindowedCategoryPage.chunk.js',
|
|
105
|
-
type: 'mainAsset',
|
|
106
|
-
linkType: 'preload'
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
filename: 'static/js/ProductPage-ProductPage.chunk.js',
|
|
110
|
-
scriptType: 'script',
|
|
111
|
-
chunk: 'ProductPage-ProductPage',
|
|
112
|
-
url: 'http://localhost:3001/static/js/ProductPage-ProductPage.chunk.js',
|
|
113
|
-
path:
|
|
114
|
-
'/Users/rsingh/Projects/hyperlab/jetshop-flight/packages/template-trend/build/client/static/js/ProductPage-ProductPage.chunk.js',
|
|
115
|
-
type: 'mainAsset',
|
|
116
|
-
linkType: 'preload'
|
|
117
|
-
}
|
|
118
|
-
];
|
|
119
|
-
|
|
120
|
-
describe('Get Preload Assets', () => {
|
|
121
|
-
it('Will generate a Link header string with a set of preload assets including css and js', () => {
|
|
122
|
-
expect(getPreloadLinkHeaderString(preloadAssets)).toMatchSnapshot();
|
|
123
|
-
});
|
|
124
|
-
|
|
125
|
-
it('Will return an empty string if there are no preload assets', () => {
|
|
126
|
-
expect(getPreloadLinkHeaderString([])).toEqual('');
|
|
127
|
-
});
|
|
128
|
-
|
|
129
|
-
it('Will return an empty string if preload assets are undefined or null', () => {
|
|
130
|
-
expect(getPreloadLinkHeaderString(undefined)).toEqual('');
|
|
131
|
-
expect(getPreloadLinkHeaderString(null)).toEqual('');
|
|
132
|
-
});
|
|
133
|
-
});
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ApolloConfig } from '../../../components/ConfigProvider';
|
|
2
|
-
import { CreateClientOpts } from '../../apollo';
|
|
3
|
-
export type PersistedQueries = ApolloConfig['persistedQueries'];
|
|
4
|
-
export type PersistedQuery = ApolloConfig['persistedQueries'][0];
|
|
5
|
-
export type ChannelHeaders = {
|
|
6
|
-
currency: string;
|
|
7
|
-
channelid: number;
|
|
8
|
-
culture: string;
|
|
9
|
-
country: string;
|
|
10
|
-
name: string;
|
|
11
|
-
} | {};
|
|
12
|
-
export declare class PersistedClient {
|
|
13
|
-
private intervalQueries;
|
|
14
|
-
private opts;
|
|
15
|
-
constructor(opts: CreateClientOpts & {
|
|
16
|
-
headers?: ChannelHeaders;
|
|
17
|
-
});
|
|
18
|
-
private watch;
|
|
19
|
-
private getPendingResponse;
|
|
20
|
-
private combineCaches;
|
|
21
|
-
extractCache(): Promise<any>;
|
|
22
|
-
}
|
|
@@ -1,58 +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
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
11
|
-
var t = {};
|
|
12
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
13
|
-
t[p] = s[p];
|
|
14
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
15
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
16
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
17
|
-
t[p[i]] = s[p[i]];
|
|
18
|
-
}
|
|
19
|
-
return t;
|
|
20
|
-
};
|
|
21
|
-
import merge from 'lodash.merge';
|
|
22
|
-
import { IntervalQuery } from '../IntervalQuery';
|
|
23
|
-
export class PersistedClient {
|
|
24
|
-
constructor(opts) {
|
|
25
|
-
this.intervalQueries = [];
|
|
26
|
-
this.opts = opts;
|
|
27
|
-
this.watch(this.opts.apolloConfig.persistedQueries);
|
|
28
|
-
}
|
|
29
|
-
watch(queries = []) {
|
|
30
|
-
const _a = this.opts, { headers } = _a, createClientOpts = __rest(_a, ["headers"]);
|
|
31
|
-
const intervalQueries = queries.map(({ query, variables }) => {
|
|
32
|
-
return new IntervalQuery({
|
|
33
|
-
query,
|
|
34
|
-
variables,
|
|
35
|
-
createClientOpts,
|
|
36
|
-
headers,
|
|
37
|
-
pollInterval: 30000
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
this.intervalQueries = intervalQueries;
|
|
41
|
-
}
|
|
42
|
-
getPendingResponse() {
|
|
43
|
-
return this.intervalQueries.map(iq => iq.getPendingResponse());
|
|
44
|
-
}
|
|
45
|
-
combineCaches() {
|
|
46
|
-
const extractedCaches = this.intervalQueries.map(iq => iq.extractCache());
|
|
47
|
-
return extractedCaches.reduce((prev, curr) => {
|
|
48
|
-
return merge(prev, curr);
|
|
49
|
-
}, {});
|
|
50
|
-
}
|
|
51
|
-
extractCache() {
|
|
52
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
-
yield Promise.all(this.getPendingResponse());
|
|
54
|
-
return this.combineCaches();
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
//# sourceMappingURL=PersistedClient.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PersistedClient.js","sourceRoot":"","sources":["PersistedClient.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,cAAc,CAAC;AAGjC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAejD,MAAM,OAAO,eAAe;IAI1B,YAAY,IAAqD;QAHzD,oBAAe,GAAyB,EAAE,CAAC;QAIjD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;IACtD,CAAC;IACO,KAAK,CAAC,UAA4B,EAAE;QAC1C,MAAM,KAAmC,IAAI,CAAC,IAAI,EAA5C,EAAE,OAAO,OAAmC,EAA9B,gBAAgB,cAA9B,WAAgC,CAAY,CAAC;QAEnD,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE;YAC3D,OAAO,IAAI,aAAa,CAAC;gBACvB,KAAK;gBACL,SAAS;gBACT,gBAAgB;gBAChB,OAAO;gBACP,YAAY,EAAE,KAAK;aACpB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IACO,kBAAkB;QACxB,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACjE,CAAC;IACO,aAAa;QACnB,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;QAE1E,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YAC3C,OAAO,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC,EAAE,EAAE,CAAC,CAAC;IACT,CAAC;IACY,YAAY;;YACvB,MAAM,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC;YAE7C,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9B,CAAC;KAAA;CACF"}
|