@jetshop/core 1.1.13-no-proxy.4 → 1.1.13-no-proxy.5
Sign up to get free protection for your applications and to get access to all the features.
- package/boot/server/createApolloServer.js +7 -6
- package/boot/server/createApolloServer.js.map +1 -1
- package/boot/server/createDevServer.js +0 -1
- package/boot/server/createDevServer.js.map +1 -1
- package/boot/server/createRenderer.d.ts +1 -1
- package/boot/server/createRenderer.js +57 -42
- package/boot/server/createRenderer.js.map +1 -1
- package/boot/server/index.js +1 -1
- package/boot/server/index.js.map +1 -1
- package/boot/server/listen.d.ts +0 -3
- package/boot/server/listen.js +0 -1
- package/boot/server/listen.js.map +1 -1
- package/package.json +2 -3
- package/polyfills.js +5 -1
- package/polyfills.js.map +1 -1
- package/boot/server/renderToStream.d.ts +0 -17
- package/boot/server/renderToStream.js +0 -105
- package/boot/server/renderToStream.js.map +0 -1
@@ -79,6 +79,11 @@ export default function createApolloServer({ apolloConfig, extensions = [] }) {
|
|
79
79
|
schemas,
|
80
80
|
resolvers
|
81
81
|
});
|
82
|
+
const engine = apolloConfig.engineApiKey
|
83
|
+
? {
|
84
|
+
apiKey: apolloConfig.engineApiKey
|
85
|
+
}
|
86
|
+
: false;
|
82
87
|
const apolloServer = new ApolloServer({
|
83
88
|
schema,
|
84
89
|
// Disable introspection in production
|
@@ -93,13 +98,9 @@ export default function createApolloServer({ apolloConfig, extensions = [] }) {
|
|
93
98
|
persistedQueries: {
|
94
99
|
cache: new InMemoryLRUCache()
|
95
100
|
},
|
96
|
-
|
97
|
-
tracing: !!apolloConfig.engineApiKey,
|
101
|
+
tracing: false,
|
98
102
|
cacheControl: true,
|
99
|
-
|
100
|
-
// integrated metric reporting and fall-back to using the Apollo
|
101
|
-
// Engine Proxy (running separately) for metric collection.
|
102
|
-
engine: false
|
103
|
+
engine
|
103
104
|
});
|
104
105
|
return { apolloServer, schema };
|
105
106
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"createApolloServer.js","sourceRoot":"","sources":["createApolloServer.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,0BAA0B,EAC1B,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,uDAAuD,CAAC;AACrG,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,MAAM,GAAG,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAClC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AACpC,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;AAEtC,OAAO;AACP,8EAA8E;AAC9E,2EAA2E;AAC3E,2DAA2D;AAC3D,8DAA8D;AAC9D,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,CACpC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,4BAA4B,CAC9C,CAAC;AACF,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAChC,QAAQ;AAER,MAAM,gBAAgB,GAAG;IACvB,eAAe;IACf,WAAW;IACX,SAAS;IACT,SAAS;IACT,UAAU;CACX,CAAC;AA4BF,SAAe,eAAe,CAAC,EAC7B,YAAY,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,EAG5C;;QACC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC;YACxB,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,KAAY;SACpB,CAAC,CAAC;QAEH,2CAA2C;QAC3C,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;YACvC,OAAO,EAAE;gBACP,KAAK;gBACL,MAAM;aACP;SACF,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEjB,8CAA8C;QAC9C,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;YACnD,MAAM,GAAG,GAAG,OAAO,CAAC,cAAyB,CAAC;YAE9C,OAAO;gBACL,OAAO,kBACL,KAAK;oBACL,MAAM,IACH,GAAG,CAAC,OAAO,CACf;aACF,CAAC;QACJ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEhB,gDAAgD;QAChD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACtD,MAAM,gBAAgB,GAAG,0BAA0B,CAAC;YAClD,MAAM;YACN,IAAI,EAAE,WAAW;SAClB,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IAC1B,CAAC;CAAA;AAED,MAAM,CAAC,OAAO,UAAgB,kBAAkB,CAAC,EAC/C,YAAY,EACZ,UAAU,GAAG,EAAE,EACW;;QAC1B,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAkC,CAAC,YAAY,CAAC,CAAC;QAC9D,IAAI,SAAS,GAAwB,EAAE,CAAC;QAExC,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;YAEjD,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aAC7B;YACD,IAAI,MAAM,CAAC,SAAS,EAAE;gBACpB,KAAK,CAAC,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;aACpC;SACF;QAED,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,OAAO;YACP,SAAS;SACV,CAAC,CAAC;QAEH,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;YACpC,MAAM;YACN,sCAAsC;YACtC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;YACpD,OAAO,EAAE,CAAC,EAAE,GAAG,EAAqB,EAAW,EAAE;gBAC/C,MAAM,eAAe,GAAwB,GAAG,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;gBACrE,MAAM,OAAO,GAAyB,IAAI,CACxC,eAAe,EACf,gBAAgB,CACjB,CAAC;gBAEF,OAAO;oBACL,OAAO;iBACR,CAAC;YACJ,CAAC;YACD,gBAAgB,EAAE;gBAChB,KAAK,EAAE,IAAI,gBAAgB,EAAE;aAC9B;YACD,
|
1
|
+
{"version":3,"file":"createApolloServer.js","sourceRoot":"","sources":["createApolloServer.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"createDevServer.js","sourceRoot":"","sources":["createDevServer.ts"],"names":[],"mappings":";;;;;;;;AACA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,kBAAwC,MAAM,sBAAsB,CAAC;AAC5E,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAQ7B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAO,EACpC,YAAY,EACZ,IAAI,EACJ,gBAAgB,EACO,EAAE,EAAE;IAC3B,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IAEtB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAEhB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC;QAChD,YAAY;QACZ,UAAU,EAAE,gBAAgB;KAC7B,CAAC,CAAC;IAEH,YAAY,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAE3C,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC;QACxC,
|
1
|
+
{"version":3,"file":"createDevServer.js","sourceRoot":"","sources":["createDevServer.ts"],"names":[],"mappings":";;;;;;;;AACA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,kBAAwC,MAAM,sBAAsB,CAAC;AAC5E,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAQ7B,MAAM,CAAC,MAAM,eAAe,GAAG,CAAO,EACpC,YAAY,EACZ,IAAI,EACJ,gBAAgB,EACO,EAAE,EAAE;IAC3B,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;IAEtB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IAEhB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,kBAAkB,CAAC;QAChD,YAAY;QACZ,UAAU,EAAE,gBAAgB;KAC7B,CAAC,CAAC;IAEH,YAAY,CAAC,eAAe,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAE3C,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC;QACxC,GAAG;QACH,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;AAC5C,CAAC,CAAA,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
@@ -21,5 +21,5 @@ export interface RendererOptions {
|
|
21
21
|
declare const createRenderer: (template: string, tree: React.ReactElement<any>, options: RendererOptions) => (req: Request & {
|
22
22
|
universalCookies: any;
|
23
23
|
breakpoint: string;
|
24
|
-
}, res: Response) => Promise<void>;
|
24
|
+
}, res: Response) => Promise<void | Response>;
|
25
25
|
export default createRenderer;
|
@@ -13,22 +13,23 @@ import { getSelectedChannel, getGeoRedirect } from '@jetshop/core/components/Cha
|
|
13
13
|
import { channelsQuery } from '@jetshop/core/data/queries';
|
14
14
|
import { setupIntl } from '@jetshop/intl/config';
|
15
15
|
import IntlContext from '@jetshop/intl/context';
|
16
|
-
import {
|
16
|
+
import { renderStylesToNodeStream } from 'emotion-server';
|
17
17
|
import get from 'lodash.get';
|
18
18
|
import React from 'react';
|
19
|
-
import { ApolloProvider,
|
19
|
+
import { ApolloProvider, getDataFromTree } from 'react-apollo';
|
20
20
|
import { CookiesProvider } from 'react-cookie';
|
21
|
+
import { renderToNodeStream } from 'react-dom/server';
|
21
22
|
import { HelmetProvider } from 'react-helmet-async';
|
22
23
|
import Loadable from 'react-loadable';
|
23
24
|
import { MediaProvider } from 'react-media-universal';
|
24
25
|
import { StaticRouter } from 'react-router-dom';
|
26
|
+
import report from '../../errorReporting';
|
25
27
|
import { createPolyfill } from '../../polyfills';
|
26
28
|
import { createClient } from '../apollo';
|
27
29
|
import AuthProvider from '../../components/AuthContext/AuthProvider';
|
28
30
|
import { getPrefetchFiles, getPrefetchHeader, getPreloadLinksAndScripts } from './getPrefetchFiles';
|
29
|
-
import { renderToString } from 'react-dom/server';
|
30
31
|
const injectDataIntoSlots = (template, data) => Object.keys(data).reduce((output, key) => output.replace(`<slot name="${key}"/>`, data[key]), template);
|
31
|
-
const wrapTree = (tree, req, renderOptions, client, selectedChannel, channels, translator, locale) => {
|
32
|
+
const wrapTree = (tree, req, renderOptions, client, selectedChannel, channels, translator, locale) => __awaiter(this, void 0, void 0, function* () {
|
32
33
|
const modules = [];
|
33
34
|
const routerContext = { url: null, statusCode: 200 };
|
34
35
|
const helmetContext = { helmet: null };
|
@@ -53,30 +54,53 @@ const wrapTree = (tree, req, renderOptions, client, selectedChannel, channels, t
|
|
53
54
|
React.createElement(ChannelProvider, { channels: channels, selectedChannel: selectedChannel },
|
54
55
|
React.createElement(StaticRouter, { location: req.originalUrl, context: routerContext },
|
55
56
|
React.createElement(AuthProvider, null, tree))))))))))));
|
57
|
+
try {
|
58
|
+
yield getDataFromTree(wrappedTree);
|
59
|
+
}
|
60
|
+
catch (e) {
|
61
|
+
// Don't log to Sentry here as we're already logging query errors in a
|
62
|
+
// middleware and JS errors further down in `handleError` and then
|
63
|
+
// again on the client if it fails to recover
|
64
|
+
console.error('Apollo data fetch failed:', e);
|
65
|
+
routerContext.statusCode = 500;
|
66
|
+
}
|
67
|
+
// Serialize the apollo state for client side rehydration. The html comment
|
68
|
+
// (inside js comments) is intentional and prevents inline script tags
|
69
|
+
// inside the extracted state from closing this script tag prematurely
|
70
|
+
const apolloState = `<script>/*<!--*/
|
71
|
+
window.__APOLLO_STATE__=${JSON.stringify(client.extract())};
|
72
|
+
/*-->*/</script>`;
|
56
73
|
return {
|
57
74
|
wrappedTree,
|
58
75
|
modules,
|
59
|
-
|
60
|
-
|
76
|
+
routerUrl: routerContext.url,
|
77
|
+
statusCode: routerContext.statusCode,
|
78
|
+
helmet: helmetContext.helmet,
|
79
|
+
apolloState,
|
61
80
|
polyfill: createPolyfill(locale)
|
62
81
|
};
|
63
|
-
};
|
82
|
+
});
|
64
83
|
const startResponse = ({ res, head, statusCode }) => {
|
65
84
|
res.status(statusCode);
|
66
85
|
// write head and don't end response
|
67
86
|
res.write(head);
|
68
87
|
};
|
69
|
-
const endResponse = ({ res,
|
70
|
-
// Serialize the apollo state for client side rehydration. The html comment
|
71
|
-
// (inside js comments) is intentional and prevents inline script tags
|
72
|
-
// inside the extracted state from closing this script tag prematurely
|
73
|
-
const apolloState = `<script>/*<!--*/
|
74
|
-
window.__APOLLO_STATE__=${JSON.stringify(client.extract())};
|
75
|
-
/*-->*/</script>`;
|
76
|
-
res.write(apolloState);
|
88
|
+
const endResponse = ({ res, foot }) => {
|
77
89
|
res.write(foot);
|
78
90
|
res.end();
|
79
91
|
};
|
92
|
+
const handleError = ({ streamName, res, foot }) => (error) => {
|
93
|
+
report(error, { reason: streamName });
|
94
|
+
console.error(`Error in stream "${streamName}":`, error);
|
95
|
+
// we need to make sure that res.write gets a string
|
96
|
+
// cause if it does not get a string/buffer it will cause
|
97
|
+
// the server to crash
|
98
|
+
// error can be literally anything, not limited to Error,
|
99
|
+
// which means the key message could be missing
|
100
|
+
const chunk = (error && error.message) || '' + error;
|
101
|
+
res.write(chunk);
|
102
|
+
endResponse({ res, foot });
|
103
|
+
};
|
80
104
|
const createRenderer = (template, tree, options) => (req, res) => __awaiter(this, void 0, void 0, function* () {
|
81
105
|
const { apolloConfig, preloadStats, intl } = options;
|
82
106
|
// Set response headers immediately
|
@@ -98,25 +122,9 @@ const createRenderer = (template, tree, options) => (req, res) => __awaiter(this
|
|
98
122
|
defaultLocale: intl.defaultLocale,
|
99
123
|
options: intl.options
|
100
124
|
});
|
101
|
-
const { wrappedTree, modules,
|
102
|
-
|
103
|
-
|
104
|
-
try {
|
105
|
-
response = yield getMarkupFromTree({
|
106
|
-
tree: wrappedTree,
|
107
|
-
renderFunction: tree => renderStylesToString(renderToString(tree))
|
108
|
-
});
|
109
|
-
}
|
110
|
-
catch (e) {
|
111
|
-
// Don't log to Sentry here as we're already logging query errors in a
|
112
|
-
// middleware and JS errors further down in `handleError` and then
|
113
|
-
// again on the client if it fails to recover
|
114
|
-
console.error('Apollo data fetch failed:', e);
|
115
|
-
response = e;
|
116
|
-
statusCode = 500;
|
117
|
-
}
|
118
|
-
if (routerContext.url) {
|
119
|
-
return res.redirect(301, routerContext.url);
|
125
|
+
const { wrappedTree, modules, routerUrl, statusCode, helmet: { title, meta }, apolloState, polyfill } = yield wrapTree(tree, req, options, client, selectedChannel, channels, translator, locale);
|
126
|
+
if (routerUrl) {
|
127
|
+
return res.redirect(301, routerUrl);
|
120
128
|
}
|
121
129
|
const prefetchFiles = getPrefetchFiles({
|
122
130
|
locale,
|
@@ -129,21 +137,28 @@ const createRenderer = (template, tree, options) => (req, res) => __awaiter(this
|
|
129
137
|
}
|
130
138
|
const { preloadLinks, preloadScripts } = getPreloadLinksAndScripts(prefetchFiles);
|
131
139
|
const data = {
|
140
|
+
apolloState,
|
132
141
|
polyfill,
|
133
142
|
preloadLinks,
|
134
143
|
preloadScripts,
|
135
|
-
title:
|
136
|
-
meta:
|
144
|
+
title: title.toString(),
|
145
|
+
meta: meta.toString()
|
137
146
|
};
|
138
147
|
const html = injectDataIntoSlots(template, data);
|
139
148
|
const [head, foot] = html.split('<slot name="html"/>');
|
140
|
-
startResponse({
|
141
|
-
|
142
|
-
|
143
|
-
|
149
|
+
startResponse({ res, head, statusCode });
|
150
|
+
// create node stream
|
151
|
+
const stream = renderToNodeStream(wrappedTree)
|
152
|
+
.on('error', handleError({ streamName: 'React NodeStream', res, foot }))
|
153
|
+
// pipe it to emotion-server node stream
|
154
|
+
.pipe(renderStylesToNodeStream())
|
155
|
+
.on('error', handleError({ streamName: 'Styles', res, foot }))
|
156
|
+
// on node stream end, write the foot part of the html and end the response
|
157
|
+
.on('end', () => {
|
158
|
+
endResponse({ res, foot });
|
144
159
|
});
|
145
|
-
|
146
|
-
|
160
|
+
// then pipe it to response, and tell it to not end the response
|
161
|
+
return stream.pipe(res, { end: false });
|
147
162
|
});
|
148
163
|
export default createRenderer;
|
149
164
|
//# sourceMappingURL=createRenderer.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"createRenderer.js","sourceRoot":"","sources":["createRenderer.tsx"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,iBAAiB,MAAM,2CAA2C,CAAC;AAE1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC1E,OAAO,EACL,kBAAkB,EAClB,cAAc,EACf,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,WAAW,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"createRenderer.js","sourceRoot":"","sources":["createRenderer.tsx"],"names":[],"mappings":"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"}
|
package/boot/server/index.js
CHANGED
@@ -44,7 +44,7 @@ const boot = (Component, { apolloConfig, trackingID, tagManagerID, sentryServerD
|
|
44
44
|
});
|
45
45
|
app.use(asyncErrorHandler(renderer));
|
46
46
|
const port = parseInt(process.env.PORT, 10) || 3000;
|
47
|
-
yield listen({ app, port
|
47
|
+
yield listen({ app, port });
|
48
48
|
console.log(`🚀 App ready at http://localhost:${port}`);
|
49
49
|
});
|
50
50
|
export default boot;
|
package/boot/server/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AAEpE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,MAAM,MAAM,UAAU,CAAC;AAG9B,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,MAAM,qCAAqC,CAAC;AAExD,8EAA8E;AAC9E,iGAAiG;AACjG,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,GAAG,QAAQ,CAAC;AAEtE,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC;AACpD,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,GAAG,sBAAsB,CAAC;AA2BlE,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AAEhE,MAAM,IAAI,GAAG,CACX,SAA4B,EAC5B,EACE,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,gBAAgB,EACJ,EACd,EAAE;IACF,IAAI,CAAC,kBAAkB,CAAC,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,EAAE;QAC1D,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,IAAI,cAAc,CAAC,eAAe,CAAC,KAAK,KAAK,EAAE;QAC7C,OAAO,CAAC,KAAK,CACX,kDAAkD;YAChD,+CAA+C,CAClD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5E,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;IAErC,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE;QACnD,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,YAAY;QACZ,IAAI;QACJ,gBAAgB;KACjB,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAErC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;IAEpD,MAAM,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB,OAAO,kBAAkB,MAAM,oCAAoC,CAAC;AAEpE,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,MAAM,MAAM,UAAU,CAAC;AAG9B,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,OAAO,KAAK,MAAM,qCAAqC,CAAC;AAExD,8EAA8E;AAC9E,iGAAiG;AACjG,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,IAAI,CAAC,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,GAAG,QAAQ,CAAC;AAEtE,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAC;AACpD,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,GAAG,sBAAsB,CAAC;AA2BlE,MAAM,cAAc,GAAG,CAAC,GAAW,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AAEhE,MAAM,IAAI,GAAG,CACX,SAA4B,EAC5B,EACE,YAAY,EACZ,UAAU,EACV,YAAY,EACZ,eAAe,EACf,IAAI,EACJ,gBAAgB,EACJ,EACd,EAAE;IACF,IAAI,CAAC,kBAAkB,CAAC,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC,EAAE;QAC1D,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,IAAI,cAAc,CAAC,eAAe,CAAC,KAAK,KAAK,EAAE;QAC7C,OAAO,CAAC,KAAK,CACX,kDAAkD;YAChD,+CAA+C,CAClD,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;IAED,MAAM,QAAQ,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC,CAAC;IAE5E,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,YAAY,EAAE,CAAC;IAErC,MAAM,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE;QACnD,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,YAAY;QACZ,IAAI;QACJ,gBAAgB;KACjB,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAErC,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC;IAEpD,MAAM,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IAE5B,OAAO,CAAC,GAAG,CAAC,qCAAqC,IAAI,EAAE,CAAC,CAAC;AAC3D,CAAC,CAAA,CAAC;AAEF,eAAe,IAAI,CAAC"}
|
package/boot/server/listen.d.ts
CHANGED
@@ -1,13 +1,10 @@
|
|
1
|
-
import { ApolloConfig } from '@jetshop/core/boot/apollo';
|
2
1
|
import { Application as ExpressApp } from 'express';
|
3
2
|
export interface ListenOptions {
|
4
3
|
app: ExpressApp;
|
5
4
|
port: number;
|
6
|
-
apolloConfig: ApolloConfig;
|
7
5
|
}
|
8
6
|
/**
|
9
7
|
* - Starts listening to `port`
|
10
|
-
* - Wraps Express server in Apollo Engine if `apolloConfig.engineApiKey` is set
|
11
8
|
*/
|
12
9
|
declare const listen: ({ app, port }: ListenOptions) => Promise<{
|
13
10
|
port: number;
|
package/boot/server/listen.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"listen.js","sourceRoot":"","sources":["listen.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"listen.js","sourceRoot":"","sources":["listen.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAiB,EAA6B,EAAE,CACzE,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;IAC9B,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,GAAW,EAAE,EAAE;QAChD,GAAG;YACD,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACb,CAAC,CAAC,OAAO,CAAC;gBACN,IAAI,EAAG,IAAI,CAAC,OAAO,EAAoB,CAAC,IAAI;aAC7C,CAAC,CAAC;IACT,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,eAAe,MAAM,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@jetshop/core",
|
3
|
-
"version": "1.1.13-no-proxy.
|
3
|
+
"version": "1.1.13-no-proxy.5",
|
4
4
|
"main": "index.js",
|
5
5
|
"license": "MIT",
|
6
6
|
"dependencies": {
|
@@ -10,7 +10,7 @@
|
|
10
10
|
"@types/lodash.get": "^4.4.4",
|
11
11
|
"@types/lodash.merge": "^4.6.4",
|
12
12
|
"@types/lodash.pick": "^4.4.4",
|
13
|
-
"@types/node": "^
|
13
|
+
"@types/node": "^10.12.12",
|
14
14
|
"@types/node-fetch": "^2.1.2",
|
15
15
|
"@types/qs": "^6.5.1",
|
16
16
|
"@types/react": "^16.4.18",
|
@@ -19,7 +19,6 @@
|
|
19
19
|
"@types/react-loadable": "^5.4.1",
|
20
20
|
"apollo-cache-inmemory": "^1.3.9",
|
21
21
|
"apollo-client": "^2.4.5",
|
22
|
-
"apollo-engine": "^1.1.2",
|
23
22
|
"apollo-link": "^1.2.3",
|
24
23
|
"apollo-link-context": "^1.0.9",
|
25
24
|
"apollo-link-error": "^1.1.1",
|
package/polyfills.js
CHANGED
@@ -11,7 +11,11 @@ const polyfills = (locale) => [
|
|
11
11
|
'String.prototype.endsWith',
|
12
12
|
'String.prototype.startsWith',
|
13
13
|
'Object.keys',
|
14
|
+
'IntersectionObserver',
|
14
15
|
`Intl.~locale.${locale}`
|
15
16
|
];
|
16
|
-
export const createPolyfill = (locale) =>
|
17
|
+
export const createPolyfill = (locale) => {
|
18
|
+
const features = polyfills(locale).join(',');
|
19
|
+
return `<script async defer src="//cdn.polyfill.io/v2/polyfill${process.env.NODE_ENV === 'production' ? '.min' : ''}.js?features=${features}&flags=gated&callback=bootShop"></script>`;
|
20
|
+
};
|
17
21
|
//# sourceMappingURL=polyfills.js.map
|
package/polyfills.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"polyfills.js","sourceRoot":"","sources":["polyfills.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC;IACpC,KAAK;IACL,YAAY;IACZ,sBAAsB;IACtB,eAAe;IACf,gBAAgB;IAChB,sBAAsB;IACtB,2BAA2B;IAC3B,0BAA0B;IAC1B,sBAAsB;IACtB,2BAA2B;IAC3B,6BAA6B;IAC7B,aAAa;IACb,gBAAgB,MAAM,EAAE;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE
|
1
|
+
{"version":3,"file":"polyfills.js","sourceRoot":"","sources":["polyfills.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC;IACpC,KAAK;IACL,YAAY;IACZ,sBAAsB;IACtB,eAAe;IACf,gBAAgB;IAChB,sBAAsB;IACtB,2BAA2B;IAC3B,0BAA0B;IAC1B,sBAAsB;IACtB,2BAA2B;IAC3B,6BAA6B;IAC7B,aAAa;IACb,sBAAsB;IACtB,gBAAgB,MAAM,EAAE;CACzB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,EAAE;IAC/C,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO,yDACL,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACnD,gBAAgB,QAAQ,2CAA2C,CAAC;AACtE,CAAC,CAAC"}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import { Query } from 'react-apollo';
|
3
|
-
export declare class RenderPromises {
|
4
|
-
private queryPromises;
|
5
|
-
private queryGraveyard;
|
6
|
-
addQueryPromise<TData, TVariables>(queryInstance: Query<TData, TVariables>, finish: () => React.ReactNode): React.ReactNode;
|
7
|
-
hasPromises(): boolean;
|
8
|
-
consumeAndAwaitPromises(): Promise<any[]>;
|
9
|
-
}
|
10
|
-
export declare type GetMarkupFromTreeOptions = {
|
11
|
-
tree: React.ReactNode;
|
12
|
-
context?: {
|
13
|
-
[key: string]: any;
|
14
|
-
};
|
15
|
-
renderFunction?: (tree: React.ReactElement<any>) => NodeJS.ReadableStream;
|
16
|
-
};
|
17
|
-
export default function renderToStream({ tree, context, renderFunction }: GetMarkupFromTreeOptions): Promise<NodeJS.ReadableStream>;
|
@@ -1,105 +0,0 @@
|
|
1
|
-
import * as React from 'react';
|
2
|
-
import { renderToNodeStream } from 'react-dom/server';
|
3
|
-
import * as PropTypes from 'prop-types';
|
4
|
-
// Like a Set, but for tuples. In practice, this class is used to store
|
5
|
-
// (query, JSON.stringify(variables)) tuples.
|
6
|
-
class Trie {
|
7
|
-
constructor() {
|
8
|
-
this.children = null;
|
9
|
-
this.added = false;
|
10
|
-
}
|
11
|
-
has(...keys) {
|
12
|
-
let node = this;
|
13
|
-
return (keys.every(key => {
|
14
|
-
const child = node.children && node.children.get(key);
|
15
|
-
return !!(child && (node = child));
|
16
|
-
}) && node.added);
|
17
|
-
}
|
18
|
-
add(...keys) {
|
19
|
-
let node = this;
|
20
|
-
keys.forEach(key => {
|
21
|
-
const map = node.children || (node.children = new Map());
|
22
|
-
const child = map.get(key);
|
23
|
-
if (child) {
|
24
|
-
node = child;
|
25
|
-
}
|
26
|
-
else {
|
27
|
-
map.set(key, (node = new Trie()));
|
28
|
-
}
|
29
|
-
});
|
30
|
-
node.added = true;
|
31
|
-
}
|
32
|
-
}
|
33
|
-
export class RenderPromises {
|
34
|
-
constructor() {
|
35
|
-
// Map from Query component instances to pending fetchData promises.
|
36
|
-
this.queryPromises = new Map();
|
37
|
-
// A way of remembering queries we've seen during previous renderings,
|
38
|
-
// so that we never attempt to fetch them again in future renderings.
|
39
|
-
this.queryGraveyard = new Trie();
|
40
|
-
}
|
41
|
-
addQueryPromise(queryInstance, finish) {
|
42
|
-
const { query, variables } = queryInstance.props;
|
43
|
-
if (!this.queryGraveyard.has(query, JSON.stringify(variables))) {
|
44
|
-
this.queryPromises.set(queryInstance, new Promise(resolve => {
|
45
|
-
resolve(queryInstance.fetchData());
|
46
|
-
}));
|
47
|
-
// Render null to abandon this subtree for this rendering, so that we
|
48
|
-
// can wait for the data to arrive.
|
49
|
-
return null;
|
50
|
-
}
|
51
|
-
return finish();
|
52
|
-
}
|
53
|
-
hasPromises() {
|
54
|
-
return this.queryPromises.size > 0;
|
55
|
-
}
|
56
|
-
consumeAndAwaitPromises() {
|
57
|
-
const promises = [];
|
58
|
-
this.queryPromises.forEach((promise, queryInstance) => {
|
59
|
-
const { query, variables } = queryInstance.props;
|
60
|
-
// Make sure we never try to call fetchData for this query document and
|
61
|
-
// these variables again. Since the queryInstance objects change with
|
62
|
-
// every rendering, deduplicating them by query and variables is the
|
63
|
-
// best we can do. If a different Query component happens to have the
|
64
|
-
// same query document and variables, it will be immediately rendered
|
65
|
-
// by calling finish() in addQueryPromise, which could result in the
|
66
|
-
// rendering of an unwanted loading state, but that's not nearly as bad
|
67
|
-
// as getting stuck in an infinite rendering loop because we kept calling
|
68
|
-
// queryInstance.fetchData for the same Query component indefinitely.
|
69
|
-
this.queryGraveyard.add(query, JSON.stringify(variables));
|
70
|
-
promises.push(promise);
|
71
|
-
});
|
72
|
-
this.queryPromises.clear();
|
73
|
-
return Promise.all(promises);
|
74
|
-
}
|
75
|
-
}
|
76
|
-
export default function renderToStream({ tree, context = {}, renderFunction = renderToNodeStream }) {
|
77
|
-
const renderPromises = new RenderPromises();
|
78
|
-
class RenderPromisesProvider extends React.Component {
|
79
|
-
getChildContext() {
|
80
|
-
return Object.assign({}, context, { renderPromises });
|
81
|
-
}
|
82
|
-
render() {
|
83
|
-
// Always re-render from the rootElement, even though it might seem
|
84
|
-
// better to render the children of the component responsible for the
|
85
|
-
// promise, because it is not possible to reconstruct the full context
|
86
|
-
// of the original rendering (including all unknown context provider
|
87
|
-
// elements) for a subtree of the orginal component tree.
|
88
|
-
return tree;
|
89
|
-
}
|
90
|
-
}
|
91
|
-
RenderPromisesProvider.childContextTypes = {
|
92
|
-
renderPromises: PropTypes.object
|
93
|
-
};
|
94
|
-
Object.keys(context).forEach(key => {
|
95
|
-
RenderPromisesProvider.childContextTypes[key] = PropTypes.any;
|
96
|
-
});
|
97
|
-
function process() {
|
98
|
-
const stream = renderFunction(React.createElement(RenderPromisesProvider));
|
99
|
-
return renderPromises.hasPromises()
|
100
|
-
? renderPromises.consumeAndAwaitPromises().then(process)
|
101
|
-
: stream;
|
102
|
-
}
|
103
|
-
return Promise.resolve().then(process);
|
104
|
-
}
|
105
|
-
//# sourceMappingURL=renderToStream.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"renderToStream.js","sourceRoot":"","sources":["renderToStream.ts"],"names":[],"mappings":"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"}
|