solid-js 1.7.11 → 1.8.0-beta.0

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.
Files changed (49) hide show
  1. package/dist/dev.cjs +16 -13
  2. package/dist/dev.js +544 -306
  3. package/dist/server.cjs +7 -6
  4. package/dist/server.js +175 -80
  5. package/dist/solid.cjs +16 -13
  6. package/dist/solid.js +471 -264
  7. package/h/dist/h.js +34 -8
  8. package/h/jsx-runtime/dist/jsx.js +1 -1
  9. package/h/jsx-runtime/types/index.d.ts +11 -8
  10. package/h/jsx-runtime/types/jsx.d.ts +1 -0
  11. package/h/types/hyperscript.d.ts +11 -11
  12. package/html/dist/html.js +216 -94
  13. package/html/types/lit.d.ts +45 -31
  14. package/package.json +2 -2
  15. package/store/dist/dev.js +114 -42
  16. package/store/dist/server.js +19 -8
  17. package/store/dist/store.js +105 -39
  18. package/store/types/index.d.ts +21 -7
  19. package/store/types/modifiers.d.ts +6 -3
  20. package/store/types/mutable.d.ts +5 -2
  21. package/store/types/server.d.ts +12 -4
  22. package/store/types/store.d.ts +218 -61
  23. package/types/index.d.ts +72 -9
  24. package/types/jsx.d.ts +2 -1
  25. package/types/reactive/array.d.ts +12 -4
  26. package/types/reactive/observable.d.ts +25 -17
  27. package/types/reactive/scheduler.d.ts +9 -6
  28. package/types/reactive/signal.d.ts +228 -140
  29. package/types/render/Suspense.d.ts +5 -5
  30. package/types/render/component.d.ts +62 -31
  31. package/types/render/flow.d.ts +43 -31
  32. package/types/render/hydration.d.ts +12 -12
  33. package/types/server/index.d.ts +56 -2
  34. package/types/server/reactive.d.ts +67 -40
  35. package/types/server/rendering.d.ts +166 -95
  36. package/universal/dist/dev.js +28 -12
  37. package/universal/dist/universal.js +28 -12
  38. package/universal/types/index.d.ts +3 -1
  39. package/universal/types/universal.d.ts +0 -1
  40. package/web/dist/dev.cjs +8 -5
  41. package/web/dist/dev.js +616 -82
  42. package/web/dist/server.cjs +91 -56
  43. package/web/dist/server.js +244 -125
  44. package/web/dist/web.cjs +8 -5
  45. package/web/dist/web.js +616 -82
  46. package/web/types/client.d.ts +2 -2
  47. package/web/types/core.d.ts +10 -1
  48. package/web/types/index.d.ts +27 -10
  49. package/web/types/server-mock.d.ts +47 -32
package/dist/dev.cjs CHANGED
@@ -253,6 +253,9 @@ function createMemo(fn, value, options) {
253
253
  } else updateComputation(c);
254
254
  return readSignal.bind(c);
255
255
  }
256
+ function isPromise(v) {
257
+ return v && typeof v === "object" && "then" in v;
258
+ }
256
259
  function createResource(pSource, pFetcher, pOptions) {
257
260
  let source;
258
261
  let fetcher;
@@ -283,7 +286,7 @@ function createResource(pSource, pFetcher, pOptions) {
283
286
  if (sharedConfig.context) {
284
287
  id = `${sharedConfig.context.id}${sharedConfig.context.count++}`;
285
288
  let v;
286
- if (options.ssrLoadFrom === "initial") initP = options.initialValue;else if (sharedConfig.load && (v = sharedConfig.load(id))) initP = v[0];
289
+ if (options.ssrLoadFrom === "initial") initP = options.initialValue;else if (sharedConfig.load && (v = sharedConfig.load(id))) initP = isPromise(v) && "value" in v ? v.value : v;
287
290
  }
288
291
  function loadEnd(p, v, error, key) {
289
292
  if (pr === p) {
@@ -345,7 +348,7 @@ function createResource(pSource, pFetcher, pOptions) {
345
348
  value: value(),
346
349
  refetching
347
350
  }));
348
- if (typeof p !== "object" || !(p && "then" in p)) {
351
+ if (!isPromise(p)) {
349
352
  loadEnd(pr, p, undefined, lookup);
350
353
  return p;
351
354
  }
@@ -395,9 +398,9 @@ function createDeferred(source, options) {
395
398
  } : undefined);
396
399
  return source();
397
400
  }, undefined, true);
398
- const [deferred, setDeferred] = createSignal(node.value, options);
401
+ const [deferred, setDeferred] = createSignal(Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value, options);
399
402
  updateComputation(node);
400
- setDeferred(() => node.value);
403
+ setDeferred(() => Transition && Transition.running && Transition.sources.has(node) ? node.tValue : node.value);
401
404
  return deferred;
402
405
  }
403
406
  function createSelector(source, fn = equalFn, options) {
@@ -1537,8 +1540,7 @@ function resetErrorBoundaries() {
1537
1540
  }
1538
1541
  function ErrorBoundary(props) {
1539
1542
  let err;
1540
- let v;
1541
- if (sharedConfig.context && sharedConfig.load && (v = sharedConfig.load(sharedConfig.context.id + sharedConfig.context.count))) err = v[0];
1543
+ if (sharedConfig.context && sharedConfig.load) err = sharedConfig.load(sharedConfig.context.id + sharedConfig.context.count);
1542
1544
  const [errored, setErrored] = createSignal(err, {
1543
1545
  name: "errored"
1544
1546
  } );
@@ -1658,21 +1660,22 @@ function Suspense(props) {
1658
1660
  if (sharedConfig.context && sharedConfig.load) {
1659
1661
  const key = sharedConfig.context.id + sharedConfig.context.count;
1660
1662
  let ref = sharedConfig.load(key);
1661
- if (ref && (p = ref[0]) && p !== "$$f") {
1662
- if (typeof p !== "object" || !("then" in p)) p = Promise.resolve(p);
1663
+ if (ref && (typeof ref !== "object" || !("value" in ref))) p = ref;
1664
+ if (p && p !== "$$f") {
1663
1665
  const [s, set] = createSignal(undefined, {
1664
1666
  equals: false
1665
1667
  });
1666
1668
  flicker = s;
1667
- p.then(err => {
1668
- if (err || sharedConfig.done) {
1669
- err && (error = err);
1670
- return set();
1671
- }
1669
+ p.then(() => {
1672
1670
  sharedConfig.gather(key);
1673
1671
  setHydrateContext(ctx);
1674
1672
  set();
1675
1673
  setHydrateContext();
1674
+ }).catch(err => {
1675
+ if (err || sharedConfig.done) {
1676
+ err && (error = err);
1677
+ return set();
1678
+ }
1676
1679
  });
1677
1680
  }
1678
1681
  }