@quilted/quilt 0.0.0-fix-react-types-20220320044002
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/CHANGELOG.md +104 -0
- package/build/cjs/App.cjs +37 -0
- package/build/cjs/email.cjs +32 -0
- package/build/cjs/env.cjs +2 -0
- package/build/cjs/global.cjs +5 -0
- package/build/cjs/html.cjs +112 -0
- package/build/cjs/http-handlers/index.cjs +14 -0
- package/build/cjs/http-handlers/node.cjs +14 -0
- package/build/cjs/http.cjs +108 -0
- package/build/cjs/index.cjs +166 -0
- package/build/cjs/matchers.cjs +5 -0
- package/build/cjs/polyfills/base.cjs +4 -0
- package/build/cjs/polyfills/fetch.cjs +4 -0
- package/build/cjs/polyfills/noop.cjs +4 -0
- package/build/cjs/react/index.cjs +22 -0
- package/build/cjs/react/jsx-runtime.cjs +14 -0
- package/build/cjs/react/server.cjs +14 -0
- package/build/cjs/react/test-utils.cjs +14 -0
- package/build/cjs/server/ServerContext.cjs +22 -0
- package/build/cjs/server/http-handler.cjs +87 -0
- package/build/cjs/server/index.cjs +89 -0
- package/build/cjs/server/render.cjs +44 -0
- package/build/cjs/static/StaticContext.cjs +22 -0
- package/build/cjs/static/index.cjs +302 -0
- package/build/cjs/static/render.cjs +44 -0
- package/build/cjs/testing.cjs +42 -0
- package/build/cjs/utilities/react.cjs +14 -0
- package/build/esm/App.mjs +33 -0
- package/build/esm/email.mjs +1 -0
- package/build/esm/env.mjs +1 -0
- package/build/esm/global.mjs +3 -0
- package/build/esm/html.mjs +1 -0
- package/build/esm/http-handlers/index.mjs +1 -0
- package/build/esm/http-handlers/node.mjs +1 -0
- package/build/esm/http.mjs +1 -0
- package/build/esm/index.mjs +10 -0
- package/build/esm/matchers.mjs +2 -0
- package/build/esm/polyfills/base.mjs +1 -0
- package/build/esm/polyfills/fetch.mjs +1 -0
- package/build/esm/polyfills/noop.mjs +1 -0
- package/build/esm/react/index.mjs +2 -0
- package/build/esm/react/jsx-runtime.mjs +1 -0
- package/build/esm/react/server.mjs +1 -0
- package/build/esm/react/test-utils.mjs +1 -0
- package/build/esm/server/ServerContext.mjs +18 -0
- package/build/esm/server/http-handler.mjs +81 -0
- package/build/esm/server/index.mjs +9 -0
- package/build/esm/server/render.mjs +40 -0
- package/build/esm/static/StaticContext.mjs +18 -0
- package/build/esm/static/index.mjs +280 -0
- package/build/esm/static/render.mjs +40 -0
- package/build/esm/testing.mjs +3 -0
- package/build/esm/utilities/react.mjs +10 -0
- package/build/esnext/App.esnext +33 -0
- package/build/esnext/email.esnext +1 -0
- package/build/esnext/env.esnext +1 -0
- package/build/esnext/global.esnext +3 -0
- package/build/esnext/html.esnext +1 -0
- package/build/esnext/http-handlers/index.esnext +1 -0
- package/build/esnext/http-handlers/node.esnext +1 -0
- package/build/esnext/http.esnext +1 -0
- package/build/esnext/index.esnext +10 -0
- package/build/esnext/matchers.esnext +2 -0
- package/build/esnext/polyfills/base.esnext +1 -0
- package/build/esnext/polyfills/fetch.esnext +1 -0
- package/build/esnext/polyfills/noop.esnext +1 -0
- package/build/esnext/react/index.esnext +2 -0
- package/build/esnext/react/jsx-runtime.esnext +1 -0
- package/build/esnext/react/server.esnext +1 -0
- package/build/esnext/react/test-utils.esnext +1 -0
- package/build/esnext/server/ServerContext.esnext +18 -0
- package/build/esnext/server/http-handler.esnext +81 -0
- package/build/esnext/server/index.esnext +9 -0
- package/build/esnext/server/render.esnext +40 -0
- package/build/esnext/static/StaticContext.esnext +18 -0
- package/build/esnext/static/index.esnext +280 -0
- package/build/esnext/static/render.esnext +40 -0
- package/build/esnext/testing.esnext +3 -0
- package/build/esnext/utilities/react.esnext +10 -0
- package/build/tsconfig.tsbuildinfo +1 -0
- package/build/typescript/App.d.ts +15 -0
- package/build/typescript/App.d.ts.map +1 -0
- package/build/typescript/email.d.ts +3 -0
- package/build/typescript/email.d.ts.map +1 -0
- package/build/typescript/env.d.ts +5 -0
- package/build/typescript/env.d.ts.map +1 -0
- package/build/typescript/global.d.ts +2 -0
- package/build/typescript/global.d.ts.map +1 -0
- package/build/typescript/html.d.ts +3 -0
- package/build/typescript/html.d.ts.map +1 -0
- package/build/typescript/http-handlers/index.d.ts +2 -0
- package/build/typescript/http-handlers/index.d.ts.map +1 -0
- package/build/typescript/http-handlers/node.d.ts +2 -0
- package/build/typescript/http-handlers/node.d.ts.map +1 -0
- package/build/typescript/http.d.ts +2 -0
- package/build/typescript/http.d.ts.map +1 -0
- package/build/typescript/index.d.ts +18 -0
- package/build/typescript/index.d.ts.map +1 -0
- package/build/typescript/magic/app.d.ts +4 -0
- package/build/typescript/magic/app.d.ts.map +1 -0
- package/build/typescript/magic/asset-loader.d.ts +6 -0
- package/build/typescript/magic/asset-loader.d.ts.map +1 -0
- package/build/typescript/magic/http-handler.d.ts +4 -0
- package/build/typescript/magic/http-handler.d.ts.map +1 -0
- package/build/typescript/matchers.d.ts +3 -0
- package/build/typescript/matchers.d.ts.map +1 -0
- package/build/typescript/polyfills/base.d.ts +2 -0
- package/build/typescript/polyfills/base.d.ts.map +1 -0
- package/build/typescript/polyfills/crypto.d.ts +2 -0
- package/build/typescript/polyfills/crypto.d.ts.map +1 -0
- package/build/typescript/polyfills/fetch.d.ts +2 -0
- package/build/typescript/polyfills/fetch.d.ts.map +1 -0
- package/build/typescript/polyfills/noop.d.ts +2 -0
- package/build/typescript/polyfills/noop.d.ts.map +1 -0
- package/build/typescript/react/index.d.ts +3 -0
- package/build/typescript/react/index.d.ts.map +1 -0
- package/build/typescript/react/jsx-runtime.d.ts +2 -0
- package/build/typescript/react/jsx-runtime.d.ts.map +1 -0
- package/build/typescript/react/server.d.ts +2 -0
- package/build/typescript/react/server.d.ts.map +1 -0
- package/build/typescript/react/test-utils.d.ts +2 -0
- package/build/typescript/react/test-utils.d.ts.map +1 -0
- package/build/typescript/server/ServerContext.d.ts +13 -0
- package/build/typescript/server/ServerContext.d.ts.map +1 -0
- package/build/typescript/server/http-handler.d.ts +15 -0
- package/build/typescript/server/http-handler.d.ts.map +1 -0
- package/build/typescript/server/index.d.ts +13 -0
- package/build/typescript/server/index.d.ts.map +1 -0
- package/build/typescript/server/render.d.ts +17 -0
- package/build/typescript/server/render.d.ts.map +1 -0
- package/build/typescript/static/StaticContext.d.ts +13 -0
- package/build/typescript/static/StaticContext.d.ts.map +1 -0
- package/build/typescript/static/index.d.ts +22 -0
- package/build/typescript/static/index.d.ts.map +1 -0
- package/build/typescript/static/render.d.ts +17 -0
- package/build/typescript/static/render.d.ts.map +1 -0
- package/build/typescript/testing.d.ts +4 -0
- package/build/typescript/testing.d.ts.map +1 -0
- package/build/typescript/utilities/react.d.ts +3 -0
- package/build/typescript/utilities/react.d.ts.map +1 -0
- package/package.json +255 -0
- package/sewing-kit.config.ts +37 -0
- package/src/App.tsx +53 -0
- package/src/email.ts +9 -0
- package/src/env.ts +5 -0
- package/src/global.ts +3 -0
- package/src/html.ts +29 -0
- package/src/http-handlers/index.ts +1 -0
- package/src/http-handlers/node.ts +1 -0
- package/src/http.ts +27 -0
- package/src/index.ts +83 -0
- package/src/magic/app.ts +5 -0
- package/src/magic/asset-loader.ts +5 -0
- package/src/magic/http-handler.ts +5 -0
- package/src/matchers.ts +2 -0
- package/src/polyfills/README.md +3 -0
- package/src/polyfills/base.ts +1 -0
- package/src/polyfills/crypto.ts +1 -0
- package/src/polyfills/fetch.ts +1 -0
- package/src/polyfills/noop.ts +1 -0
- package/src/react/index.ts +4 -0
- package/src/react/jsx-runtime.ts +2 -0
- package/src/react/server.ts +2 -0
- package/src/react/test-utils.ts +2 -0
- package/src/server/ServerContext.tsx +42 -0
- package/src/server/http-handler.tsx +101 -0
- package/src/server/index.ts +40 -0
- package/src/server/render.tsx +43 -0
- package/src/static/StaticContext.tsx +42 -0
- package/src/static/index.tsx +307 -0
- package/src/static/render.tsx +43 -0
- package/src/testing.ts +7 -0
- package/src/utilities/react.tsx +13 -0
- package/tsconfig.json +29 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var testUtils = require('@quilted/react/test-utils');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Object.keys(testUtils).forEach(function (k) {
|
|
10
|
+
if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () { return testUtils[k]; }
|
|
13
|
+
});
|
|
14
|
+
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var reactRouter = require('@quilted/react-router');
|
|
6
|
+
var server$1 = require('@quilted/react-html/server');
|
|
7
|
+
var server$2 = require('@quilted/react-async/server');
|
|
8
|
+
var server = require('@quilted/react-http/server');
|
|
9
|
+
var react = require('../utilities/react.cjs');
|
|
10
|
+
|
|
11
|
+
function ServerContext({
|
|
12
|
+
url,
|
|
13
|
+
html,
|
|
14
|
+
http,
|
|
15
|
+
asyncAssets,
|
|
16
|
+
children
|
|
17
|
+
}) {
|
|
18
|
+
const normalizedUrl = typeof url === 'string' ? new URL(url) : url;
|
|
19
|
+
return react.maybeWrapContext(server$2.AsyncAssetContext, asyncAssets, react.maybeWrapContext(server.HttpServerContext, http, react.maybeWrapContext(server$1.HtmlContext, html, react.maybeWrapContext(reactRouter.InitialUrlContext, normalizedUrl, children))));
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
exports.ServerContext = ServerContext;
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var server = require('@quilted/react-html/server');
|
|
6
|
+
var httpHandlers = require('@quilted/http-handlers');
|
|
7
|
+
var render = require('./render.cjs');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
|
|
10
|
+
function createServerRenderingHttpHandler(App, {
|
|
11
|
+
handler = httpHandlers.createHttpHandler(),
|
|
12
|
+
...options
|
|
13
|
+
}) {
|
|
14
|
+
handler.get(createServerRenderingRequestHandler(App, options));
|
|
15
|
+
return handler;
|
|
16
|
+
}
|
|
17
|
+
function createServerRenderingRequestHandler(App, {
|
|
18
|
+
renderProps,
|
|
19
|
+
...options
|
|
20
|
+
} = {}) {
|
|
21
|
+
return request => {
|
|
22
|
+
return renderToResponse( /*#__PURE__*/jsxRuntime.jsx(App, { ...renderProps?.({
|
|
23
|
+
request
|
|
24
|
+
})
|
|
25
|
+
}), request, options);
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
async function renderToResponse(element, request, {
|
|
29
|
+
assets,
|
|
30
|
+
...options
|
|
31
|
+
} = {}) {
|
|
32
|
+
const accepts = request.headers.get('Accept');
|
|
33
|
+
if (accepts != null && !accepts.includes('text/html')) return;
|
|
34
|
+
const {
|
|
35
|
+
html: htmlManager,
|
|
36
|
+
http,
|
|
37
|
+
markup,
|
|
38
|
+
asyncAssets
|
|
39
|
+
} = await render.renderApp(element, { ...options,
|
|
40
|
+
url: request.url,
|
|
41
|
+
headers: request.headers
|
|
42
|
+
});
|
|
43
|
+
const {
|
|
44
|
+
headers,
|
|
45
|
+
statusCode = 200,
|
|
46
|
+
redirectUrl
|
|
47
|
+
} = http.state;
|
|
48
|
+
|
|
49
|
+
if (redirectUrl) {
|
|
50
|
+
return httpHandlers.redirect(redirectUrl, {
|
|
51
|
+
status: statusCode,
|
|
52
|
+
headers
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
const usedAssets = asyncAssets.used({
|
|
57
|
+
timing: 'load'
|
|
58
|
+
});
|
|
59
|
+
const assetOptions = {
|
|
60
|
+
userAgent: request.headers.get('User-Agent')
|
|
61
|
+
};
|
|
62
|
+
const [styles, scripts, preload] = assets ? await Promise.all([assets.styles({
|
|
63
|
+
async: usedAssets,
|
|
64
|
+
options: assetOptions
|
|
65
|
+
}), assets.scripts({
|
|
66
|
+
async: usedAssets,
|
|
67
|
+
options: assetOptions
|
|
68
|
+
}), assets.asyncAssets(asyncAssets.used({
|
|
69
|
+
timing: 'preload'
|
|
70
|
+
}), {
|
|
71
|
+
options: assetOptions
|
|
72
|
+
})]) : [];
|
|
73
|
+
return httpHandlers.html(server.render( /*#__PURE__*/jsxRuntime.jsx(server.Html, {
|
|
74
|
+
manager: htmlManager,
|
|
75
|
+
styles: styles,
|
|
76
|
+
scripts: scripts,
|
|
77
|
+
preloadAssets: preload,
|
|
78
|
+
children: markup
|
|
79
|
+
})), {
|
|
80
|
+
headers,
|
|
81
|
+
status: statusCode
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
exports.createServerRenderingHttpHandler = createServerRenderingHttpHandler;
|
|
86
|
+
exports.createServerRenderingRequestHandler = createServerRenderingRequestHandler;
|
|
87
|
+
exports.renderToResponse = renderToResponse;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var server = require('@quilted/react-html/server');
|
|
6
|
+
var server$1 = require('@quilted/react-server-render/server');
|
|
7
|
+
var server$2 = require('@quilted/async/server');
|
|
8
|
+
var server$3 = require('@quilted/react-async/server');
|
|
9
|
+
var server$4 = require('@quilted/react-email/server');
|
|
10
|
+
var httpHandlers = require('@quilted/http-handlers');
|
|
11
|
+
var render = require('./render.cjs');
|
|
12
|
+
var ServerContext = require('./ServerContext.cjs');
|
|
13
|
+
var httpHandler = require('./http-handler.cjs');
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
Object.defineProperty(exports, 'HTML_SERVER_ACTION_ID', {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return server.SERVER_ACTION_ID; }
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(exports, 'Html', {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return server.Html; }
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, 'HtmlContext', {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () { return server.HtmlContext; }
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(exports, 'HtmlManager', {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () { return server.HtmlManager; }
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(exports, 'Serialize', {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function () { return server.Serialize; }
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(exports, 'render', {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () { return server.render; }
|
|
40
|
+
});
|
|
41
|
+
Object.defineProperty(exports, 'ServerAction', {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
get: function () { return server$1.ServerAction; }
|
|
44
|
+
});
|
|
45
|
+
Object.defineProperty(exports, 'ServerRenderContext', {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
get: function () { return server$1.ServerRenderContext; }
|
|
48
|
+
});
|
|
49
|
+
Object.defineProperty(exports, 'ServerRenderManager', {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
get: function () { return server$1.ServerRenderManager; }
|
|
52
|
+
});
|
|
53
|
+
Object.defineProperty(exports, 'extract', {
|
|
54
|
+
enumerable: true,
|
|
55
|
+
get: function () { return server$1.extract; }
|
|
56
|
+
});
|
|
57
|
+
Object.defineProperty(exports, 'useServerAction', {
|
|
58
|
+
enumerable: true,
|
|
59
|
+
get: function () { return server$1.useServerAction; }
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(exports, 'createAssetLoader', {
|
|
62
|
+
enumerable: true,
|
|
63
|
+
get: function () { return server$2.createAssetLoader; }
|
|
64
|
+
});
|
|
65
|
+
Object.defineProperty(exports, 'ASYNC_ASSETS_SERVER_ACTION_ID', {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () { return server$3.SERVER_ACTION_ID; }
|
|
68
|
+
});
|
|
69
|
+
Object.defineProperty(exports, 'AsyncAssetContext', {
|
|
70
|
+
enumerable: true,
|
|
71
|
+
get: function () { return server$3.AsyncAssetContext; }
|
|
72
|
+
});
|
|
73
|
+
Object.defineProperty(exports, 'AsyncAssetManager', {
|
|
74
|
+
enumerable: true,
|
|
75
|
+
get: function () { return server$3.AsyncAssetManager; }
|
|
76
|
+
});
|
|
77
|
+
Object.defineProperty(exports, 'renderEmail', {
|
|
78
|
+
enumerable: true,
|
|
79
|
+
get: function () { return server$4.renderEmail; }
|
|
80
|
+
});
|
|
81
|
+
Object.defineProperty(exports, 'createHttpHandler', {
|
|
82
|
+
enumerable: true,
|
|
83
|
+
get: function () { return httpHandlers.createHttpHandler; }
|
|
84
|
+
});
|
|
85
|
+
exports.renderApp = render.renderApp;
|
|
86
|
+
exports.ServerContext = ServerContext.ServerContext;
|
|
87
|
+
exports.createServerRenderingHttpHandler = httpHandler.createServerRenderingHttpHandler;
|
|
88
|
+
exports.createServerRenderingRequestHandler = httpHandler.createServerRenderingRequestHandler;
|
|
89
|
+
exports.renderToResponse = httpHandler.renderToResponse;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var server$3 = require('@quilted/react-server-render/server');
|
|
6
|
+
var server = require('@quilted/react-html/server');
|
|
7
|
+
var server$2 = require('@quilted/react-http/server');
|
|
8
|
+
var server$1 = require('@quilted/react-async/server');
|
|
9
|
+
var ServerContext = require('./ServerContext.cjs');
|
|
10
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
11
|
+
|
|
12
|
+
async function renderApp(app, {
|
|
13
|
+
decorate,
|
|
14
|
+
url,
|
|
15
|
+
headers,
|
|
16
|
+
...rest
|
|
17
|
+
} = {}) {
|
|
18
|
+
const html = new server.HtmlManager();
|
|
19
|
+
const asyncAssets = new server$1.AsyncAssetManager();
|
|
20
|
+
const http = new server$2.HttpManager({
|
|
21
|
+
headers
|
|
22
|
+
});
|
|
23
|
+
const markup = await server$3.extract(app, {
|
|
24
|
+
decorate(app) {
|
|
25
|
+
return /*#__PURE__*/jsxRuntime.jsx(ServerContext.ServerContext, {
|
|
26
|
+
asyncAssets: asyncAssets,
|
|
27
|
+
http: http,
|
|
28
|
+
html: html,
|
|
29
|
+
url: url,
|
|
30
|
+
children: decorate?.(app) ?? app
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
...rest
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
markup,
|
|
38
|
+
http,
|
|
39
|
+
html,
|
|
40
|
+
asyncAssets
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
exports.renderApp = renderApp;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var reactRouter = require('@quilted/react-router');
|
|
6
|
+
var server$1 = require('@quilted/react-html/server');
|
|
7
|
+
var server$2 = require('@quilted/react-async/server');
|
|
8
|
+
var server = require('@quilted/react-http/server');
|
|
9
|
+
var react = require('../utilities/react.cjs');
|
|
10
|
+
|
|
11
|
+
function StaticContext({
|
|
12
|
+
url,
|
|
13
|
+
html,
|
|
14
|
+
http,
|
|
15
|
+
asyncAssets,
|
|
16
|
+
children
|
|
17
|
+
}) {
|
|
18
|
+
const normalizedUrl = typeof url === 'string' ? new URL(url) : url;
|
|
19
|
+
return react.maybeWrapContext(server$2.AsyncAssetContext, asyncAssets, react.maybeWrapContext(server.HttpServerContext, http, react.maybeWrapContext(server$1.HtmlContext, html, react.maybeWrapContext(reactRouter.InitialUrlContext, normalizedUrl, children))));
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
exports.StaticContext = StaticContext;
|
|
@@ -0,0 +1,302 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var server = require('@quilted/react-html/server');
|
|
6
|
+
var _static = require('@quilted/react-router/static');
|
|
7
|
+
var render = require('./render.cjs');
|
|
8
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
|
|
10
|
+
function _interopNamespace(e) {
|
|
11
|
+
if (e && e.__esModule) return e;
|
|
12
|
+
var n = Object.create(null);
|
|
13
|
+
if (e) {
|
|
14
|
+
Object.keys(e).forEach(function (k) {
|
|
15
|
+
if (k !== 'default') {
|
|
16
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
17
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return e[k]; }
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
n["default"] = e;
|
|
25
|
+
return Object.freeze(n);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const BASE_URL = 'http://localhost:3000';
|
|
29
|
+
async function renderStatic(App, {
|
|
30
|
+
assets,
|
|
31
|
+
routes: startingRoutes,
|
|
32
|
+
onRender,
|
|
33
|
+
crawl = true,
|
|
34
|
+
baseUrl = BASE_URL,
|
|
35
|
+
prettify = true
|
|
36
|
+
}) {
|
|
37
|
+
const routesToHandle = startingRoutes.map(route => ({
|
|
38
|
+
route: removePostfixSlash(new URL(route, baseUrl).pathname),
|
|
39
|
+
fallback: false
|
|
40
|
+
}));
|
|
41
|
+
const seenRoutes = [...routesToHandle];
|
|
42
|
+
const seenRouteIds = new Set(seenRoutes.map(({
|
|
43
|
+
route
|
|
44
|
+
}) => route));
|
|
45
|
+
let renderableRoute;
|
|
46
|
+
|
|
47
|
+
while (renderableRoute = routesToHandle.shift()) {
|
|
48
|
+
const {
|
|
49
|
+
route,
|
|
50
|
+
fallback
|
|
51
|
+
} = renderableRoute;
|
|
52
|
+
const url = new URL(route, baseUrl);
|
|
53
|
+
const {
|
|
54
|
+
html,
|
|
55
|
+
http,
|
|
56
|
+
routes
|
|
57
|
+
} = await renderUrl(url, {
|
|
58
|
+
fallback
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
if (crawl) {
|
|
62
|
+
for (const {
|
|
63
|
+
routes: routeDefinitions,
|
|
64
|
+
fallback = false,
|
|
65
|
+
consumedPath,
|
|
66
|
+
prefix
|
|
67
|
+
} of routes) {
|
|
68
|
+
const basePathname = joinPath(prefix, consumedPath);
|
|
69
|
+
const baseId = basePathname === '/' ? basePathname : `__QUILT_BASE_${basePathname}__`;
|
|
70
|
+
|
|
71
|
+
for (const routeDefinition of routeDefinitions) {
|
|
72
|
+
await recordRouteDefinition(routeDefinition, {
|
|
73
|
+
baseId,
|
|
74
|
+
basePathname,
|
|
75
|
+
addFallbacks: fallback
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (fallback && routeDefinitions[routeDefinitions.length - 1]?.match != null) {
|
|
80
|
+
await recordRouteDefinition({}, {
|
|
81
|
+
baseId,
|
|
82
|
+
basePathname,
|
|
83
|
+
addFallbacks: fallback
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
await onRender({
|
|
90
|
+
route,
|
|
91
|
+
content: html,
|
|
92
|
+
http,
|
|
93
|
+
fallback,
|
|
94
|
+
hasChildren: !fallback && seenRoutes.some(otherRoute => otherRoute.route.startsWith(`${route}/`))
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
async function recordRouteDefinition({
|
|
99
|
+
match,
|
|
100
|
+
children,
|
|
101
|
+
renderStatic
|
|
102
|
+
}, {
|
|
103
|
+
basePathname,
|
|
104
|
+
baseId,
|
|
105
|
+
addFallbacks
|
|
106
|
+
}) {
|
|
107
|
+
if (renderStatic === false) return;
|
|
108
|
+
let routeId;
|
|
109
|
+
const hasChildren = children && children.length > 0;
|
|
110
|
+
const hasManualMatches = typeof renderStatic === 'function' && typeof match !== 'string';
|
|
111
|
+
const matchedRoutes = [];
|
|
112
|
+
|
|
113
|
+
if (typeof match === 'string') {
|
|
114
|
+
routeId = joinPath(baseId, match);
|
|
115
|
+
matchedRoutes.push({
|
|
116
|
+
id: routeId,
|
|
117
|
+
route: joinPath(basePathname, match),
|
|
118
|
+
fallback: false
|
|
119
|
+
});
|
|
120
|
+
} else if (typeof match === 'function') {
|
|
121
|
+
routeId = joinPath(baseId, `__QUILT_FUNCTION_ROUTE_${match.toString()}__`);
|
|
122
|
+
} else if (match instanceof RegExp) {
|
|
123
|
+
routeId = joinPath(`__QUILT_REGEX_ROUTE_${match.source}__`);
|
|
124
|
+
} else {
|
|
125
|
+
routeId = joinPath(baseId, '__QUILT_FALLBACK_ROUTE__');
|
|
126
|
+
|
|
127
|
+
if (!hasManualMatches) {
|
|
128
|
+
matchedRoutes.push({
|
|
129
|
+
id: routeId,
|
|
130
|
+
route: basePathname,
|
|
131
|
+
fallback: true
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
if (seenRouteIds.has(routeId)) return;
|
|
137
|
+
seenRouteIds.add(routeId);
|
|
138
|
+
|
|
139
|
+
if (typeof renderStatic === 'function' && typeof match !== 'string') {
|
|
140
|
+
const matchedRouteParts = await renderStatic();
|
|
141
|
+
|
|
142
|
+
for (const routePart of matchedRouteParts) {
|
|
143
|
+
const id = joinPath(baseId, `__QUILT_MATCH_${routePart}__`);
|
|
144
|
+
seenRouteIds.add(id);
|
|
145
|
+
matchedRoutes.push({
|
|
146
|
+
id,
|
|
147
|
+
route: joinPath(basePathname, routePart),
|
|
148
|
+
fallback: false
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (hasChildren) {
|
|
154
|
+
for (const {
|
|
155
|
+
id,
|
|
156
|
+
route
|
|
157
|
+
} of matchedRoutes) {
|
|
158
|
+
for (const child of children) {
|
|
159
|
+
await recordRouteDefinition(child, {
|
|
160
|
+
addFallbacks,
|
|
161
|
+
basePathname: route,
|
|
162
|
+
baseId: id
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
if (addFallbacks && children[children.length - 1]?.match != null) {
|
|
167
|
+
await recordRouteDefinition({}, {
|
|
168
|
+
addFallbacks,
|
|
169
|
+
basePathname: route,
|
|
170
|
+
baseId: id
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
for (const {
|
|
179
|
+
route,
|
|
180
|
+
fallback
|
|
181
|
+
} of matchedRoutes) {
|
|
182
|
+
const renderableRoute = {
|
|
183
|
+
route,
|
|
184
|
+
fallback
|
|
185
|
+
};
|
|
186
|
+
seenRoutes.push(renderableRoute);
|
|
187
|
+
routesToHandle.push(renderableRoute);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
async function renderUrl(url, {
|
|
192
|
+
fallback = false
|
|
193
|
+
} = {}) {
|
|
194
|
+
const routeRecorder = new _static.StaticRenderer({
|
|
195
|
+
forceFallback: fallback ? url.pathname : undefined
|
|
196
|
+
});
|
|
197
|
+
const {
|
|
198
|
+
http,
|
|
199
|
+
html: htmlManager,
|
|
200
|
+
markup,
|
|
201
|
+
asyncAssets
|
|
202
|
+
} = await render.renderApp( /*#__PURE__*/jsxRuntime.jsx(App, {}), {
|
|
203
|
+
url,
|
|
204
|
+
|
|
205
|
+
decorate(app) {
|
|
206
|
+
return /*#__PURE__*/jsxRuntime.jsx(_static.StaticRendererContext.Provider, {
|
|
207
|
+
value: routeRecorder,
|
|
208
|
+
children: app
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
});
|
|
213
|
+
const usedAssets = asyncAssets.used({
|
|
214
|
+
timing: 'load'
|
|
215
|
+
});
|
|
216
|
+
const [moduleStyles, moduleScripts, modulePreload, nomoduleStyles, nomoduleScripts] = await Promise.all([assets.styles({
|
|
217
|
+
async: usedAssets,
|
|
218
|
+
options: {
|
|
219
|
+
modules: true
|
|
220
|
+
}
|
|
221
|
+
}), assets.scripts({
|
|
222
|
+
async: usedAssets,
|
|
223
|
+
options: {
|
|
224
|
+
modules: true
|
|
225
|
+
}
|
|
226
|
+
}), assets.asyncAssets(asyncAssets.used({
|
|
227
|
+
timing: 'preload'
|
|
228
|
+
}), {
|
|
229
|
+
options: {
|
|
230
|
+
modules: true
|
|
231
|
+
}
|
|
232
|
+
}), assets.styles({
|
|
233
|
+
async: usedAssets,
|
|
234
|
+
options: {
|
|
235
|
+
modules: false
|
|
236
|
+
}
|
|
237
|
+
}), assets.scripts({
|
|
238
|
+
async: usedAssets,
|
|
239
|
+
options: {
|
|
240
|
+
modules: false
|
|
241
|
+
}
|
|
242
|
+
})]); // We don’t want to load styles from both bundles, so we only use module styles,
|
|
243
|
+
// since modules are intended to be the default and CSS (usually) doesn’t
|
|
244
|
+
// have features that meaningfully break older user agents.
|
|
245
|
+
|
|
246
|
+
const styles = moduleStyles.length > 0 ? moduleStyles : nomoduleStyles; // If there are nomodule scripts, we can’t really do preloading, because we can’t
|
|
247
|
+
// prevent the nomodule scripts from being preloaded in module browsers. If there
|
|
248
|
+
// are only module scripts, we can preload those.
|
|
249
|
+
|
|
250
|
+
const preload = nomoduleScripts.length > 0 ? [] : modulePreload;
|
|
251
|
+
const scripts = [...moduleScripts, ...nomoduleScripts.map(script => ({ ...script,
|
|
252
|
+
nomodule: true
|
|
253
|
+
}))];
|
|
254
|
+
const minifiedHtml = server.render( /*#__PURE__*/jsxRuntime.jsx(server.Html, {
|
|
255
|
+
manager: htmlManager,
|
|
256
|
+
styles: styles,
|
|
257
|
+
scripts: scripts,
|
|
258
|
+
preloadAssets: preload,
|
|
259
|
+
children: markup
|
|
260
|
+
}));
|
|
261
|
+
const html = prettify ? await prettifyHtml(minifiedHtml) : minifiedHtml;
|
|
262
|
+
return {
|
|
263
|
+
html,
|
|
264
|
+
http: http.state,
|
|
265
|
+
routes: routeRecorder.state
|
|
266
|
+
};
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
async function prettifyHtml(html) {
|
|
271
|
+
try {
|
|
272
|
+
const {
|
|
273
|
+
default: prettier
|
|
274
|
+
} = await Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespace(require('prettier')); });
|
|
275
|
+
return prettier.format(html, {
|
|
276
|
+
parser: 'html'
|
|
277
|
+
});
|
|
278
|
+
} catch (error) {
|
|
279
|
+
return html;
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
function joinPath(...parts) {
|
|
284
|
+
let path = '/';
|
|
285
|
+
|
|
286
|
+
for (const part of parts) {
|
|
287
|
+
if (typeof part !== 'string') continue;
|
|
288
|
+
const normalizedPart = part.startsWith('/') ? part.slice(1) : part;
|
|
289
|
+
if (normalizedPart.length === 0) continue;
|
|
290
|
+
if (path !== '/') path += '/';
|
|
291
|
+
path += normalizedPart;
|
|
292
|
+
path = removePostfixSlash(path);
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
return path;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
function removePostfixSlash(value) {
|
|
299
|
+
return value.endsWith('/') && value !== '/' ? value.slice(0, value.length - 1) : value;
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
exports.renderStatic = renderStatic;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var server$3 = require('@quilted/react-server-render/server');
|
|
6
|
+
var server = require('@quilted/react-html/server');
|
|
7
|
+
var server$2 = require('@quilted/react-http/server');
|
|
8
|
+
var server$1 = require('@quilted/react-async/server');
|
|
9
|
+
var StaticContext = require('./StaticContext.cjs');
|
|
10
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
11
|
+
|
|
12
|
+
async function renderApp(app, {
|
|
13
|
+
decorate,
|
|
14
|
+
url,
|
|
15
|
+
headers,
|
|
16
|
+
...rest
|
|
17
|
+
} = {}) {
|
|
18
|
+
const html = new server.HtmlManager();
|
|
19
|
+
const asyncAssets = new server$1.AsyncAssetManager();
|
|
20
|
+
const http = new server$2.HttpManager({
|
|
21
|
+
headers
|
|
22
|
+
});
|
|
23
|
+
const markup = await server$3.extract(app, {
|
|
24
|
+
decorate(app) {
|
|
25
|
+
return /*#__PURE__*/jsxRuntime.jsx(StaticContext.StaticContext, {
|
|
26
|
+
asyncAssets: asyncAssets,
|
|
27
|
+
html: html,
|
|
28
|
+
http: http,
|
|
29
|
+
url: url,
|
|
30
|
+
children: decorate?.(app) ?? app
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
|
|
34
|
+
...rest
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
markup,
|
|
38
|
+
http,
|
|
39
|
+
html,
|
|
40
|
+
asyncAssets
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
exports.renderApp = renderApp;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var reactTesting = require('@quilted/react-testing');
|
|
6
|
+
var testing = require('@quilted/react-router/testing');
|
|
7
|
+
var testing$1 = require('@quilted/react-graphql/testing');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
Object.defineProperty(exports, 'createMount', {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return reactTesting.createMount; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, 'mount', {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return reactTesting.mount; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, 'unmountAll', {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return reactTesting.unmountAll; }
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports, 'TestRouter', {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () { return testing.TestRouter; }
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(exports, 'createTestRouter', {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return testing.createTestRouter; }
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, 'TestGraphQL', {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () { return testing$1.TestGraphQL; }
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(exports, 'createFiller', {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get: function () { return testing$1.createFiller; }
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(exports, 'createTestGraphQL', {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function () { return testing$1.createTestGraphQL; }
|
|
42
|
+
});
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
+
|
|
7
|
+
function maybeWrapContext(Context, value, children) {
|
|
8
|
+
return value ? /*#__PURE__*/jsxRuntime.jsx(Context.Provider, {
|
|
9
|
+
value: value,
|
|
10
|
+
children: children
|
|
11
|
+
}) : children;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
exports.maybeWrapContext = maybeWrapContext;
|