@builder.io/react 3.2.0 → 3.2.1
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 +4 -0
- package/README.md +8 -0
- package/dist/builder-react-lite.cjs.js +1 -1
- package/dist/builder-react-lite.cjs.js.map +1 -1
- package/dist/builder-react-lite.esm.js +1 -1
- package/dist/builder-react-lite.esm.js.map +1 -1
- package/dist/builder-react.browser.js +2 -2
- package/dist/builder-react.browser.js.map +1 -1
- package/dist/builder-react.cjs.js +1 -1
- package/dist/builder-react.cjs.js.map +1 -1
- package/dist/builder-react.es5.js +1 -1
- package/dist/builder-react.es5.js.map +1 -1
- package/dist/builder-react.unpkg.js +2 -2
- package/dist/builder-react.unpkg.js.map +1 -1
- package/dist/lib/package.json +1 -1
- package/dist/lib/src/functions/should-force-browser-runtime-in-node.js +22 -0
- package/dist/lib/src/functions/should-force-browser-runtime-in-node.js.map +1 -0
- package/dist/lib/src/functions/string-to-function.js +2 -1
- package/dist/lib/src/functions/string-to-function.js.map +1 -1
- package/dist/lib/src/functions/try-eval.js +2 -1
- package/dist/lib/src/functions/try-eval.js.map +1 -1
- package/dist/lib/src/functions/with-children.js +16 -1
- package/dist/lib/src/functions/with-children.js.map +1 -1
- package/dist/types/src/functions/should-force-browser-runtime-in-node.d.ts +1 -0
- package/package.json +2 -2
- package/src/components/core-react.code-workspace +14 -0
- package/src/functions/should-force-browser-runtime-in-node.ts +23 -0
- package/src/functions/string-to-function.ts +2 -1
- package/src/functions/try-eval.tsx +2 -1
- package/src/functions/with-children.tsx +18 -1
package/dist/lib/package.json
CHANGED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.shouldForceBrowserRuntimeInNode = void 0;
|
|
4
|
+
function isNodeRuntime() {
|
|
5
|
+
var _a;
|
|
6
|
+
return typeof process !== 'undefined' && Boolean((_a = process === null || process === void 0 ? void 0 : process.versions) === null || _a === void 0 ? void 0 : _a.node);
|
|
7
|
+
}
|
|
8
|
+
var shouldForceBrowserRuntimeInNode = function () {
|
|
9
|
+
var _a;
|
|
10
|
+
if (!isNodeRuntime())
|
|
11
|
+
return false;
|
|
12
|
+
var isArm64 = process.arch === 'arm64';
|
|
13
|
+
var isNode20 = process.version.startsWith('v20');
|
|
14
|
+
var hasNoNodeSnapshotNodeOption = (_a = process.env.NODE_OPTIONS) === null || _a === void 0 ? void 0 : _a.includes('--no-node-snapshot');
|
|
15
|
+
if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
|
|
16
|
+
console.log("Skipping usage of `isolated-vm` to avoid crashes in Node v20 on an arm64 machine.\n If you would like to use the `isolated-vm` package on this machine, please provide the `NODE_OPTIONS=--no-node-snapshot` config to your Node process.\n See https://github.com/BuilderIO/builder/blob/main/packages/react/README.md#node-v20--m1-macs-apple-silicon-support for more information.\n ");
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
return false;
|
|
20
|
+
};
|
|
21
|
+
exports.shouldForceBrowserRuntimeInNode = shouldForceBrowserRuntimeInNode;
|
|
22
|
+
//# sourceMappingURL=should-force-browser-runtime-in-node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"should-force-browser-runtime-in-node.js","sourceRoot":"","sources":["../../../../src/functions/should-force-browser-runtime-in-node.ts"],"names":[],"mappings":";;;AAAA,SAAS,aAAa;;IACpB,OAAO,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,0CAAE,IAAI,CAAC,CAAC;AAC5E,CAAC;AAEM,IAAM,+BAA+B,GAAG;;IAC7C,IAAI,CAAC,aAAa,EAAE;QAAE,OAAO,KAAK,CAAC;IAEnC,IAAM,OAAO,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC;IACzC,IAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAEnD,IAAM,2BAA2B,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,YAAY,0CAAE,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAE7F,IAAI,OAAO,IAAI,QAAQ,IAAI,CAAC,2BAA2B,EAAE;QACvD,OAAO,CAAC,GAAG,CAAC,mYAGX,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;KACb;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAlBW,QAAA,+BAA+B,mCAkB1C"}
|
|
@@ -15,6 +15,7 @@ exports.getIsolateContext = exports.makeFn = exports.stringToFunction = exports.
|
|
|
15
15
|
var sdk_1 = require("@builder.io/sdk");
|
|
16
16
|
var safe_dynamic_require_1 = require("./safe-dynamic-require");
|
|
17
17
|
var is_debug_1 = require("./is-debug");
|
|
18
|
+
var should_force_browser_runtime_in_node_1 = require("./should-force-browser-runtime-in-node");
|
|
18
19
|
var fnCache = {};
|
|
19
20
|
var api = function (state) { return sdk_1.builder; };
|
|
20
21
|
exports.api = api;
|
|
@@ -65,7 +66,7 @@ function stringToFunction(str, expression, errors, logs) {
|
|
|
65
66
|
args[_i] = arguments[_i];
|
|
66
67
|
}
|
|
67
68
|
try {
|
|
68
|
-
if (sdk_1.Builder.isBrowser) {
|
|
69
|
+
if (sdk_1.Builder.isBrowser || (0, should_force_browser_runtime_in_node_1.shouldForceBrowserRuntimeInNode)()) {
|
|
69
70
|
return fn.apply(void 0, args);
|
|
70
71
|
}
|
|
71
72
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string-to-function.js","sourceRoot":"","sources":["../../../../src/functions/string-to-function.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,uCAAmD;AACnD,+DAA4D;AAC5D,uCAAqC;
|
|
1
|
+
{"version":3,"file":"string-to-function.js","sourceRoot":"","sources":["../../../../src/functions/string-to-function.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ var sdk_1 = require("@builder.io/sdk");
|
|
|
6
6
|
var safe_dynamic_require_1 = require("./safe-dynamic-require");
|
|
7
7
|
var is_debug_1 = require("./is-debug");
|
|
8
8
|
var string_to_function_1 = require("./string-to-function");
|
|
9
|
+
var should_force_browser_runtime_in_node_1 = require("./should-force-browser-runtime-in-node");
|
|
9
10
|
var tryEval = function (str, data, errors) {
|
|
10
11
|
if (data === void 0) { data = {}; }
|
|
11
12
|
var value = str;
|
|
@@ -34,7 +35,7 @@ var tryEval = function (str, data, errors) {
|
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
try {
|
|
37
|
-
if (sdk_1.Builder.isBrowser) {
|
|
38
|
+
if (sdk_1.Builder.isBrowser || (0, should_force_browser_runtime_in_node_1.shouldForceBrowserRuntimeInNode)()) {
|
|
38
39
|
return fn(data || {});
|
|
39
40
|
}
|
|
40
41
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"try-eval.js","sourceRoot":"","sources":["../../../../src/functions/try-eval.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AACb,uCAA0C;AAC1C,+DAA4D;AAC5D,uCAAqC;AACrC,2DAAiE;
|
|
1
|
+
{"version":3,"file":"try-eval.js","sourceRoot":"","sources":["../../../../src/functions/try-eval.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AACb,uCAA0C;AAC1C,+DAA4D;AAC5D,uCAAqC;AACrC,2DAAiE;AACjE,+FAAyF;AAElF,IAAM,OAAO,GAAG,UAAC,GAAY,EAAE,IAAc,EAAE,MAAgB;IAAhC,qBAAA,EAAA,SAAc;IAClD,IAAM,KAAK,GAAG,GAAG,CAAC;IAClB,IAAI,CAAC,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE;QAChD,OAAO;KACR;IACD,IAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC;IACvE,IAAI,EAAE,GAAa;QACjB,yBAAyB;IAC3B,CAAC,CAAC;IACF,IAAI;QACF,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,oEAAoE;YACpE,yBAAyB;YACzB,EAAE,GAAG,IAAI,QAAQ,CACf,OAAO;YACP,qEAAqE;YACrE,4bAeI,SAAS,CAAC,CAAC,CAAC,kBAAW,GAAG,OAAI,CAAC,CAAC,CAAC,GAAG,iBACtC,CACH,CAAC;SACH;KACF;IAAC,OAAO,KAAU,EAAE;QACnB,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;SACrD;aAAM;YACL,gDAAgD;SACjD;KACF;IACD,IAAI;QACF,IAAI,aAAO,CAAC,SAAS,IAAI,IAAA,sEAA+B,GAAE,EAAE;YAC1D,OAAO,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;SACvB;aAAM;YACL,4FAA4F;YAC5F,0FAA0F;YAC1F,uBAAuB;YACvB,IAAM,GAAG,GAAG,IAAA,yCAAkB,EAAC,aAAa,CAAC,CAAC;YAC9C,IAAM,OAAO,GAAG,IAAA,sCAAiB,GAAE,CAAC;YACpC,IAAM,QAAQ,GAAG,IAAA,2BAAM,EAAC,GAAI,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YACpD,IAAM,SAAS,GAAG,OAAO,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACrF,IAAI;gBACF,sFAAsF;gBACtF,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;aAC9B;YAAC,OAAO,MAAW,EAAE;gBACpB,OAAO,SAAS,CAAC;aAClB;SACF;KACF;IAAC,OAAO,KAAU,EAAE;QACnB,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;QAED,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;SACnF;aAAM;YACL,IAAI,IAAA,kBAAO,GAAE,EAAE;gBACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;aACpF;YACD,gDAAgD;SACjD;KACF;IAED,OAAO;AACT,CAAC,CAAC;AA5EW,QAAA,OAAO,WA4ElB"}
|
|
@@ -18,6 +18,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.withChildren = void 0;
|
|
19
19
|
var react_1 = __importDefault(require("react"));
|
|
20
20
|
var builder_block_component_1 = require("../components/builder-block.component");
|
|
21
|
+
var isBuilderElement = function (item) {
|
|
22
|
+
return Boolean((item === null || item === void 0 ? void 0 : item['@type']) === '@builder.io/sdk:Element');
|
|
23
|
+
};
|
|
21
24
|
/**
|
|
22
25
|
* Higher order component for passing Builder.io children as React children
|
|
23
26
|
*
|
|
@@ -42,14 +45,26 @@ var builder_block_component_1 = require("../components/builder-block.component")
|
|
|
42
45
|
*/
|
|
43
46
|
var withChildren = function (Component) {
|
|
44
47
|
var HOC = react_1.default.forwardRef(function (props, ref) {
|
|
48
|
+
var _a, _b;
|
|
49
|
+
var useProps = __assign({}, props);
|
|
45
50
|
var children = props.children ||
|
|
46
51
|
(props.builderBlock &&
|
|
47
52
|
props.builderBlock.children &&
|
|
48
53
|
props.builderBlock.children.map(function (child) { return react_1.default.createElement(builder_block_component_1.BuilderBlock, { key: child.id, block: child }); }));
|
|
54
|
+
var componentOptions = (_b = (_a = props.builderBlock) === null || _a === void 0 ? void 0 : _a.component) === null || _b === void 0 ? void 0 : _b.options;
|
|
55
|
+
if (!!componentOptions) {
|
|
56
|
+
Object.keys(componentOptions).forEach(function (key) {
|
|
57
|
+
var value = componentOptions[key];
|
|
58
|
+
var valueIsArrayOfBuilderElements = Array.isArray(value) && value.every(isBuilderElement);
|
|
59
|
+
if (valueIsArrayOfBuilderElements) {
|
|
60
|
+
useProps[key] = value.map(function (child) { return react_1.default.createElement(builder_block_component_1.BuilderBlock, { key: child.id, block: child }); });
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
49
64
|
return (
|
|
50
65
|
// getting type errors due to `@types/react` version mismatches. Can safely ignore.
|
|
51
66
|
// @ts-ignore
|
|
52
|
-
react_1.default.createElement(Component, __assign({},
|
|
67
|
+
react_1.default.createElement(Component, __assign({}, useProps, { ref: ref }), children));
|
|
53
68
|
});
|
|
54
69
|
HOC.builderOptions = {
|
|
55
70
|
canHaveChildren: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-children.js","sourceRoot":"","sources":["../../../../src/functions/with-children.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;AACb,gDAA0B;AAE1B,iFAAqE;AAErE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,IAAM,YAAY,GAAG,UAAmB,SAAiC;IAC9E,IAAM,GAAG,GAAG,eAAK,CAAC,UAAU,CAC1B,UAAC,KAAK,EAAE,GAAG
|
|
1
|
+
{"version":3,"file":"with-children.js","sourceRoot":"","sources":["../../../../src/functions/with-children.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;AACb,gDAA0B;AAE1B,iFAAqE;AAErE,IAAM,gBAAgB,GAAG,UAAC,IAAa;IACrC,OAAO,OAAO,CAAC,CAAC,IAAY,aAAZ,IAAI,uBAAJ,IAAI,CAAW,OAAO,CAAC,MAAK,yBAAyB,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACI,IAAM,YAAY,GAAG,UAAmB,SAAiC;IAC9E,IAAM,GAAG,GAAG,eAAK,CAAC,UAAU,CAC1B,UAAC,KAAK,EAAE,GAAG;;QACT,IAAM,QAAQ,gBAAQ,KAAK,CAAE,CAAC;QAC9B,IAAM,QAAQ,GACZ,KAAK,CAAC,QAAQ;YACd,CAAC,KAAK,CAAC,YAAY;gBACjB,KAAK,CAAC,YAAY,CAAC,QAAQ;gBAC3B,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,8BAAC,sCAAY,IAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,GAAI,EAA7C,CAA6C,CAAC,CAAC,CAAC;QAE7F,IAAM,gBAAgB,GAAG,MAAA,MAAA,KAAK,CAAC,YAAY,0CAAE,SAAS,0CAAE,OAAO,CAAC;QAChE,IAAI,CAAC,CAAC,gBAAgB,EAAE;YACtB,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG;gBACvC,IAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;gBACpC,IAAM,6BAA6B,GACjC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;gBACxD,IAAI,6BAA6B,EAAE;oBACjC,QAAQ,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,8BAAC,sCAAY,IAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,GAAI,EAA7C,CAA6C,CAAC,CAAC;iBACnF;YACH,CAAC,CAAC,CAAC;SACJ;QAED,OAAO;QACL,mFAAmF;QACnF,aAAa;QACb,8BAAC,SAAS,eAAK,QAAQ,IAAE,GAAG,EAAE,GAAG,KAC9B,QAAQ,CACC,CACb,CAAC;IACJ,CAAC,CACF,CAAC;IAED,GAAW,CAAC,cAAc,GAAG;QAC5B,eAAe,EAAE,IAAI;KACtB,CAAC;IAEF,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AArCW,QAAA,YAAY,gBAqCvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const shouldForceBrowserRuntimeInNode: () => boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@builder.io/react",
|
|
3
|
-
"version": "3.2.
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"main": "dist/builder-react.cjs.js",
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"react-dom": ">=16.8.0"
|
|
125
125
|
},
|
|
126
126
|
"dependencies": {
|
|
127
|
-
"@builder.io/sdk": "2.2.
|
|
127
|
+
"@builder.io/sdk": "2.2.1",
|
|
128
128
|
"@emotion/core": "^10.0.17",
|
|
129
129
|
"hash-sum": "^2.0.0",
|
|
130
130
|
"isolated-vm": "^4.5.0",
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
function isNodeRuntime(): boolean {
|
|
2
|
+
return typeof process !== 'undefined' && Boolean(process?.versions?.node);
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
export const shouldForceBrowserRuntimeInNode = () => {
|
|
6
|
+
if (!isNodeRuntime()) return false;
|
|
7
|
+
|
|
8
|
+
const isArm64 = process.arch === 'arm64';
|
|
9
|
+
const isNode20 = process.version.startsWith('v20');
|
|
10
|
+
|
|
11
|
+
const hasNoNodeSnapshotNodeOption = process.env.NODE_OPTIONS?.includes('--no-node-snapshot');
|
|
12
|
+
|
|
13
|
+
if (isArm64 && isNode20 && !hasNoNodeSnapshotNodeOption) {
|
|
14
|
+
console.log(`Skipping usage of \`isolated-vm\` to avoid crashes in Node v20 on an arm64 machine.
|
|
15
|
+
If you would like to use the \`isolated-vm\` package on this machine, please provide the \`NODE_OPTIONS=--no-node-snapshot\` config to your Node process.
|
|
16
|
+
See https://github.com/BuilderIO/builder/blob/main/packages/react/README.md#node-v20--m1-macs-apple-silicon-support for more information.
|
|
17
|
+
`);
|
|
18
|
+
|
|
19
|
+
return true;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return false;
|
|
23
|
+
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Builder, builder } from '@builder.io/sdk';
|
|
2
2
|
import { safeDynamicRequire } from './safe-dynamic-require';
|
|
3
3
|
import { isDebug } from './is-debug';
|
|
4
|
+
import { shouldForceBrowserRuntimeInNode } from './should-force-browser-runtime-in-node';
|
|
4
5
|
|
|
5
6
|
const fnCache: { [key: string]: BuilderEvanFunction | undefined } = {};
|
|
6
7
|
|
|
@@ -108,7 +109,7 @@ export function stringToFunction(
|
|
|
108
109
|
|
|
109
110
|
const final = (...args: any[]) => {
|
|
110
111
|
try {
|
|
111
|
-
if (Builder.isBrowser) {
|
|
112
|
+
if (Builder.isBrowser || shouldForceBrowserRuntimeInNode()) {
|
|
112
113
|
return fn(...args);
|
|
113
114
|
} else {
|
|
114
115
|
// TODO: memoize on server
|
|
@@ -3,6 +3,7 @@ import { Builder } from '@builder.io/sdk';
|
|
|
3
3
|
import { safeDynamicRequire } from './safe-dynamic-require';
|
|
4
4
|
import { isDebug } from './is-debug';
|
|
5
5
|
import { getIsolateContext, makeFn } from './string-to-function';
|
|
6
|
+
import { shouldForceBrowserRuntimeInNode } from './should-force-browser-runtime-in-node';
|
|
6
7
|
|
|
7
8
|
export const tryEval = (str?: string, data: any = {}, errors?: Error[]): any => {
|
|
8
9
|
const value = str;
|
|
@@ -47,7 +48,7 @@ export const tryEval = (str?: string, data: any = {}, errors?: Error[]): any =>
|
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
50
|
try {
|
|
50
|
-
if (Builder.isBrowser) {
|
|
51
|
+
if (Builder.isBrowser || shouldForceBrowserRuntimeInNode()) {
|
|
51
52
|
return fn(data || {});
|
|
52
53
|
} else {
|
|
53
54
|
// Below is a hack to get certain code to *only* load in the server build, to not screw with
|
|
@@ -3,6 +3,10 @@ import React from 'react';
|
|
|
3
3
|
import { BuilderElement } from '@builder.io/sdk';
|
|
4
4
|
import { BuilderBlock } from '../components/builder-block.component';
|
|
5
5
|
|
|
6
|
+
const isBuilderElement = (item: unknown): item is BuilderElement => {
|
|
7
|
+
return Boolean((item as any)?.['@type'] === '@builder.io/sdk:Element');
|
|
8
|
+
};
|
|
9
|
+
|
|
6
10
|
/**
|
|
7
11
|
* Higher order component for passing Builder.io children as React children
|
|
8
12
|
*
|
|
@@ -28,16 +32,29 @@ import { BuilderBlock } from '../components/builder-block.component';
|
|
|
28
32
|
export const withChildren = <P extends object>(Component: React.ComponentType<P>) => {
|
|
29
33
|
const HOC = React.forwardRef<any, React.PropsWithChildren<P> & { builderBlock?: BuilderElement }>(
|
|
30
34
|
(props, ref) => {
|
|
35
|
+
const useProps = { ...props };
|
|
31
36
|
const children =
|
|
32
37
|
props.children ||
|
|
33
38
|
(props.builderBlock &&
|
|
34
39
|
props.builderBlock.children &&
|
|
35
40
|
props.builderBlock.children.map(child => <BuilderBlock key={child.id} block={child} />));
|
|
36
41
|
|
|
42
|
+
const componentOptions = props.builderBlock?.component?.options;
|
|
43
|
+
if (!!componentOptions) {
|
|
44
|
+
Object.keys(componentOptions).forEach(key => {
|
|
45
|
+
const value = componentOptions[key];
|
|
46
|
+
const valueIsArrayOfBuilderElements =
|
|
47
|
+
Array.isArray(value) && value.every(isBuilderElement);
|
|
48
|
+
if (valueIsArrayOfBuilderElements) {
|
|
49
|
+
useProps[key] = value.map(child => <BuilderBlock key={child.id} block={child} />);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
|
|
37
54
|
return (
|
|
38
55
|
// getting type errors due to `@types/react` version mismatches. Can safely ignore.
|
|
39
56
|
// @ts-ignore
|
|
40
|
-
<Component {...
|
|
57
|
+
<Component {...useProps} ref={ref}>
|
|
41
58
|
{children}
|
|
42
59
|
</Component>
|
|
43
60
|
);
|