solid-js 1.6.6 → 1.6.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 CHANGED
@@ -159,7 +159,12 @@ function createRoot(fn, detachedOwner) {
159
159
  const listener = Listener,
160
160
  owner = Owner,
161
161
  unowned = fn.length === 0,
162
- root = unowned && !"_SOLID_DEV_" ? UNOWNED : {
162
+ root = unowned ? {
163
+ owned: null,
164
+ cleanups: null,
165
+ context: null,
166
+ owner: null
167
+ } : {
163
168
  owned: null,
164
169
  cleanups: null,
165
170
  context: null,
@@ -468,6 +473,8 @@ function runWithOwner(o, fn) {
468
473
  Owner = o;
469
474
  try {
470
475
  return runUpdates(fn, true);
476
+ } catch (err) {
477
+ handleError(err);
471
478
  } finally {
472
479
  Owner = prev;
473
480
  }
@@ -1005,7 +1012,7 @@ function observable(input) {
1005
1012
  if (!(observer instanceof Object) || observer == null) {
1006
1013
  throw new TypeError("Expected the observer to be an object.");
1007
1014
  }
1008
- const handler = typeof observer === 'function' ? observer : observer.next && observer.next.bind(observer);
1015
+ const handler = typeof observer === "function" ? observer : observer.next && observer.next.bind(observer);
1009
1016
  if (!handler) {
1010
1017
  return {
1011
1018
  unsubscribe() {}
@@ -1314,14 +1321,40 @@ function mergeProps(...sources) {
1314
1321
  }
1315
1322
  function splitProps(props, ...keys) {
1316
1323
  const blocked = new Set(keys.flat());
1324
+ if ($PROXY in props) {
1325
+ const res = keys.map(k => {
1326
+ return new Proxy({
1327
+ get(property) {
1328
+ return k.includes(property) ? props[property] : undefined;
1329
+ },
1330
+ has(property) {
1331
+ return k.includes(property) && property in props;
1332
+ },
1333
+ keys() {
1334
+ return k.filter(property => property in props);
1335
+ }
1336
+ }, propTraps);
1337
+ });
1338
+ res.push(new Proxy({
1339
+ get(property) {
1340
+ return blocked.has(property) ? undefined : props[property];
1341
+ },
1342
+ has(property) {
1343
+ return blocked.has(property) ? false : property in props;
1344
+ },
1345
+ keys() {
1346
+ return Object.keys(props).filter(k => !blocked.has(k));
1347
+ }
1348
+ }, propTraps));
1349
+ return res;
1350
+ }
1317
1351
  const descriptors = Object.getOwnPropertyDescriptors(props);
1318
- const isProxy = ($PROXY in props);
1319
- if (!isProxy) keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
1320
- const res = keys.map(k => {
1352
+ keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
1353
+ return keys.map(k => {
1321
1354
  const clone = {};
1322
1355
  for (let i = 0; i < k.length; i++) {
1323
1356
  const key = k[i];
1324
- if (!isProxy && !(key in props)) continue;
1357
+ if (!(key in props)) continue;
1325
1358
  Object.defineProperty(clone, key, descriptors[key] ? descriptors[key] : {
1326
1359
  get() {
1327
1360
  return props[key];
@@ -1334,20 +1367,6 @@ function splitProps(props, ...keys) {
1334
1367
  }
1335
1368
  return clone;
1336
1369
  });
1337
- if (isProxy) {
1338
- res.push(new Proxy({
1339
- get(property) {
1340
- return blocked.has(property) ? undefined : props[property];
1341
- },
1342
- has(property) {
1343
- return blocked.has(property) ? false : property in props;
1344
- },
1345
- keys() {
1346
- return Object.keys(props).filter(k => !blocked.has(k));
1347
- }
1348
- }, propTraps));
1349
- }
1350
- return res;
1351
1370
  }
1352
1371
  function lazy(fn) {
1353
1372
  let comp;
package/dist/dev.js CHANGED
@@ -157,7 +157,12 @@ function createRoot(fn, detachedOwner) {
157
157
  const listener = Listener,
158
158
  owner = Owner,
159
159
  unowned = fn.length === 0,
160
- root = unowned && !"_SOLID_DEV_" ? UNOWNED : {
160
+ root = unowned ? {
161
+ owned: null,
162
+ cleanups: null,
163
+ context: null,
164
+ owner: null
165
+ } : {
161
166
  owned: null,
162
167
  cleanups: null,
163
168
  context: null,
@@ -466,6 +471,8 @@ function runWithOwner(o, fn) {
466
471
  Owner = o;
467
472
  try {
468
473
  return runUpdates(fn, true);
474
+ } catch (err) {
475
+ handleError(err);
469
476
  } finally {
470
477
  Owner = prev;
471
478
  }
@@ -1003,7 +1010,7 @@ function observable(input) {
1003
1010
  if (!(observer instanceof Object) || observer == null) {
1004
1011
  throw new TypeError("Expected the observer to be an object.");
1005
1012
  }
1006
- const handler = typeof observer === 'function' ? observer : observer.next && observer.next.bind(observer);
1013
+ const handler = typeof observer === "function" ? observer : observer.next && observer.next.bind(observer);
1007
1014
  if (!handler) {
1008
1015
  return {
1009
1016
  unsubscribe() {}
@@ -1312,14 +1319,40 @@ function mergeProps(...sources) {
1312
1319
  }
1313
1320
  function splitProps(props, ...keys) {
1314
1321
  const blocked = new Set(keys.flat());
1322
+ if ($PROXY in props) {
1323
+ const res = keys.map(k => {
1324
+ return new Proxy({
1325
+ get(property) {
1326
+ return k.includes(property) ? props[property] : undefined;
1327
+ },
1328
+ has(property) {
1329
+ return k.includes(property) && property in props;
1330
+ },
1331
+ keys() {
1332
+ return k.filter(property => property in props);
1333
+ }
1334
+ }, propTraps);
1335
+ });
1336
+ res.push(new Proxy({
1337
+ get(property) {
1338
+ return blocked.has(property) ? undefined : props[property];
1339
+ },
1340
+ has(property) {
1341
+ return blocked.has(property) ? false : property in props;
1342
+ },
1343
+ keys() {
1344
+ return Object.keys(props).filter(k => !blocked.has(k));
1345
+ }
1346
+ }, propTraps));
1347
+ return res;
1348
+ }
1315
1349
  const descriptors = Object.getOwnPropertyDescriptors(props);
1316
- const isProxy = ($PROXY in props);
1317
- if (!isProxy) keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
1318
- const res = keys.map(k => {
1350
+ keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
1351
+ return keys.map(k => {
1319
1352
  const clone = {};
1320
1353
  for (let i = 0; i < k.length; i++) {
1321
1354
  const key = k[i];
1322
- if (!isProxy && !(key in props)) continue;
1355
+ if (!(key in props)) continue;
1323
1356
  Object.defineProperty(clone, key, descriptors[key] ? descriptors[key] : {
1324
1357
  get() {
1325
1358
  return props[key];
@@ -1332,20 +1365,6 @@ function splitProps(props, ...keys) {
1332
1365
  }
1333
1366
  return clone;
1334
1367
  });
1335
- if (isProxy) {
1336
- res.push(new Proxy({
1337
- get(property) {
1338
- return blocked.has(property) ? undefined : props[property];
1339
- },
1340
- has(property) {
1341
- return blocked.has(property) ? false : property in props;
1342
- },
1343
- keys() {
1344
- return Object.keys(props).filter(k => !blocked.has(k));
1345
- }
1346
- }, propTraps));
1347
- }
1348
- return res;
1349
1368
  }
1350
1369
  function lazy(fn) {
1351
1370
  let comp;
package/dist/server.cjs CHANGED
@@ -496,8 +496,15 @@ function createResource(source, fetcher, options = {}) {
496
496
  function lazy(fn) {
497
497
  let resolved;
498
498
  let p;
499
- let load = () => {
499
+ let load = id => {
500
500
  if (!p) {
501
+ if (id) {
502
+ let ref = sharedConfig.context.resources[id] = {
503
+ ref: p = fn()
504
+ };
505
+ p.then(mod => ref.data = resolved = mod.default);
506
+ return p;
507
+ }
501
508
  p = fn();
502
509
  p.then(mod => resolved = mod.default);
503
510
  }
@@ -505,8 +512,12 @@ function lazy(fn) {
505
512
  };
506
513
  const contexts = new Set();
507
514
  const wrap = props => {
508
- load();
509
515
  const id = sharedConfig.context.id.slice(0, -1);
516
+ let ref = sharedConfig.context.resources[id];
517
+ if (ref) {
518
+ p = ref.ref;
519
+ resolved = ref.data;
520
+ } else load(id);
510
521
  if (resolved) return resolved(props);
511
522
  const ctx = useContext(SuspenseContext);
512
523
  const track = {
package/dist/server.js CHANGED
@@ -494,8 +494,15 @@ function createResource(source, fetcher, options = {}) {
494
494
  function lazy(fn) {
495
495
  let resolved;
496
496
  let p;
497
- let load = () => {
497
+ let load = id => {
498
498
  if (!p) {
499
+ if (id) {
500
+ let ref = sharedConfig.context.resources[id] = {
501
+ ref: p = fn()
502
+ };
503
+ p.then(mod => ref.data = resolved = mod.default);
504
+ return p;
505
+ }
499
506
  p = fn();
500
507
  p.then(mod => resolved = mod.default);
501
508
  }
@@ -503,8 +510,12 @@ function lazy(fn) {
503
510
  };
504
511
  const contexts = new Set();
505
512
  const wrap = props => {
506
- load();
507
513
  const id = sharedConfig.context.id.slice(0, -1);
514
+ let ref = sharedConfig.context.resources[id];
515
+ if (ref) {
516
+ p = ref.ref;
517
+ resolved = ref.data;
518
+ } else load(id);
508
519
  if (resolved) return resolved(props);
509
520
  const ctx = useContext(SuspenseContext);
510
521
  const track = {
package/dist/solid.cjs CHANGED
@@ -158,7 +158,7 @@ function createRoot(fn, detachedOwner) {
158
158
  const listener = Listener,
159
159
  owner = Owner,
160
160
  unowned = fn.length === 0,
161
- root = unowned && !false ? UNOWNED : {
161
+ root = unowned ? UNOWNED : {
162
162
  owned: null,
163
163
  cleanups: null,
164
164
  context: null,
@@ -460,6 +460,8 @@ function runWithOwner(o, fn) {
460
460
  Owner = o;
461
461
  try {
462
462
  return runUpdates(fn, true);
463
+ } catch (err) {
464
+ handleError(err);
463
465
  } finally {
464
466
  Owner = prev;
465
467
  }
@@ -917,7 +919,7 @@ function observable(input) {
917
919
  if (!(observer instanceof Object) || observer == null) {
918
920
  throw new TypeError("Expected the observer to be an object.");
919
921
  }
920
- const handler = typeof observer === 'function' ? observer : observer.next && observer.next.bind(observer);
922
+ const handler = typeof observer === "function" ? observer : observer.next && observer.next.bind(observer);
921
923
  if (!handler) {
922
924
  return {
923
925
  unsubscribe() {}
@@ -1222,14 +1224,40 @@ function mergeProps(...sources) {
1222
1224
  }
1223
1225
  function splitProps(props, ...keys) {
1224
1226
  const blocked = new Set(keys.flat());
1227
+ if ($PROXY in props) {
1228
+ const res = keys.map(k => {
1229
+ return new Proxy({
1230
+ get(property) {
1231
+ return k.includes(property) ? props[property] : undefined;
1232
+ },
1233
+ has(property) {
1234
+ return k.includes(property) && property in props;
1235
+ },
1236
+ keys() {
1237
+ return k.filter(property => property in props);
1238
+ }
1239
+ }, propTraps);
1240
+ });
1241
+ res.push(new Proxy({
1242
+ get(property) {
1243
+ return blocked.has(property) ? undefined : props[property];
1244
+ },
1245
+ has(property) {
1246
+ return blocked.has(property) ? false : property in props;
1247
+ },
1248
+ keys() {
1249
+ return Object.keys(props).filter(k => !blocked.has(k));
1250
+ }
1251
+ }, propTraps));
1252
+ return res;
1253
+ }
1225
1254
  const descriptors = Object.getOwnPropertyDescriptors(props);
1226
- const isProxy = ($PROXY in props);
1227
- if (!isProxy) keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
1228
- const res = keys.map(k => {
1255
+ keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
1256
+ return keys.map(k => {
1229
1257
  const clone = {};
1230
1258
  for (let i = 0; i < k.length; i++) {
1231
1259
  const key = k[i];
1232
- if (!isProxy && !(key in props)) continue;
1260
+ if (!(key in props)) continue;
1233
1261
  Object.defineProperty(clone, key, descriptors[key] ? descriptors[key] : {
1234
1262
  get() {
1235
1263
  return props[key];
@@ -1242,20 +1270,6 @@ function splitProps(props, ...keys) {
1242
1270
  }
1243
1271
  return clone;
1244
1272
  });
1245
- if (isProxy) {
1246
- res.push(new Proxy({
1247
- get(property) {
1248
- return blocked.has(property) ? undefined : props[property];
1249
- },
1250
- has(property) {
1251
- return blocked.has(property) ? false : property in props;
1252
- },
1253
- keys() {
1254
- return Object.keys(props).filter(k => !blocked.has(k));
1255
- }
1256
- }, propTraps));
1257
- }
1258
- return res;
1259
1273
  }
1260
1274
  function lazy(fn) {
1261
1275
  let comp;
package/dist/solid.js CHANGED
@@ -156,7 +156,7 @@ function createRoot(fn, detachedOwner) {
156
156
  const listener = Listener,
157
157
  owner = Owner,
158
158
  unowned = fn.length === 0,
159
- root = unowned && !false ? UNOWNED : {
159
+ root = unowned ? UNOWNED : {
160
160
  owned: null,
161
161
  cleanups: null,
162
162
  context: null,
@@ -458,6 +458,8 @@ function runWithOwner(o, fn) {
458
458
  Owner = o;
459
459
  try {
460
460
  return runUpdates(fn, true);
461
+ } catch (err) {
462
+ handleError(err);
461
463
  } finally {
462
464
  Owner = prev;
463
465
  }
@@ -915,7 +917,7 @@ function observable(input) {
915
917
  if (!(observer instanceof Object) || observer == null) {
916
918
  throw new TypeError("Expected the observer to be an object.");
917
919
  }
918
- const handler = typeof observer === 'function' ? observer : observer.next && observer.next.bind(observer);
920
+ const handler = typeof observer === "function" ? observer : observer.next && observer.next.bind(observer);
919
921
  if (!handler) {
920
922
  return {
921
923
  unsubscribe() {}
@@ -1220,14 +1222,40 @@ function mergeProps(...sources) {
1220
1222
  }
1221
1223
  function splitProps(props, ...keys) {
1222
1224
  const blocked = new Set(keys.flat());
1225
+ if ($PROXY in props) {
1226
+ const res = keys.map(k => {
1227
+ return new Proxy({
1228
+ get(property) {
1229
+ return k.includes(property) ? props[property] : undefined;
1230
+ },
1231
+ has(property) {
1232
+ return k.includes(property) && property in props;
1233
+ },
1234
+ keys() {
1235
+ return k.filter(property => property in props);
1236
+ }
1237
+ }, propTraps);
1238
+ });
1239
+ res.push(new Proxy({
1240
+ get(property) {
1241
+ return blocked.has(property) ? undefined : props[property];
1242
+ },
1243
+ has(property) {
1244
+ return blocked.has(property) ? false : property in props;
1245
+ },
1246
+ keys() {
1247
+ return Object.keys(props).filter(k => !blocked.has(k));
1248
+ }
1249
+ }, propTraps));
1250
+ return res;
1251
+ }
1223
1252
  const descriptors = Object.getOwnPropertyDescriptors(props);
1224
- const isProxy = ($PROXY in props);
1225
- if (!isProxy) keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
1226
- const res = keys.map(k => {
1253
+ keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
1254
+ return keys.map(k => {
1227
1255
  const clone = {};
1228
1256
  for (let i = 0; i < k.length; i++) {
1229
1257
  const key = k[i];
1230
- if (!isProxy && !(key in props)) continue;
1258
+ if (!(key in props)) continue;
1231
1259
  Object.defineProperty(clone, key, descriptors[key] ? descriptors[key] : {
1232
1260
  get() {
1233
1261
  return props[key];
@@ -1240,20 +1268,6 @@ function splitProps(props, ...keys) {
1240
1268
  }
1241
1269
  return clone;
1242
1270
  });
1243
- if (isProxy) {
1244
- res.push(new Proxy({
1245
- get(property) {
1246
- return blocked.has(property) ? undefined : props[property];
1247
- },
1248
- has(property) {
1249
- return blocked.has(property) ? false : property in props;
1250
- },
1251
- keys() {
1252
- return Object.keys(props).filter(k => !blocked.has(k));
1253
- }
1254
- }, propTraps));
1255
- }
1256
- return res;
1257
1271
  }
1258
1272
  function lazy(fn) {
1259
1273
  let comp;