@builder.io/react 3.0.9-0 → 3.0.9-2
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/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/string-to-function.js +7 -1
- package/dist/lib/src/functions/string-to-function.js.map +1 -1
- package/dist/lib/src/scripts/iso-vm.js +5 -2
- package/dist/lib/src/scripts/iso-vm.js.map +1 -1
- package/package.json +2 -2
- package/src/functions/string-to-function.ts +41 -25
- package/src/scripts/iso-vm.js +11 -4
package/dist/lib/package.json
CHANGED
|
@@ -100,6 +100,7 @@ function stringToFunction(str, expression, errors, logs) {
|
|
|
100
100
|
: null;
|
|
101
101
|
}));
|
|
102
102
|
try {
|
|
103
|
+
// returning objects throw errors in isolated vm, so we stringify it and parse it back
|
|
103
104
|
var res = JSON.parse(resultStr);
|
|
104
105
|
return res;
|
|
105
106
|
}
|
|
@@ -133,7 +134,12 @@ var indexOfBuilderInstance = 3;
|
|
|
133
134
|
var makeFn = function (code, useReturn) {
|
|
134
135
|
// Order must match the order of the arguments to the function
|
|
135
136
|
var names = ['state', 'event', 'block', 'builder', 'Device', 'update', 'Builder', 'context'];
|
|
136
|
-
|
|
137
|
+
// Convert all argument references to proxies, and pass `copySync` method to target object, to return a copy of the original JS object
|
|
138
|
+
// https://github.com/laverdet/isolated-vm#referencecopysync
|
|
139
|
+
var refToProxyFn = "\n var refToProxy = (obj) => {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n return new Proxy({}, {\n get(target, key) {\n if (key === 'copySync') {\n return () => obj.copySync();\n }\n const val = obj.getSync(key);\n if (typeof val?.getSync === 'function') {\n return refToProxy(val);\n }\n return val;\n },\n set(target, key, value) {\n obj.setSync(key, value);\n },\n deleteProperty(target, key) {\n obj.deleteSync(key);\n }\n })\n }\n";
|
|
140
|
+
// Returned object will be stringified and parsed back to the parent isolate
|
|
141
|
+
var strinfigyFn = "\n var stringify = (val) => {\n if (typeof val === 'object' && val !== null) {\n return JSON.stringify(val.copySync ? val.copySync() : val);\n }\n return val;\n }\n ";
|
|
142
|
+
return "\n".concat(refToProxyFn, "\n").concat(strinfigyFn, "\n").concat(names.map(function (arg, index) { return "var ".concat(arg, " = refToProxy($").concat(index, ");"); }).join('\n')).concat("\nvar ctx = context;\n".concat(useReturn ? "return stringify(".concat(code, ");") : code, ";\n"));
|
|
137
143
|
};
|
|
138
144
|
var getIsolateContext = function () {
|
|
139
145
|
if (sdk_1.Builder.serverContext) {
|
|
@@ -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;AAErC,IAAM,OAAO,GAAuD,EAAE,CAAC;AAahE,IAAM,GAAG,GAAG,UAAC,KAAU,IAAK,OAAA,aAAO,EAAP,CAAO,CAAC;AAA9B,QAAA,GAAG,OAA2B;AAE3C,SAAgB,gBAAgB,CAC9B,GAAW,EACX,UAAiB,EACjB,MAAgB,EAChB,IAAe;IAFf,2BAAA,EAAA,iBAAiB;IAIjB,mBAAmB;IACnB,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE;QACvB,OAAO,cAAM,OAAA,SAAS,EAAT,CAAS,CAAC;KACxB;IAED,IAAM,QAAQ,GAAG,GAAG,GAAG,GAAG,GAAG,UAAU,CAAC;IACxC,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;QACrB,OAAO,OAAO,CAAC,QAAQ,CAAE,CAAC;KAC3B;IAED,oBAAoB;IACpB,IAAM,SAAS,GACb,CAAC,UAAU;QACT,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QACvF,GAAG,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IACvC,IAAI,EAAE,GAAa;QACjB,yBAAyB;IAC3B,CAAC,CAAC;IAEF,IAAI;QACF,oEAAoE;QACpE,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,4BAA4B;YAC5B,EAAE,GAAG,IAAI,QAAQ,CACf,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,SAAS;YACT,qEAAqE;YACrE,kDAAkD;YAClD,kzBA6BM,SAAS,CAAC,CAAC,CAAC,kBAAW,GAAG,OAAI,CAAC,CAAC,CAAC,GAAG,6BAEzC,CACF,CAAC;SACH;KACF;IAAC,OAAO,KAAU,EAAE;QACnB,IAAI,MAAM,EAAE;YACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACpB;QACD,IAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC;QACvC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;YAC1C,IAAI,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE;gBACxC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACpB;SACF;QACD,IAAI,aAAO,CAAC,SAAS,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,oCAA6B,GAAG,CAAE,EAAE,KAAK,CAAC,CAAC;SACzD;KACF;IAED,IAAM,KAAK,GAAG;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAC3B,IAAI;YACF,IAAI,aAAO,CAAC,SAAS,EAAE;gBACrB,OAAO,EAAE,eAAI,IAAI,EAAE;aACpB;iBAAM;gBACL,0BAA0B;gBAC1B,iGAAiG;gBACjG,4CAA4C;gBAC5C,6HAA6H;gBAC7H,4FAA4F;gBAC5F,0FAA0F;gBAC1F,uBAAuB;gBACvB,6DAA6D;gBAC7D,IAAM,cAAc,GAAkC,iBAAiB,EAAE,CAAC;gBAC1E,IAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC;gBACnC,+FAA+F;gBAC/F,wFAAwF;gBACxF,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;gBAEzC,oEAAoE;gBACpE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;oBAAU,cAAc;yBAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;wBAAd,yBAAc;;oBAC1C,IAAI,IAAA,kBAAO,GAAE,EAAE;wBACb,OAAO,CAAC,GAAG,OAAX,OAAO,EAAQ,IAAI,EAAE;qBACtB;gBACH,CAAC,CAAC,CAAC;gBAEH,IAAM,KAAG,GAAG,IAAA,yCAAkB,EAAC,aAAa,CAAiC,CAAC;gBAC9E,IAAM,SAAS,GAAG,cAAc,CAAC,eAAe,CAC9C,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,EACtB,IAAI,CAAC,GAAG,CAAC,UAAC,GAAG,EAAE,KAAK;oBAClB,OAAA,OAAO,GAAG,KAAK,QAAQ;wBACrB,CAAC,CAAC,IAAI,KAAG,CAAC,SAAS,CACf,KAAK,KAAK,sBAAsB;4BAC9B,CAAC,uBAEM,GAAG,KACN,iBAAiB,EAAE,cAAM,OAAA,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAzB,CAAyB,IAEtD,CAAC,CAAC,GAAG,CACR;wBACH,CAAC,CAAC,IAAI;gBAVR,CAUQ,CACT,CACF,CAAC;gBACF,IAAI;oBACF,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAClC,OAAO,GAAG,CAAC;iBACZ;gBAAC,OAAO,MAAW,EAAE;oBACpB,OAAO,SAAS,CAAC;iBAClB;aACF;SACF;QAAC,OAAO,KAAU,EAAE;YACnB,IAAI,aAAO,CAAC,SAAS,EAAE;gBACrB,OAAO,CAAC,IAAI,CACV,4BAA4B,EAC5B,KAAK,CAAC,OAAO,IAAI,KAAK,EACtB,IAAI,EACJ,GAAG,EACH,KAAK,CAAC,KAAK,IAAI,KAAK,CACrB,CAAC;aACH;iBAAM;gBACL,IAAI,IAAA,kBAAO,GAAE,EAAE;oBACb,OAAO,CAAC,KAAK,CACX,4BAA4B,EAC5B,KAAK,CAAC,OAAO,IAAI,KAAK,EACtB,IAAI,EACJ,GAAG,EACH,KAAK,CAAC,KAAK,IAAI,KAAK,CACrB,CAAC;iBACH;aACF;YACD,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aACpB;YACD,OAAO,IAAI,CAAC;SACb;IACH,CAAC,CAAC;IAEF,IAAI,aAAO,CAAC,SAAS,EAAE;QACrB,OAAO,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;KAC3B;IAED,OAAO,KAAK,CAAC;AACf,CAAC;
|
|
1
|
+
{"version":3,"file":"string-to-function.js","sourceRoot":"","sources":["../../../../src/functions/string-to-function.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,7 +42,7 @@ var jail = context.global;
|
|
|
42
42
|
var state = { articles: { bar: [{ a: 1 }] } };
|
|
43
43
|
var fetch = require('node-fetch');
|
|
44
44
|
var fetching = function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
45
|
-
var result, json;
|
|
45
|
+
var result, json, b;
|
|
46
46
|
return __generator(this, function (_a) {
|
|
47
47
|
switch (_a.label) {
|
|
48
48
|
case 0: return [4 /*yield*/, fetch("https://cdn.builder.io/api/v3/content/page?apiKey=c3e3257ff5594facbf478a68d37f766d&limit=1&fields=id")];
|
|
@@ -52,8 +52,11 @@ var fetching = function () { return __awaiter(void 0, void 0, void 0, function (
|
|
|
52
52
|
case 2:
|
|
53
53
|
json = _a.sent();
|
|
54
54
|
console.log(json);
|
|
55
|
+
b = undefined;
|
|
56
|
+
jail.setSync('returnValue', function (val) { return (b = val); });
|
|
55
57
|
state.articles = json;
|
|
56
|
-
context.evalClosureSync("\n const refToProxy = (obj) => {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n return new Proxy(
|
|
58
|
+
context.evalClosureSync("\n const refToProxy = (obj) => {\n if (typeof obj !== 'object' || obj === null) {\n return obj;\n }\n return new Proxy(obj, {\n get(target, key) {\n if(key === 'toJS') {\n return () => obj.copySync();\n }\n const val = obj.getSync(key);\n if (typeof val?.getSync === 'function') {\n return refToProxy(val);\n }\n return val;\n },\n set(target, key, value) {\n obj.setSync(key, value);\n },\n deleteProperty(target, key) {\n obj.deleteSync(key);\n },\n })\n }\n const state = refToProxy($0);\n \n returnValue(state.toJS());\n return state.articles.results.toJS();\n ", [new ivm.Reference(state)]);
|
|
59
|
+
console.log(b.articles.results);
|
|
57
60
|
return [2 /*return*/];
|
|
58
61
|
}
|
|
59
62
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iso-vm.js","sourceRoot":"","sources":["../../../../src/scripts/iso-vm.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEnC,IAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;AAEtD,IAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;AAC5C,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;AAC5B,IAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAChD,IAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACpC,IAAM,QAAQ,GAAG;;;;oBACA,qBAAM,KAAK,CACxB,sGAAsG,CACvG,EAAA;;gBAFK,MAAM,GAAG,SAEd;gBACY,qBAAM,MAAM,CAAC,IAAI,EAAE,EAAA;;gBAA1B,IAAI,GAAG,SAAmB;gBAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAClB,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACtB,OAAO,CAAC,eAAe,CACrB,
|
|
1
|
+
{"version":3,"file":"iso-vm.js","sourceRoot":"","sources":["../../../../src/scripts/iso-vm.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAM,GAAG,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;AAEnC,IAAM,OAAO,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;AAEtD,IAAM,OAAO,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;AAC5C,IAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC;AAC5B,IAAM,KAAK,GAAG,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AAChD,IAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AACpC,IAAM,QAAQ,GAAG;;;;oBACA,qBAAM,KAAK,CACxB,sGAAsG,CACvG,EAAA;;gBAFK,MAAM,GAAG,SAEd;gBACY,qBAAM,MAAM,CAAC,IAAI,EAAE,EAAA;;gBAA1B,IAAI,GAAG,SAAmB;gBAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACd,CAAC,GAAG,SAAS,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,UAAA,GAAG,IAAI,OAAA,CAAC,CAAC,GAAG,GAAG,CAAC,EAAT,CAAS,CAAC,CAAC;gBAC9C,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;gBACtB,OAAO,CAAC,eAAe,CACrB,qwBA4BF,EACE,CAAC,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAC3B,CAAC;gBAEF,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;;;;KACjC,CAAC;AACF,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;AAEzC,oEAAoE;AACpE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE;IAAU,cAAO;SAAP,UAAO,EAAP,qBAAO,EAAP,IAAO;QAAP,yBAAO;;IACnC,OAAO,CAAC,GAAG,OAAX,OAAO,EAAQ,IAAI,EAAE;AACvB,CAAC,CAAC,CAAC;AAEH,QAAQ,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@builder.io/react",
|
|
3
|
-
"version": "3.0.9-
|
|
3
|
+
"version": "3.0.9-2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"main": "dist/builder-react.cjs.js",
|
|
@@ -132,5 +132,5 @@
|
|
|
132
132
|
"hoistingLimits": "workspaces"
|
|
133
133
|
},
|
|
134
134
|
"gitHead": "4d96fbc32864698afbb355ab991c6d90be991951",
|
|
135
|
-
"stableVersion": "3.0.
|
|
135
|
+
"stableVersion": "3.0.9-1"
|
|
136
136
|
}
|
|
@@ -150,6 +150,7 @@ export function stringToFunction(
|
|
|
150
150
|
)
|
|
151
151
|
);
|
|
152
152
|
try {
|
|
153
|
+
// returning objects throw errors in isolated vm, so we stringify it and parse it back
|
|
153
154
|
const res = JSON.parse(resultStr);
|
|
154
155
|
return res;
|
|
155
156
|
} catch (_error: any) {
|
|
@@ -191,38 +192,53 @@ export function stringToFunction(
|
|
|
191
192
|
}
|
|
192
193
|
|
|
193
194
|
const indexOfBuilderInstance = 3;
|
|
195
|
+
|
|
194
196
|
const makeFn = (code: string, useReturn: boolean) => {
|
|
195
197
|
// Order must match the order of the arguments to the function
|
|
196
198
|
const names = ['state', 'event', 'block', 'builder', 'Device', 'update', 'Builder', 'context'];
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
199
|
+
|
|
200
|
+
// Convert all argument references to proxies, and pass `copySync` method to target object, to return a copy of the original JS object
|
|
201
|
+
// https://github.com/laverdet/isolated-vm#referencecopysync
|
|
202
|
+
const refToProxyFn = `
|
|
203
|
+
var refToProxy = (obj) => {
|
|
204
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
205
|
+
return obj;
|
|
206
|
+
}
|
|
207
|
+
return new Proxy({}, {
|
|
208
|
+
get(target, key) {
|
|
209
|
+
if (key === 'copySync') {
|
|
210
|
+
return () => obj.copySync();
|
|
211
|
+
}
|
|
212
|
+
const val = obj.getSync(key);
|
|
213
|
+
if (typeof val?.getSync === 'function') {
|
|
214
|
+
return refToProxy(val);
|
|
215
|
+
}
|
|
216
|
+
return val;
|
|
217
|
+
},
|
|
218
|
+
set(target, key, value) {
|
|
219
|
+
obj.setSync(key, value);
|
|
220
|
+
},
|
|
221
|
+
deleteProperty(target, key) {
|
|
222
|
+
obj.deleteSync(key);
|
|
223
|
+
}
|
|
224
|
+
})
|
|
201
225
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
return val;
|
|
209
|
-
},
|
|
210
|
-
set(target, key, value) {
|
|
211
|
-
obj.setSync(key, value);
|
|
212
|
-
},
|
|
213
|
-
deleteProperty(target, key) {
|
|
214
|
-
obj.deleteSync(key);
|
|
226
|
+
`;
|
|
227
|
+
// Returned object will be stringified and parsed back to the parent isolate
|
|
228
|
+
const strinfigyFn = `
|
|
229
|
+
var stringify = (val) => {
|
|
230
|
+
if (typeof val === 'object' && val !== null) {
|
|
231
|
+
return JSON.stringify(val.copySync ? val.copySync() : val);
|
|
215
232
|
}
|
|
216
|
-
|
|
217
|
-
}
|
|
233
|
+
return val;
|
|
234
|
+
}
|
|
235
|
+
`;
|
|
236
|
+
|
|
237
|
+
return `
|
|
238
|
+
${refToProxyFn}
|
|
239
|
+
${strinfigyFn}
|
|
218
240
|
`.concat(names.map((arg, index) => `var ${arg} = refToProxy($${index});`).join('\n')).concat(`
|
|
219
241
|
var ctx = context;
|
|
220
|
-
var stringify = (val) => {
|
|
221
|
-
if (typeof val === 'object' && val !== null) {
|
|
222
|
-
return JSON.stringify(val);
|
|
223
|
-
}
|
|
224
|
-
return val;
|
|
225
|
-
}
|
|
226
242
|
${useReturn ? `return stringify(${code});` : code};
|
|
227
243
|
`);
|
|
228
244
|
};
|
package/src/scripts/iso-vm.js
CHANGED
|
@@ -12,6 +12,8 @@ const fetching = async () => {
|
|
|
12
12
|
);
|
|
13
13
|
const json = await result.json();
|
|
14
14
|
console.log(json);
|
|
15
|
+
let b = undefined;
|
|
16
|
+
jail.setSync('returnValue', val => (b = val));
|
|
15
17
|
state.articles = json;
|
|
16
18
|
context.evalClosureSync(
|
|
17
19
|
`
|
|
@@ -19,8 +21,11 @@ const fetching = async () => {
|
|
|
19
21
|
if (typeof obj !== 'object' || obj === null) {
|
|
20
22
|
return obj;
|
|
21
23
|
}
|
|
22
|
-
return new Proxy(
|
|
24
|
+
return new Proxy(obj, {
|
|
23
25
|
get(target, key) {
|
|
26
|
+
if(key === 'toJS') {
|
|
27
|
+
return () => obj.copySync();
|
|
28
|
+
}
|
|
24
29
|
const val = obj.getSync(key);
|
|
25
30
|
if (typeof val?.getSync === 'function') {
|
|
26
31
|
return refToProxy(val);
|
|
@@ -32,16 +37,18 @@ const fetching = async () => {
|
|
|
32
37
|
},
|
|
33
38
|
deleteProperty(target, key) {
|
|
34
39
|
obj.deleteSync(key);
|
|
35
|
-
}
|
|
40
|
+
},
|
|
36
41
|
})
|
|
37
42
|
}
|
|
38
43
|
const state = refToProxy($0);
|
|
39
44
|
|
|
40
|
-
|
|
41
|
-
return
|
|
45
|
+
returnValue(state.toJS());
|
|
46
|
+
return state.articles.results.toJS();
|
|
42
47
|
`,
|
|
43
48
|
[new ivm.Reference(state)]
|
|
44
49
|
);
|
|
50
|
+
|
|
51
|
+
console.log(b.articles.results);
|
|
45
52
|
};
|
|
46
53
|
jail.setSync('global', jail.derefInto());
|
|
47
54
|
|