reactivated 0.28.1 → 0.28.2-a1334
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/dist/build.client.js +6 -4
- package/dist/build.client.js.map +1 -1
- package/dist/build.renderer.js +9 -5
- package/dist/build.renderer.js.map +1 -1
- package/dist/config.d.ts +15 -0
- package/dist/config.js +31 -0
- package/dist/config.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/renderer.js +3 -2
- package/dist/renderer.js.map +1 -1
- package/package.json +1 -1
- package/src/build.client.tsx +50 -46
- package/src/build.renderer.tsx +44 -38
- package/src/config.tsx +38 -0
- package/src/index.tsx +1 -0
- package/src/renderer.tsx +4 -1
package/dist/build.client.js
CHANGED
|
@@ -31,6 +31,8 @@ const esbuild_1 = __importDefault(require("@linaria/esbuild"));
|
|
|
31
31
|
const esbuild_plugin_1 = require("@vanilla-extract/esbuild-plugin");
|
|
32
32
|
const esbuild = __importStar(require("esbuild"));
|
|
33
33
|
const esbuild_plugin_import_glob_1 = __importDefault(require("esbuild-plugin-import-glob"));
|
|
34
|
+
const immer_1 = __importDefault(require("immer"));
|
|
35
|
+
const config_1 = require("./config");
|
|
34
36
|
const entryNames = process.argv.slice(2);
|
|
35
37
|
const entryPoints = Object.fromEntries(entryNames.map((entry) => [entry, `./client/${entry}.tsx`]));
|
|
36
38
|
const production = process.env.NODE_ENV === "production";
|
|
@@ -40,8 +42,7 @@ const env = {
|
|
|
40
42
|
BUILD_VERSION: process.env.BUILD_VERSION,
|
|
41
43
|
TAG_VERSION: process.env.TAG_VERSION,
|
|
42
44
|
};
|
|
43
|
-
|
|
44
|
-
.build({
|
|
45
|
+
const defaultConfig = {
|
|
45
46
|
entryPoints,
|
|
46
47
|
bundle: true,
|
|
47
48
|
// We use terser to minify because esbuild breaks safari sourcemaps.
|
|
@@ -84,6 +85,7 @@ esbuild
|
|
|
84
85
|
(0, esbuild_plugin_1.vanillaExtractPlugin)({ identifiers }),
|
|
85
86
|
(0, esbuild_1.default)({ sourceMap: true, esbuildOptions: { sourcemap: "inline" } }),
|
|
86
87
|
],
|
|
87
|
-
}
|
|
88
|
-
|
|
88
|
+
};
|
|
89
|
+
const finalConfig = (0, immer_1.default)(defaultConfig, (0, config_1.loadConfig)().clientBuildConfig);
|
|
90
|
+
esbuild.build(finalConfig).catch(() => process.exit(1));
|
|
89
91
|
//# sourceMappingURL=build.client.js.map
|
package/dist/build.client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.client.js","sourceRoot":"","sources":["../src/build.client.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,+DAAuC;AACvC,oEAAqE;AACrE,iDAAmC;AACnC,4FAA0D;
|
|
1
|
+
{"version":3,"file":"build.client.js","sourceRoot":"","sources":["../src/build.client.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,+DAAuC;AACvC,oEAAqE;AACrE,iDAAmC;AACnC,4FAA0D;AAC1D,kDAA4B;AAC5B,qCAAoC;AAEpC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAEzC,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAClC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,MAAM,CAAC,CAAC,CAC9D,CAAC;AAEF,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;AACzD,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAEnD,MAAM,GAAG,GAAG;IACR,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa;IACnD,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;IACxC,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,WAAW;CACvC,CAAC;AAEF,MAAM,aAAa,GAAmC;IAClD,WAAW;IACX,MAAM,EAAE,IAAI;IACZ,oEAAoE;IACpE,sEAAsE;IACtE,MAAM,EAAE,KAAK;IACb,2CAA2C;IAC3C,aAAa,EAAE,MAAM;IACrB,QAAQ,EAAE,SAAS;IACnB,MAAM,EAAE,eAAe;IACvB,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,IAAI;IACtB,KAAK,EAAE,UAAU,KAAK,KAAK;IAC3B,QAAQ,EAAE,CAAC,QAAQ,EAAE,0BAA0B,CAAC;IAChD,MAAM,EAAE;QACJ,iEAAiE;QACjE,+BAA+B;QAC/B,sBAAsB,EAAE,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,eAAe;QACrE,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,EAAC,GAAG,EAAC,CAAC;QAE9B,4BAA4B;QAC5B,MAAM,EAAE,IAAI;KACf;IACD,MAAM,EAAE;QACJ,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,MAAM;QACf,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,MAAM;QACf,QAAQ,EAAE,MAAM;KACnB;IACD,OAAO,EAAE;QACL,IAAA,oCAAgB,GAAE;QAClB,4DAA4D;QAC5D,gEAAgE;QAChE,UAAU;QACV,gEAAgE;QAChE,YAAY;QACZ,IAAA,qCAAoB,EAAC,EAAC,WAAW,EAAC,CAAC;QACnC,IAAA,iBAAO,EAAC,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,EAAC,SAAS,EAAE,QAAQ,EAAC,EAAC,CAAC;KACpE;CACJ,CAAC;AAEF,MAAM,WAAW,GAAG,IAAA,eAAO,EAAC,aAAa,EAAE,IAAA,mBAAU,GAAE,CAAC,iBAAiB,CAAC,CAAC;AAE3E,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
package/dist/build.renderer.js
CHANGED
|
@@ -31,16 +31,17 @@ const esbuild_1 = __importDefault(require("@linaria/esbuild"));
|
|
|
31
31
|
const esbuild_plugin_1 = require("@vanilla-extract/esbuild-plugin");
|
|
32
32
|
const esbuild = __importStar(require("esbuild"));
|
|
33
33
|
const esbuild_plugin_import_glob_1 = __importDefault(require("esbuild-plugin-import-glob"));
|
|
34
|
+
const immer_1 = __importDefault(require("immer"));
|
|
35
|
+
const config_1 = require("./config");
|
|
34
36
|
let server = null;
|
|
35
37
|
const CACHE_KEY = `${process.cwd()}/node_modules/_reactivated/renderer.js`;
|
|
36
38
|
const production = process.env.NODE_ENV === "production";
|
|
37
39
|
const identifiers = production ? "short" : "debug";
|
|
38
|
-
|
|
39
|
-
.build({
|
|
40
|
+
const defaultConfig = {
|
|
40
41
|
stdin: {
|
|
41
42
|
contents: `
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
export {server} from "reactivated/dist/renderer";
|
|
44
|
+
`,
|
|
44
45
|
resolveDir: process.cwd(),
|
|
45
46
|
loader: "ts",
|
|
46
47
|
},
|
|
@@ -72,7 +73,10 @@ esbuild
|
|
|
72
73
|
(0, esbuild_plugin_1.vanillaExtractPlugin)({ identifiers }),
|
|
73
74
|
(0, esbuild_1.default)({ sourceMap: true }),
|
|
74
75
|
],
|
|
75
|
-
}
|
|
76
|
+
};
|
|
77
|
+
const finalConfig = (0, immer_1.default)(defaultConfig, (0, config_1.loadConfig)().rendererBuildConfig);
|
|
78
|
+
esbuild
|
|
79
|
+
.build(finalConfig)
|
|
76
80
|
.then(() => {
|
|
77
81
|
if (production === false) {
|
|
78
82
|
restartServer();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.renderer.js","sourceRoot":"","sources":["../src/build.renderer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,+DAAuC;AACvC,oEAAqE;AACrE,iDAAmC;AACnC,4FAA0D;
|
|
1
|
+
{"version":3,"file":"build.renderer.js","sourceRoot":"","sources":["../src/build.renderer.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,+DAAuC;AACvC,oEAAqE;AACrE,iDAAmC;AACnC,4FAA0D;AAG1D,kDAA4B;AAC5B,qCAAoC;AAEpC,IAAI,MAAM,GAAuB,IAAI,CAAC;AAEtC,MAAM,SAAS,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,wCAAwC,CAAC;AAC3E,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC;AACzD,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;AAEnD,MAAM,aAAa,GAAmC;IAClD,KAAK,EAAE;QACH,QAAQ,EAAE;;SAET;QACD,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE;QACzB,MAAM,EAAE,IAAI;KACf;IACD,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,yCAAyC;IAClD,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,QAAQ;IAChB,gBAAgB,EAAE,IAAI;IACtB,gEAAgE;IAChE,kEAAkE;IAClE,yBAAyB;IACzB,SAAS,EAAE,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC;IAC5C,KAAK,EACD,UAAU,KAAK,IAAI;QACf,CAAC,CAAC,KAAK;QACP,CAAC,CAAC;YACI,SAAS,EAAE,GAAG,EAAE;gBACZ,aAAa,EAAE,CAAC;YACpB,CAAC;SACJ;IACX,OAAO,EAAE;QACL,IAAA,oCAAgB,GAAE;QAClB,4DAA4D;QAC5D,gEAAgE;QAChE,UAAU;QACV,gEAAgE;QAChE,YAAY;QACZ,IAAA,qCAAoB,EAAC,EAAC,WAAW,EAAC,CAAC;QACnC,IAAA,iBAAO,EAAC,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC;KAC7B;CACJ,CAAC;AAEF,MAAM,WAAW,GAAG,IAAA,eAAO,EAAC,aAAa,EAAE,IAAA,mBAAU,GAAE,CAAC,mBAAmB,CAAC,CAAC;AAE7E,OAAO;KACF,KAAK,CAAC,WAAW,CAAC;KAClB,IAAI,CAAC,GAAG,EAAE;IACP,IAAI,UAAU,KAAK,KAAK,EAAE;QACtB,aAAa,EAAE,CAAC;KACnB;AACL,CAAC,CAAC;KACD,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAElC,MAAM,aAAa,GAAG,GAAG,EAAE;IACvB,IAAI,MAAM,IAAI,IAAI,EAAE;QAChB,MAAM,CAAC,KAAK,EAAE,CAAC;KAClB;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAChC,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC;AACvC,CAAC,CAAC"}
|
package/dist/config.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { BuildOptions } from "esbuild";
|
|
3
|
+
export declare type Config = Readonly<{
|
|
4
|
+
clientBuildConfig: (options: BuildOptions) => BuildOptions;
|
|
5
|
+
rendererBuildConfig: (options: BuildOptions) => BuildOptions;
|
|
6
|
+
renderPage: (template: React.ReactNode) => React.ReactNode;
|
|
7
|
+
}>;
|
|
8
|
+
/**
|
|
9
|
+
* Function exists mainly just for type checking
|
|
10
|
+
*/
|
|
11
|
+
export declare const config: (c: Partial<Config>) => Partial<Config>;
|
|
12
|
+
/**
|
|
13
|
+
* Load the project custom configuration
|
|
14
|
+
*/
|
|
15
|
+
export declare const loadConfig: () => Config;
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadConfig = exports.config = void 0;
|
|
4
|
+
const ident = (x) => x;
|
|
5
|
+
const defaults = {
|
|
6
|
+
clientBuildConfig: ident,
|
|
7
|
+
rendererBuildConfig: ident,
|
|
8
|
+
renderPage: ident,
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Function exists mainly just for type checking
|
|
12
|
+
*/
|
|
13
|
+
const config = (c) => {
|
|
14
|
+
return c;
|
|
15
|
+
};
|
|
16
|
+
exports.config = config;
|
|
17
|
+
/**
|
|
18
|
+
* Load the project custom configuration
|
|
19
|
+
*/
|
|
20
|
+
const loadConfig = () => {
|
|
21
|
+
let overrides = {};
|
|
22
|
+
try {
|
|
23
|
+
overrides = require(`${process.cwd()}/client/reactivated.conf`).default;
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
console.debug(`Could not load @client/reactivated.conf: ${e}`);
|
|
27
|
+
}
|
|
28
|
+
return Object.assign(Object.assign({}, defaults), overrides);
|
|
29
|
+
};
|
|
30
|
+
exports.loadConfig = loadConfig;
|
|
31
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.tsx"],"names":[],"mappings":";;;AASA,MAAM,KAAK,GAAG,CAAK,CAAI,EAAE,EAAE,CAAC,CAAC,CAAC;AAC9B,MAAM,QAAQ,GAAW;IACrB,iBAAiB,EAAE,KAAK;IACxB,mBAAmB,EAAE,KAAK;IAC1B,UAAU,EAAE,KAAK;CACpB,CAAC;AAEF;;GAEG;AACI,MAAM,MAAM,GAAG,CAAC,CAAkB,EAAmB,EAAE;IAC1D,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AAFW,QAAA,MAAM,UAEjB;AAEF;;GAEG;AACI,MAAM,UAAU,GAAG,GAAW,EAAE;IACnC,IAAI,SAAS,GAAoB,EAAE,CAAC;IACpC,IAAI;QACA,SAAS,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC,OAAO,CAAC;KAC3E;IAAC,OAAO,CAAC,EAAE;QACR,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,EAAE,CAAC,CAAC;KAClE;IACD,uCACO,QAAQ,GACR,SAAS,EACd;AACN,CAAC,CAAC;AAXW,QAAA,UAAU,cAWrB"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./config"), exports);
|
|
17
18
|
__exportStar(require("./components/Form"), exports);
|
|
18
19
|
__exportStar(require("./components/Widget"), exports);
|
|
19
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,oDAAkC;AAClC,sDAAoC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAEA,2CAAyB;AACzB,oDAAkC;AAClC,sDAAoC"}
|
package/dist/renderer.js
CHANGED
|
@@ -13,6 +13,8 @@ const react_helmet_async_1 = require("react-helmet-async");
|
|
|
13
13
|
// Useful when running e2e tests or the like, where the output is not
|
|
14
14
|
// co-located with the running process.
|
|
15
15
|
const REACTIVATED_CLIENT_ROOT = (_a = process.env.REACTIVATED_CLIENT_ROOT) !== null && _a !== void 0 ? _a : `../client`;
|
|
16
|
+
const config_1 = require("./config");
|
|
17
|
+
const config = (0, config_1.loadConfig)();
|
|
16
18
|
// TODO: WHAT DOES THIS NEED TO BE? Even 100k was super fragile and a 10 choice field broke it.
|
|
17
19
|
exports.BODY_SIZE_LIMIT = "100000000k";
|
|
18
20
|
const renderPage = ({ html, helmet, context, props, }) => {
|
|
@@ -52,8 +54,7 @@ const render = ({ context, props }) => {
|
|
|
52
54
|
const Template = getTemplate(context);
|
|
53
55
|
const helmetContext = {};
|
|
54
56
|
const rendered = server_1.default.renderToString(react_1.default.createElement(react_helmet_async_1.HelmetProvider, { context: helmetContext },
|
|
55
|
-
react_1.default.createElement(Provider, { value: context },
|
|
56
|
-
react_1.default.createElement(Template, Object.assign({}, props)))));
|
|
57
|
+
react_1.default.createElement(Provider, { value: context }, config.renderPage(react_1.default.createElement(Template, Object.assign({}, props))))));
|
|
57
58
|
const { helmet } = helmetContext;
|
|
58
59
|
return {
|
|
59
60
|
status: "success",
|
package/dist/renderer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.tsx"],"names":[],"mappings":";;;;;;;AAAA,4CAAoB;AACpB,gDAAwB;AAGxB,kDAA0B;AAC1B,8DAA8C;AAC9C,2DAK4B;AAE5B,qEAAqE;AACrE,uCAAuC;AACvC,MAAM,uBAAuB,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,uBAAuB,mCAAI,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"renderer.js","sourceRoot":"","sources":["../src/renderer.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/build.client.tsx
CHANGED
|
@@ -4,6 +4,8 @@ import linaria from "@linaria/esbuild";
|
|
|
4
4
|
import {vanillaExtractPlugin} from "@vanilla-extract/esbuild-plugin";
|
|
5
5
|
import * as esbuild from "esbuild";
|
|
6
6
|
import ImportGlobPlugin from "esbuild-plugin-import-glob";
|
|
7
|
+
import produce from "immer";
|
|
8
|
+
import {loadConfig} from "./config";
|
|
7
9
|
|
|
8
10
|
const entryNames = process.argv.slice(2);
|
|
9
11
|
|
|
@@ -20,50 +22,52 @@ const env = {
|
|
|
20
22
|
TAG_VERSION: process.env.TAG_VERSION,
|
|
21
23
|
};
|
|
22
24
|
|
|
23
|
-
esbuild
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
process: JSON.stringify({env}),
|
|
25
|
+
const defaultConfig: Readonly<esbuild.BuildOptions> = {
|
|
26
|
+
entryPoints,
|
|
27
|
+
bundle: true,
|
|
28
|
+
// We use terser to minify because esbuild breaks safari sourcemaps.
|
|
29
|
+
// It's likely a Safari bug, but terser seems to work for some reason.
|
|
30
|
+
minify: false,
|
|
31
|
+
// Related to sourcemaps as well in Safari.
|
|
32
|
+
legalComments: "none",
|
|
33
|
+
platform: "browser",
|
|
34
|
+
outdir: "./static/dist",
|
|
35
|
+
sourcemap: true,
|
|
36
|
+
target: "es2018",
|
|
37
|
+
preserveSymlinks: true,
|
|
38
|
+
watch: production === false,
|
|
39
|
+
external: ["moment", "@client/generated/images"],
|
|
40
|
+
define: {
|
|
41
|
+
// You need both. The one from the stringified JSON is not picked
|
|
42
|
+
// up during the build process.
|
|
43
|
+
"process.env.NODE_ENV": production ? '"production"' : '"development"',
|
|
44
|
+
process: JSON.stringify({env}),
|
|
44
45
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
46
|
+
// Redux persist needs this.
|
|
47
|
+
global: "{}",
|
|
48
|
+
},
|
|
49
|
+
loader: {
|
|
50
|
+
".gif": "file",
|
|
51
|
+
".jpeg": "file",
|
|
52
|
+
".jpg": "file",
|
|
53
|
+
".png": "file",
|
|
54
|
+
".svg": "file",
|
|
55
|
+
".ttf": "file",
|
|
56
|
+
".woff": "file",
|
|
57
|
+
".woff2": "file",
|
|
58
|
+
},
|
|
59
|
+
plugins: [
|
|
60
|
+
ImportGlobPlugin(),
|
|
61
|
+
// We manually pass in identifiers because the client is not
|
|
62
|
+
// minified by esbuild but the renderer is, so class names could
|
|
63
|
+
// differ.
|
|
64
|
+
// Instead of set it manually instead of relying on minification
|
|
65
|
+
// settings.
|
|
66
|
+
vanillaExtractPlugin({identifiers}),
|
|
67
|
+
linaria({sourceMap: true, esbuildOptions: {sourcemap: "inline"}}),
|
|
68
|
+
],
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
const finalConfig = produce(defaultConfig, loadConfig().clientBuildConfig);
|
|
72
|
+
|
|
73
|
+
esbuild.build(finalConfig).catch(() => process.exit(1));
|
package/src/build.renderer.tsx
CHANGED
|
@@ -6,6 +6,8 @@ import * as esbuild from "esbuild";
|
|
|
6
6
|
import ImportGlobPlugin from "esbuild-plugin-import-glob";
|
|
7
7
|
import http from "http";
|
|
8
8
|
import fs = require("fs");
|
|
9
|
+
import produce from "immer";
|
|
10
|
+
import {loadConfig} from "./config";
|
|
9
11
|
|
|
10
12
|
let server: http.Server | null = null;
|
|
11
13
|
|
|
@@ -13,45 +15,49 @@ const CACHE_KEY = `${process.cwd()}/node_modules/_reactivated/renderer.js`;
|
|
|
13
15
|
const production = process.env.NODE_ENV === "production";
|
|
14
16
|
const identifiers = production ? "short" : "debug";
|
|
15
17
|
|
|
16
|
-
esbuild
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
restartServer();
|
|
42
|
-
},
|
|
18
|
+
const defaultConfig: Readonly<esbuild.BuildOptions> = {
|
|
19
|
+
stdin: {
|
|
20
|
+
contents: `
|
|
21
|
+
export {server} from "reactivated/dist/renderer";
|
|
22
|
+
`,
|
|
23
|
+
resolveDir: process.cwd(),
|
|
24
|
+
loader: "ts",
|
|
25
|
+
},
|
|
26
|
+
minify: production,
|
|
27
|
+
bundle: true,
|
|
28
|
+
platform: "node",
|
|
29
|
+
outfile: "./node_modules/_reactivated/renderer.js",
|
|
30
|
+
sourcemap: true,
|
|
31
|
+
target: "es2018",
|
|
32
|
+
preserveSymlinks: true,
|
|
33
|
+
// Needed so _reactivated is included in renderer.tsx regardless
|
|
34
|
+
// of the location of reactivated being in the cwd node_modules or
|
|
35
|
+
// above as in monorepos.
|
|
36
|
+
nodePaths: [`${process.cwd()}/node_modules`],
|
|
37
|
+
watch:
|
|
38
|
+
production === true
|
|
39
|
+
? false
|
|
40
|
+
: {
|
|
41
|
+
onRebuild: () => {
|
|
42
|
+
restartServer();
|
|
43
43
|
},
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
44
|
+
},
|
|
45
|
+
plugins: [
|
|
46
|
+
ImportGlobPlugin(),
|
|
47
|
+
// We manually pass in identifiers because the client is not
|
|
48
|
+
// minified by esbuild but the renderer is, so class names could
|
|
49
|
+
// differ.
|
|
50
|
+
// Instead of set it manually instead of relying on minification
|
|
51
|
+
// settings.
|
|
52
|
+
vanillaExtractPlugin({identifiers}),
|
|
53
|
+
linaria({sourceMap: true}),
|
|
54
|
+
],
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
const finalConfig = produce(defaultConfig, loadConfig().rendererBuildConfig);
|
|
58
|
+
|
|
59
|
+
esbuild
|
|
60
|
+
.build(finalConfig)
|
|
55
61
|
.then(() => {
|
|
56
62
|
if (production === false) {
|
|
57
63
|
restartServer();
|
package/src/config.tsx
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import {BuildOptions} from "esbuild";
|
|
3
|
+
|
|
4
|
+
export type Config = Readonly<{
|
|
5
|
+
clientBuildConfig: (options: BuildOptions) => BuildOptions;
|
|
6
|
+
rendererBuildConfig: (options: BuildOptions) => BuildOptions;
|
|
7
|
+
renderPage: (template: React.ReactNode) => React.ReactNode;
|
|
8
|
+
}>;
|
|
9
|
+
|
|
10
|
+
const ident = <T,>(x: T) => x;
|
|
11
|
+
const defaults: Config = {
|
|
12
|
+
clientBuildConfig: ident,
|
|
13
|
+
rendererBuildConfig: ident,
|
|
14
|
+
renderPage: ident,
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Function exists mainly just for type checking
|
|
19
|
+
*/
|
|
20
|
+
export const config = (c: Partial<Config>): Partial<Config> => {
|
|
21
|
+
return c;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Load the project custom configuration
|
|
26
|
+
*/
|
|
27
|
+
export const loadConfig = (): Config => {
|
|
28
|
+
let overrides: Partial<Config> = {};
|
|
29
|
+
try {
|
|
30
|
+
overrides = require(`${process.cwd()}/client/reactivated.conf`).default;
|
|
31
|
+
} catch (e) {
|
|
32
|
+
console.debug(`Could not load @client/reactivated.conf: ${e}`);
|
|
33
|
+
}
|
|
34
|
+
return {
|
|
35
|
+
...defaults,
|
|
36
|
+
...overrides,
|
|
37
|
+
};
|
|
38
|
+
};
|
package/src/index.tsx
CHANGED
package/src/renderer.tsx
CHANGED
|
@@ -16,6 +16,9 @@ import {
|
|
|
16
16
|
const REACTIVATED_CLIENT_ROOT = process.env.REACTIVATED_CLIENT_ROOT ?? `../client`;
|
|
17
17
|
|
|
18
18
|
import {Settings} from "./models";
|
|
19
|
+
import {loadConfig} from "./config";
|
|
20
|
+
|
|
21
|
+
const config = loadConfig();
|
|
19
22
|
|
|
20
23
|
// TODO: WHAT DOES THIS NEED TO BE? Even 100k was super fragile and a 10 choice field broke it.
|
|
21
24
|
export const BODY_SIZE_LIMIT = "100000000k";
|
|
@@ -88,7 +91,7 @@ export const render = ({context, props}: {context: any; props: any}): Result =>
|
|
|
88
91
|
const rendered = ReactDOMServer.renderToString(
|
|
89
92
|
<HelmetProvider context={helmetContext}>
|
|
90
93
|
<Provider value={context}>
|
|
91
|
-
<Template {...props} />
|
|
94
|
+
{config.renderPage(<Template {...props} />)}
|
|
92
95
|
</Provider>
|
|
93
96
|
</HelmetProvider>,
|
|
94
97
|
);
|