solid-js 1.7.5 → 1.7.7
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/dev.cjs +71 -41
- package/dist/dev.js +71 -41
- package/dist/server.cjs +7 -3
- package/dist/server.js +7 -3
- package/dist/solid.cjs +71 -41
- package/dist/solid.js +71 -41
- package/package.json +55 -109
- package/store/dist/dev.js +1 -1
- package/store/package.json +14 -28
- package/types/jsx.d.ts +7 -1
- package/types/reactive/signal.d.ts +1 -1
- package/types/server/reactive.d.ts +1 -1
- package/universal/package.json +4 -8
- package/web/dist/dev.cjs +3 -3
- package/web/dist/dev.js +4 -4
- package/web/dist/server.cjs +0 -1
- package/web/dist/server.js +0 -1
- package/web/dist/web.cjs +3 -3
- package/web/dist/web.js +4 -4
- package/web/package.json +14 -28
package/dist/dev.cjs
CHANGED
|
@@ -287,7 +287,7 @@ function createResource(pSource, pFetcher, pOptions) {
|
|
|
287
287
|
function loadEnd(p, v, error, key) {
|
|
288
288
|
if (pr === p) {
|
|
289
289
|
pr = null;
|
|
290
|
-
resolved = true;
|
|
290
|
+
key !== undefined && (resolved = true);
|
|
291
291
|
if ((p === initP || v === initP) && options.onHydrated) queueMicrotask(() => options.onHydrated(key, {
|
|
292
292
|
value: v
|
|
293
293
|
}));
|
|
@@ -306,7 +306,7 @@ function createResource(pSource, pFetcher, pOptions) {
|
|
|
306
306
|
function completeLoad(v, err) {
|
|
307
307
|
runUpdates(() => {
|
|
308
308
|
if (err === undefined) setValue(() => v);
|
|
309
|
-
setState(err !== undefined ? "errored" : "ready");
|
|
309
|
+
setState(err !== undefined ? "errored" : resolved ? "ready" : "unresolved");
|
|
310
310
|
setError(err);
|
|
311
311
|
for (const c of contexts.keys()) c.decrement();
|
|
312
312
|
contexts.clear();
|
|
@@ -958,19 +958,26 @@ function castError(err) {
|
|
|
958
958
|
cause: err
|
|
959
959
|
});
|
|
960
960
|
}
|
|
961
|
-
function
|
|
962
|
-
|
|
963
|
-
}
|
|
964
|
-
function handleError(err) {
|
|
965
|
-
const fns = ERROR && lookup(Owner, ERROR);
|
|
966
|
-
if (!fns) throw err;
|
|
961
|
+
function handleError(err, owner = Owner) {
|
|
962
|
+
const fns = ERROR && lookup(owner, ERROR);
|
|
967
963
|
const error = castError(err);
|
|
964
|
+
if (!fns) throw error;
|
|
968
965
|
if (Effects) Effects.push({
|
|
969
966
|
fn() {
|
|
970
|
-
|
|
967
|
+
try {
|
|
968
|
+
for (const f of fns) f(error);
|
|
969
|
+
} catch (e) {
|
|
970
|
+
handleError(e, owner?.owner || null);
|
|
971
|
+
}
|
|
971
972
|
},
|
|
972
973
|
state: STALE
|
|
973
|
-
});else
|
|
974
|
+
});else {
|
|
975
|
+
try {
|
|
976
|
+
for (const f of fns) f(error);
|
|
977
|
+
} catch (e) {
|
|
978
|
+
handleError(e, owner?.owner || null);
|
|
979
|
+
}
|
|
980
|
+
}
|
|
974
981
|
}
|
|
975
982
|
function lookup(owner, key) {
|
|
976
983
|
return owner ? owner.context && owner.context[key] !== undefined ? owner.context[key] : lookup(owner.owner, key) : undefined;
|
|
@@ -1265,6 +1272,12 @@ const propTraps = {
|
|
|
1265
1272
|
function resolveSource(s) {
|
|
1266
1273
|
return !(s = typeof s === "function" ? s() : s) ? {} : s;
|
|
1267
1274
|
}
|
|
1275
|
+
function resolveSources() {
|
|
1276
|
+
for (let i = 0, length = this.length; i < length; ++i) {
|
|
1277
|
+
const v = this[i]();
|
|
1278
|
+
if (v !== undefined) return v;
|
|
1279
|
+
}
|
|
1280
|
+
}
|
|
1268
1281
|
function mergeProps(...sources) {
|
|
1269
1282
|
let proxy = false;
|
|
1270
1283
|
for (let i = 0; i < sources.length; i++) {
|
|
@@ -1294,28 +1307,45 @@ function mergeProps(...sources) {
|
|
|
1294
1307
|
}, propTraps);
|
|
1295
1308
|
}
|
|
1296
1309
|
const target = {};
|
|
1310
|
+
const sourcesMap = {};
|
|
1311
|
+
const defined = new Set();
|
|
1297
1312
|
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1313
|
+
const source = sources[i];
|
|
1314
|
+
if (!source) continue;
|
|
1315
|
+
const sourceKeys = Object.getOwnPropertyNames(source);
|
|
1316
|
+
for (let i = 0, length = sourceKeys.length; i < length; i++) {
|
|
1317
|
+
const key = sourceKeys[i];
|
|
1318
|
+
if (key === "__proto__" || key === "constructor") continue;
|
|
1319
|
+
const desc = Object.getOwnPropertyDescriptor(source, key);
|
|
1320
|
+
if (!defined.has(key)) {
|
|
1321
|
+
if (desc.get) {
|
|
1322
|
+
defined.add(key);
|
|
1323
|
+
Object.defineProperty(target, key, {
|
|
1324
|
+
enumerable: true,
|
|
1325
|
+
configurable: true,
|
|
1326
|
+
get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)])
|
|
1327
|
+
});
|
|
1328
|
+
} else {
|
|
1329
|
+
if (desc.value !== undefined) defined.add(key);
|
|
1330
|
+
target[key] = desc.value;
|
|
1331
|
+
}
|
|
1332
|
+
} else {
|
|
1333
|
+
const sources = sourcesMap[key];
|
|
1334
|
+
if (sources) {
|
|
1335
|
+
if (desc.get) {
|
|
1336
|
+
sources.push(desc.get.bind(source));
|
|
1337
|
+
} else if (desc.value !== undefined) {
|
|
1338
|
+
sources.push(() => desc.value);
|
|
1309
1339
|
}
|
|
1310
|
-
});
|
|
1340
|
+
} else if (target[key] === undefined) target[key] = desc.value;
|
|
1311
1341
|
}
|
|
1312
1342
|
}
|
|
1313
1343
|
}
|
|
1314
1344
|
return target;
|
|
1315
1345
|
}
|
|
1316
1346
|
function splitProps(props, ...keys) {
|
|
1317
|
-
const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);
|
|
1318
1347
|
if ($PROXY in props) {
|
|
1348
|
+
const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);
|
|
1319
1349
|
const res = keys.map(k => {
|
|
1320
1350
|
return new Proxy({
|
|
1321
1351
|
get(property) {
|
|
@@ -1342,25 +1372,25 @@ function splitProps(props, ...keys) {
|
|
|
1342
1372
|
}, propTraps));
|
|
1343
1373
|
return res;
|
|
1344
1374
|
}
|
|
1345
|
-
const
|
|
1346
|
-
keys.
|
|
1347
|
-
|
|
1348
|
-
const
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
},
|
|
1359
|
-
enumerable: true
|
|
1360
|
-
});
|
|
1375
|
+
const otherObject = {};
|
|
1376
|
+
const objects = keys.map(() => ({}));
|
|
1377
|
+
for (const propName of Object.getOwnPropertyNames(props)) {
|
|
1378
|
+
const desc = Object.getOwnPropertyDescriptor(props, propName);
|
|
1379
|
+
const isDefaultDesc = !desc.get && !desc.set && desc.enumerable && desc.writable && desc.configurable;
|
|
1380
|
+
let blocked = false;
|
|
1381
|
+
let objectIndex = 0;
|
|
1382
|
+
for (const k of keys) {
|
|
1383
|
+
if (k.includes(propName)) {
|
|
1384
|
+
blocked = true;
|
|
1385
|
+
isDefaultDesc ? objects[objectIndex][propName] = desc.value : Object.defineProperty(objects[objectIndex], propName, desc);
|
|
1386
|
+
}
|
|
1387
|
+
++objectIndex;
|
|
1361
1388
|
}
|
|
1362
|
-
|
|
1363
|
-
|
|
1389
|
+
if (!blocked) {
|
|
1390
|
+
isDefaultDesc ? otherObject[propName] = desc.value : Object.defineProperty(otherObject, propName, desc);
|
|
1391
|
+
}
|
|
1392
|
+
}
|
|
1393
|
+
return [...objects, otherObject];
|
|
1364
1394
|
}
|
|
1365
1395
|
function lazy(fn) {
|
|
1366
1396
|
let comp;
|
package/dist/dev.js
CHANGED
|
@@ -285,7 +285,7 @@ function createResource(pSource, pFetcher, pOptions) {
|
|
|
285
285
|
function loadEnd(p, v, error, key) {
|
|
286
286
|
if (pr === p) {
|
|
287
287
|
pr = null;
|
|
288
|
-
resolved = true;
|
|
288
|
+
key !== undefined && (resolved = true);
|
|
289
289
|
if ((p === initP || v === initP) && options.onHydrated) queueMicrotask(() => options.onHydrated(key, {
|
|
290
290
|
value: v
|
|
291
291
|
}));
|
|
@@ -304,7 +304,7 @@ function createResource(pSource, pFetcher, pOptions) {
|
|
|
304
304
|
function completeLoad(v, err) {
|
|
305
305
|
runUpdates(() => {
|
|
306
306
|
if (err === undefined) setValue(() => v);
|
|
307
|
-
setState(err !== undefined ? "errored" : "ready");
|
|
307
|
+
setState(err !== undefined ? "errored" : resolved ? "ready" : "unresolved");
|
|
308
308
|
setError(err);
|
|
309
309
|
for (const c of contexts.keys()) c.decrement();
|
|
310
310
|
contexts.clear();
|
|
@@ -956,19 +956,26 @@ function castError(err) {
|
|
|
956
956
|
cause: err
|
|
957
957
|
});
|
|
958
958
|
}
|
|
959
|
-
function
|
|
960
|
-
|
|
961
|
-
}
|
|
962
|
-
function handleError(err) {
|
|
963
|
-
const fns = ERROR && lookup(Owner, ERROR);
|
|
964
|
-
if (!fns) throw err;
|
|
959
|
+
function handleError(err, owner = Owner) {
|
|
960
|
+
const fns = ERROR && lookup(owner, ERROR);
|
|
965
961
|
const error = castError(err);
|
|
962
|
+
if (!fns) throw error;
|
|
966
963
|
if (Effects) Effects.push({
|
|
967
964
|
fn() {
|
|
968
|
-
|
|
965
|
+
try {
|
|
966
|
+
for (const f of fns) f(error);
|
|
967
|
+
} catch (e) {
|
|
968
|
+
handleError(e, owner?.owner || null);
|
|
969
|
+
}
|
|
969
970
|
},
|
|
970
971
|
state: STALE
|
|
971
|
-
});else
|
|
972
|
+
});else {
|
|
973
|
+
try {
|
|
974
|
+
for (const f of fns) f(error);
|
|
975
|
+
} catch (e) {
|
|
976
|
+
handleError(e, owner?.owner || null);
|
|
977
|
+
}
|
|
978
|
+
}
|
|
972
979
|
}
|
|
973
980
|
function lookup(owner, key) {
|
|
974
981
|
return owner ? owner.context && owner.context[key] !== undefined ? owner.context[key] : lookup(owner.owner, key) : undefined;
|
|
@@ -1263,6 +1270,12 @@ const propTraps = {
|
|
|
1263
1270
|
function resolveSource(s) {
|
|
1264
1271
|
return !(s = typeof s === "function" ? s() : s) ? {} : s;
|
|
1265
1272
|
}
|
|
1273
|
+
function resolveSources() {
|
|
1274
|
+
for (let i = 0, length = this.length; i < length; ++i) {
|
|
1275
|
+
const v = this[i]();
|
|
1276
|
+
if (v !== undefined) return v;
|
|
1277
|
+
}
|
|
1278
|
+
}
|
|
1266
1279
|
function mergeProps(...sources) {
|
|
1267
1280
|
let proxy = false;
|
|
1268
1281
|
for (let i = 0; i < sources.length; i++) {
|
|
@@ -1292,28 +1305,45 @@ function mergeProps(...sources) {
|
|
|
1292
1305
|
}, propTraps);
|
|
1293
1306
|
}
|
|
1294
1307
|
const target = {};
|
|
1308
|
+
const sourcesMap = {};
|
|
1309
|
+
const defined = new Set();
|
|
1295
1310
|
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1311
|
+
const source = sources[i];
|
|
1312
|
+
if (!source) continue;
|
|
1313
|
+
const sourceKeys = Object.getOwnPropertyNames(source);
|
|
1314
|
+
for (let i = 0, length = sourceKeys.length; i < length; i++) {
|
|
1315
|
+
const key = sourceKeys[i];
|
|
1316
|
+
if (key === "__proto__" || key === "constructor") continue;
|
|
1317
|
+
const desc = Object.getOwnPropertyDescriptor(source, key);
|
|
1318
|
+
if (!defined.has(key)) {
|
|
1319
|
+
if (desc.get) {
|
|
1320
|
+
defined.add(key);
|
|
1321
|
+
Object.defineProperty(target, key, {
|
|
1322
|
+
enumerable: true,
|
|
1323
|
+
configurable: true,
|
|
1324
|
+
get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)])
|
|
1325
|
+
});
|
|
1326
|
+
} else {
|
|
1327
|
+
if (desc.value !== undefined) defined.add(key);
|
|
1328
|
+
target[key] = desc.value;
|
|
1329
|
+
}
|
|
1330
|
+
} else {
|
|
1331
|
+
const sources = sourcesMap[key];
|
|
1332
|
+
if (sources) {
|
|
1333
|
+
if (desc.get) {
|
|
1334
|
+
sources.push(desc.get.bind(source));
|
|
1335
|
+
} else if (desc.value !== undefined) {
|
|
1336
|
+
sources.push(() => desc.value);
|
|
1307
1337
|
}
|
|
1308
|
-
});
|
|
1338
|
+
} else if (target[key] === undefined) target[key] = desc.value;
|
|
1309
1339
|
}
|
|
1310
1340
|
}
|
|
1311
1341
|
}
|
|
1312
1342
|
return target;
|
|
1313
1343
|
}
|
|
1314
1344
|
function splitProps(props, ...keys) {
|
|
1315
|
-
const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);
|
|
1316
1345
|
if ($PROXY in props) {
|
|
1346
|
+
const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);
|
|
1317
1347
|
const res = keys.map(k => {
|
|
1318
1348
|
return new Proxy({
|
|
1319
1349
|
get(property) {
|
|
@@ -1340,25 +1370,25 @@ function splitProps(props, ...keys) {
|
|
|
1340
1370
|
}, propTraps));
|
|
1341
1371
|
return res;
|
|
1342
1372
|
}
|
|
1343
|
-
const
|
|
1344
|
-
keys.
|
|
1345
|
-
|
|
1346
|
-
const
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
},
|
|
1357
|
-
enumerable: true
|
|
1358
|
-
});
|
|
1373
|
+
const otherObject = {};
|
|
1374
|
+
const objects = keys.map(() => ({}));
|
|
1375
|
+
for (const propName of Object.getOwnPropertyNames(props)) {
|
|
1376
|
+
const desc = Object.getOwnPropertyDescriptor(props, propName);
|
|
1377
|
+
const isDefaultDesc = !desc.get && !desc.set && desc.enumerable && desc.writable && desc.configurable;
|
|
1378
|
+
let blocked = false;
|
|
1379
|
+
let objectIndex = 0;
|
|
1380
|
+
for (const k of keys) {
|
|
1381
|
+
if (k.includes(propName)) {
|
|
1382
|
+
blocked = true;
|
|
1383
|
+
isDefaultDesc ? objects[objectIndex][propName] = desc.value : Object.defineProperty(objects[objectIndex], propName, desc);
|
|
1384
|
+
}
|
|
1385
|
+
++objectIndex;
|
|
1359
1386
|
}
|
|
1360
|
-
|
|
1361
|
-
|
|
1387
|
+
if (!blocked) {
|
|
1388
|
+
isDefaultDesc ? otherObject[propName] = desc.value : Object.defineProperty(otherObject, propName, desc);
|
|
1389
|
+
}
|
|
1390
|
+
}
|
|
1391
|
+
return [...objects, otherObject];
|
|
1362
1392
|
}
|
|
1363
1393
|
function lazy(fn) {
|
|
1364
1394
|
let comp;
|
package/dist/server.cjs
CHANGED
|
@@ -12,11 +12,15 @@ function castError(err) {
|
|
|
12
12
|
cause: err
|
|
13
13
|
});
|
|
14
14
|
}
|
|
15
|
-
function handleError(err) {
|
|
15
|
+
function handleError(err, owner = Owner) {
|
|
16
|
+
const fns = lookup(owner, ERROR);
|
|
16
17
|
const error = castError(err);
|
|
17
|
-
const fns = lookup(Owner, ERROR);
|
|
18
18
|
if (!fns) throw error;
|
|
19
|
-
|
|
19
|
+
try {
|
|
20
|
+
for (const f of fns) f(error);
|
|
21
|
+
} catch (e) {
|
|
22
|
+
handleError(e, owner?.owner || null);
|
|
23
|
+
}
|
|
20
24
|
}
|
|
21
25
|
const UNOWNED = {
|
|
22
26
|
context: null,
|
package/dist/server.js
CHANGED
|
@@ -10,11 +10,15 @@ function castError(err) {
|
|
|
10
10
|
cause: err
|
|
11
11
|
});
|
|
12
12
|
}
|
|
13
|
-
function handleError(err) {
|
|
13
|
+
function handleError(err, owner = Owner) {
|
|
14
|
+
const fns = lookup(owner, ERROR);
|
|
14
15
|
const error = castError(err);
|
|
15
|
-
const fns = lookup(Owner, ERROR);
|
|
16
16
|
if (!fns) throw error;
|
|
17
|
-
|
|
17
|
+
try {
|
|
18
|
+
for (const f of fns) f(error);
|
|
19
|
+
} catch (e) {
|
|
20
|
+
handleError(e, owner?.owner || null);
|
|
21
|
+
}
|
|
18
22
|
}
|
|
19
23
|
const UNOWNED = {
|
|
20
24
|
context: null,
|
package/dist/solid.cjs
CHANGED
|
@@ -271,7 +271,7 @@ function createResource(pSource, pFetcher, pOptions) {
|
|
|
271
271
|
function loadEnd(p, v, error, key) {
|
|
272
272
|
if (pr === p) {
|
|
273
273
|
pr = null;
|
|
274
|
-
resolved = true;
|
|
274
|
+
key !== undefined && (resolved = true);
|
|
275
275
|
if ((p === initP || v === initP) && options.onHydrated) queueMicrotask(() => options.onHydrated(key, {
|
|
276
276
|
value: v
|
|
277
277
|
}));
|
|
@@ -290,7 +290,7 @@ function createResource(pSource, pFetcher, pOptions) {
|
|
|
290
290
|
function completeLoad(v, err) {
|
|
291
291
|
runUpdates(() => {
|
|
292
292
|
if (err === undefined) setValue(() => v);
|
|
293
|
-
setState(err !== undefined ? "errored" : "ready");
|
|
293
|
+
setState(err !== undefined ? "errored" : resolved ? "ready" : "unresolved");
|
|
294
294
|
setError(err);
|
|
295
295
|
for (const c of contexts.keys()) c.decrement();
|
|
296
296
|
contexts.clear();
|
|
@@ -917,19 +917,26 @@ function castError(err) {
|
|
|
917
917
|
cause: err
|
|
918
918
|
});
|
|
919
919
|
}
|
|
920
|
-
function
|
|
921
|
-
|
|
922
|
-
}
|
|
923
|
-
function handleError(err) {
|
|
924
|
-
const fns = ERROR && lookup(Owner, ERROR);
|
|
925
|
-
if (!fns) throw err;
|
|
920
|
+
function handleError(err, owner = Owner) {
|
|
921
|
+
const fns = ERROR && lookup(owner, ERROR);
|
|
926
922
|
const error = castError(err);
|
|
923
|
+
if (!fns) throw error;
|
|
927
924
|
if (Effects) Effects.push({
|
|
928
925
|
fn() {
|
|
929
|
-
|
|
926
|
+
try {
|
|
927
|
+
for (const f of fns) f(error);
|
|
928
|
+
} catch (e) {
|
|
929
|
+
handleError(e, owner?.owner || null);
|
|
930
|
+
}
|
|
930
931
|
},
|
|
931
932
|
state: STALE
|
|
932
|
-
});else
|
|
933
|
+
});else {
|
|
934
|
+
try {
|
|
935
|
+
for (const f of fns) f(error);
|
|
936
|
+
} catch (e) {
|
|
937
|
+
handleError(e, owner?.owner || null);
|
|
938
|
+
}
|
|
939
|
+
}
|
|
933
940
|
}
|
|
934
941
|
function lookup(owner, key) {
|
|
935
942
|
return owner ? owner.context && owner.context[key] !== undefined ? owner.context[key] : lookup(owner.owner, key) : undefined;
|
|
@@ -1220,6 +1227,12 @@ const propTraps = {
|
|
|
1220
1227
|
function resolveSource(s) {
|
|
1221
1228
|
return !(s = typeof s === "function" ? s() : s) ? {} : s;
|
|
1222
1229
|
}
|
|
1230
|
+
function resolveSources() {
|
|
1231
|
+
for (let i = 0, length = this.length; i < length; ++i) {
|
|
1232
|
+
const v = this[i]();
|
|
1233
|
+
if (v !== undefined) return v;
|
|
1234
|
+
}
|
|
1235
|
+
}
|
|
1223
1236
|
function mergeProps(...sources) {
|
|
1224
1237
|
let proxy = false;
|
|
1225
1238
|
for (let i = 0; i < sources.length; i++) {
|
|
@@ -1249,28 +1262,45 @@ function mergeProps(...sources) {
|
|
|
1249
1262
|
}, propTraps);
|
|
1250
1263
|
}
|
|
1251
1264
|
const target = {};
|
|
1265
|
+
const sourcesMap = {};
|
|
1266
|
+
const defined = new Set();
|
|
1252
1267
|
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1268
|
+
const source = sources[i];
|
|
1269
|
+
if (!source) continue;
|
|
1270
|
+
const sourceKeys = Object.getOwnPropertyNames(source);
|
|
1271
|
+
for (let i = 0, length = sourceKeys.length; i < length; i++) {
|
|
1272
|
+
const key = sourceKeys[i];
|
|
1273
|
+
if (key === "__proto__" || key === "constructor") continue;
|
|
1274
|
+
const desc = Object.getOwnPropertyDescriptor(source, key);
|
|
1275
|
+
if (!defined.has(key)) {
|
|
1276
|
+
if (desc.get) {
|
|
1277
|
+
defined.add(key);
|
|
1278
|
+
Object.defineProperty(target, key, {
|
|
1279
|
+
enumerable: true,
|
|
1280
|
+
configurable: true,
|
|
1281
|
+
get: resolveSources.bind(sourcesMap[key] = [desc.get.bind(source)])
|
|
1282
|
+
});
|
|
1283
|
+
} else {
|
|
1284
|
+
if (desc.value !== undefined) defined.add(key);
|
|
1285
|
+
target[key] = desc.value;
|
|
1286
|
+
}
|
|
1287
|
+
} else {
|
|
1288
|
+
const sources = sourcesMap[key];
|
|
1289
|
+
if (sources) {
|
|
1290
|
+
if (desc.get) {
|
|
1291
|
+
sources.push(desc.get.bind(source));
|
|
1292
|
+
} else if (desc.value !== undefined) {
|
|
1293
|
+
sources.push(() => desc.value);
|
|
1264
1294
|
}
|
|
1265
|
-
});
|
|
1295
|
+
} else if (target[key] === undefined) target[key] = desc.value;
|
|
1266
1296
|
}
|
|
1267
1297
|
}
|
|
1268
1298
|
}
|
|
1269
1299
|
return target;
|
|
1270
1300
|
}
|
|
1271
1301
|
function splitProps(props, ...keys) {
|
|
1272
|
-
const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);
|
|
1273
1302
|
if ($PROXY in props) {
|
|
1303
|
+
const blocked = new Set(keys.length > 1 ? keys.flat() : keys[0]);
|
|
1274
1304
|
const res = keys.map(k => {
|
|
1275
1305
|
return new Proxy({
|
|
1276
1306
|
get(property) {
|
|
@@ -1297,25 +1327,25 @@ function splitProps(props, ...keys) {
|
|
|
1297
1327
|
}, propTraps));
|
|
1298
1328
|
return res;
|
|
1299
1329
|
}
|
|
1300
|
-
const
|
|
1301
|
-
keys.
|
|
1302
|
-
|
|
1303
|
-
const
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
},
|
|
1314
|
-
enumerable: true
|
|
1315
|
-
});
|
|
1330
|
+
const otherObject = {};
|
|
1331
|
+
const objects = keys.map(() => ({}));
|
|
1332
|
+
for (const propName of Object.getOwnPropertyNames(props)) {
|
|
1333
|
+
const desc = Object.getOwnPropertyDescriptor(props, propName);
|
|
1334
|
+
const isDefaultDesc = !desc.get && !desc.set && desc.enumerable && desc.writable && desc.configurable;
|
|
1335
|
+
let blocked = false;
|
|
1336
|
+
let objectIndex = 0;
|
|
1337
|
+
for (const k of keys) {
|
|
1338
|
+
if (k.includes(propName)) {
|
|
1339
|
+
blocked = true;
|
|
1340
|
+
isDefaultDesc ? objects[objectIndex][propName] = desc.value : Object.defineProperty(objects[objectIndex], propName, desc);
|
|
1341
|
+
}
|
|
1342
|
+
++objectIndex;
|
|
1316
1343
|
}
|
|
1317
|
-
|
|
1318
|
-
|
|
1344
|
+
if (!blocked) {
|
|
1345
|
+
isDefaultDesc ? otherObject[propName] = desc.value : Object.defineProperty(otherObject, propName, desc);
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1348
|
+
return [...objects, otherObject];
|
|
1319
1349
|
}
|
|
1320
1350
|
function lazy(fn) {
|
|
1321
1351
|
let comp;
|