solid-js 1.4.6 → 1.5.0-beta.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.
Files changed (45) hide show
  1. package/dist/dev.cjs +112 -113
  2. package/dist/dev.js +112 -113
  3. package/dist/server.cjs +65 -31
  4. package/dist/server.js +65 -31
  5. package/dist/solid.cjs +112 -111
  6. package/dist/solid.js +112 -111
  7. package/h/jsx-runtime/types/jsx.d.ts +6 -1401
  8. package/h/types/hyperscript.d.ts +17 -0
  9. package/html/dist/html.cjs +34 -59
  10. package/html/dist/html.js +34 -59
  11. package/html/types/lit.d.ts +37 -0
  12. package/package.json +23 -21
  13. package/store/dist/dev.cjs +40 -22
  14. package/store/dist/dev.js +41 -23
  15. package/store/dist/store.cjs +40 -22
  16. package/store/dist/store.js +40 -22
  17. package/store/types/store.d.ts +1 -1
  18. package/types/jsx.d.ts +194 -1580
  19. package/types/reactive/observable.d.ts +7 -2
  20. package/types/reactive/signal.d.ts +42 -13
  21. package/types/render/component.d.ts +21 -6
  22. package/types/server/reactive.d.ts +6 -1
  23. package/types/server/rendering.d.ts +3 -2
  24. package/universal/types/universal.d.ts +3 -3
  25. package/web/dist/dev.cjs +3 -3
  26. package/web/dist/dev.js +3 -3
  27. package/web/dist/server.cjs +35 -69
  28. package/web/dist/server.js +35 -69
  29. package/web/dist/web.cjs +3 -3
  30. package/web/dist/web.js +3 -3
  31. package/web/types/core.d.ts +2 -2
  32. package/web/types/index.d.ts +5 -6
  33. package/web/types/server-mock.d.ts +4 -2
  34. package/web/types/server.d.ts +70 -0
  35. package/h/README.md +0 -99
  36. package/h/jsx-runtime/package.json +0 -8
  37. package/h/package.json +0 -8
  38. package/html/README.md +0 -84
  39. package/html/package.json +0 -8
  40. package/store/README.md +0 -23
  41. package/store/package.json +0 -35
  42. package/universal/README.md +0 -102
  43. package/universal/package.json +0 -18
  44. package/web/README.md +0 -7
  45. package/web/package.json +0 -35
package/store/dist/dev.js CHANGED
@@ -1,4 +1,4 @@
1
- import { $PROXY, DEV, $TRACK, getListener, batch, createSignal } from 'solid-js';
1
+ import { DEV, $PROXY, $TRACK, getListener, batch, createSignal } from 'solid-js';
2
2
 
3
3
  const $RAW = Symbol("store-raw"),
4
4
  $NODE = Symbol("store-node"),
@@ -9,15 +9,17 @@ function wrap$1(value, name) {
9
9
  Object.defineProperty(value, $PROXY, {
10
10
  value: p = new Proxy(value, proxyTraps$1)
11
11
  });
12
- const keys = Object.keys(value),
13
- desc = Object.getOwnPropertyDescriptors(value);
14
- for (let i = 0, l = keys.length; i < l; i++) {
15
- const prop = keys[i];
16
- if (desc[prop].get) {
17
- const get = desc[prop].get.bind(p);
18
- Object.defineProperty(value, prop, {
19
- get
20
- });
12
+ if (!Array.isArray(value)) {
13
+ const keys = Object.keys(value),
14
+ desc = Object.getOwnPropertyDescriptors(value);
15
+ for (let i = 0, l = keys.length; i < l; i++) {
16
+ const prop = keys[i];
17
+ if (desc[prop].get) {
18
+ const get = desc[prop].get.bind(p);
19
+ Object.defineProperty(value, prop, {
20
+ get
21
+ });
22
+ }
21
23
  }
22
24
  }
23
25
  if (name) Object.defineProperty(value, $NAME, {
@@ -61,7 +63,7 @@ function getDataNodes(target) {
61
63
  return nodes;
62
64
  }
63
65
  function getDataNode(nodes, property, value) {
64
- return nodes[property] || (nodes[property] = createDataNode(value, true));
66
+ return nodes[property] || (nodes[property] = createDataNode(value));
65
67
  }
66
68
  function proxyDescriptor(target, property) {
67
69
  const desc = Reflect.getOwnPropertyDescriptor(target, property);
@@ -81,10 +83,8 @@ function ownKeys(target) {
81
83
  trackSelf(target);
82
84
  return Reflect.ownKeys(target);
83
85
  }
84
- function createDataNode(value, equals) {
85
- const [s, set] = createSignal(value, equals ? {
86
- internal: true
87
- } : {
86
+ function createDataNode(value) {
87
+ const [s, set] = createSignal(value, {
88
88
  equals: false,
89
89
  internal: true
90
90
  });
@@ -95,9 +95,12 @@ const proxyTraps$1 = {
95
95
  get(target, property, receiver) {
96
96
  if (property === $RAW) return target;
97
97
  if (property === $PROXY) return receiver;
98
- if (property === $TRACK) return trackSelf(target);
98
+ if (property === $TRACK) {
99
+ trackSelf(target);
100
+ return receiver;
101
+ }
99
102
  const nodes = getDataNodes(target);
100
- const tracked = nodes[property];
103
+ const tracked = nodes.hasOwnProperty(property);
101
104
  let value = tracked ? nodes[property]() : target[property];
102
105
  if (property === $NODE || property === "__proto__") return value;
103
106
  if (!tracked) {
@@ -106,6 +109,12 @@ const proxyTraps$1 = {
106
109
  }
107
110
  return isWrappable(value) ? wrap$1(value, target[$NAME] && `${target[$NAME]}:${property.toString()}`) : value;
108
111
  },
112
+ has(target, property) {
113
+ if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === "__proto__") return true;
114
+ const tracked = getDataNodes(target)[property];
115
+ tracked && tracked();
116
+ return property in target;
117
+ },
109
118
  set() {
110
119
  console.warn("Cannot mutate a Store directly");
111
120
  return true;
@@ -117,8 +126,8 @@ const proxyTraps$1 = {
117
126
  ownKeys: ownKeys,
118
127
  getOwnPropertyDescriptor: proxyDescriptor
119
128
  };
120
- function setProperty(state, property, value) {
121
- if (state[property] === value) return;
129
+ function setProperty(state, property, value, deleting = false) {
130
+ if (!deleting && state[property] === value) return;
122
131
  const prev = state[property];
123
132
  const len = state.length;
124
133
  if (value === undefined) {
@@ -219,9 +228,12 @@ const proxyTraps = {
219
228
  get(target, property, receiver) {
220
229
  if (property === $RAW) return target;
221
230
  if (property === $PROXY) return receiver;
222
- if (property === $TRACK) return trackSelf(target);
231
+ if (property === $TRACK) {
232
+ trackSelf(target);
233
+ return receiver;
234
+ }
223
235
  const nodes = getDataNodes(target);
224
- const tracked = nodes[property];
236
+ const tracked = nodes.hasOwnProperty(property);
225
237
  let value = tracked ? nodes[property]() : target[property];
226
238
  if (property === $NODE || property === "__proto__") return value;
227
239
  if (!tracked) {
@@ -233,12 +245,18 @@ const proxyTraps = {
233
245
  }
234
246
  return isWrappable(value) ? wrap(value, target[$NAME] && `${target[$NAME]}:${property.toString()}`) : value;
235
247
  },
248
+ has(target, property) {
249
+ if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === "__proto__") return true;
250
+ const tracked = getDataNodes(target)[property];
251
+ tracked && tracked();
252
+ return property in target;
253
+ },
236
254
  set(target, property, value) {
237
255
  batch(() => setProperty(target, property, unwrap(value)));
238
256
  return true;
239
257
  },
240
258
  deleteProperty(target, property) {
241
- batch(() => setProperty(target, property, undefined));
259
+ batch(() => setProperty(target, property, undefined, true));
242
260
  return true;
243
261
  },
244
262
  ownKeys: ownKeys,
@@ -389,7 +407,7 @@ const setterTraps = {
389
407
  return true;
390
408
  },
391
409
  deleteProperty(target, property) {
392
- setProperty(target, property, undefined);
410
+ setProperty(target, property, undefined, true);
393
411
  return true;
394
412
  }
395
413
  };
@@ -13,15 +13,17 @@ function wrap$1(value, name) {
13
13
  Object.defineProperty(value, solidJs.$PROXY, {
14
14
  value: p = new Proxy(value, proxyTraps$1)
15
15
  });
16
- const keys = Object.keys(value),
17
- desc = Object.getOwnPropertyDescriptors(value);
18
- for (let i = 0, l = keys.length; i < l; i++) {
19
- const prop = keys[i];
20
- if (desc[prop].get) {
21
- const get = desc[prop].get.bind(p);
22
- Object.defineProperty(value, prop, {
23
- get
24
- });
16
+ if (!Array.isArray(value)) {
17
+ const keys = Object.keys(value),
18
+ desc = Object.getOwnPropertyDescriptors(value);
19
+ for (let i = 0, l = keys.length; i < l; i++) {
20
+ const prop = keys[i];
21
+ if (desc[prop].get) {
22
+ const get = desc[prop].get.bind(p);
23
+ Object.defineProperty(value, prop, {
24
+ get
25
+ });
26
+ }
25
27
  }
26
28
  }
27
29
  }
@@ -62,7 +64,7 @@ function getDataNodes(target) {
62
64
  return nodes;
63
65
  }
64
66
  function getDataNode(nodes, property, value) {
65
- return nodes[property] || (nodes[property] = createDataNode(value, true));
67
+ return nodes[property] || (nodes[property] = createDataNode(value));
66
68
  }
67
69
  function proxyDescriptor(target, property) {
68
70
  const desc = Reflect.getOwnPropertyDescriptor(target, property);
@@ -82,10 +84,8 @@ function ownKeys(target) {
82
84
  trackSelf(target);
83
85
  return Reflect.ownKeys(target);
84
86
  }
85
- function createDataNode(value, equals) {
86
- const [s, set] = solidJs.createSignal(value, equals ? {
87
- internal: true
88
- } : {
87
+ function createDataNode(value) {
88
+ const [s, set] = solidJs.createSignal(value, {
89
89
  equals: false,
90
90
  internal: true
91
91
  });
@@ -96,9 +96,12 @@ const proxyTraps$1 = {
96
96
  get(target, property, receiver) {
97
97
  if (property === $RAW) return target;
98
98
  if (property === solidJs.$PROXY) return receiver;
99
- if (property === solidJs.$TRACK) return trackSelf(target);
99
+ if (property === solidJs.$TRACK) {
100
+ trackSelf(target);
101
+ return receiver;
102
+ }
100
103
  const nodes = getDataNodes(target);
101
- const tracked = nodes[property];
104
+ const tracked = nodes.hasOwnProperty(property);
102
105
  let value = tracked ? nodes[property]() : target[property];
103
106
  if (property === $NODE || property === "__proto__") return value;
104
107
  if (!tracked) {
@@ -107,6 +110,12 @@ const proxyTraps$1 = {
107
110
  }
108
111
  return isWrappable(value) ? wrap$1(value) : value;
109
112
  },
113
+ has(target, property) {
114
+ if (property === $RAW || property === solidJs.$PROXY || property === solidJs.$TRACK || property === $NODE || property === "__proto__") return true;
115
+ const tracked = getDataNodes(target)[property];
116
+ tracked && tracked();
117
+ return property in target;
118
+ },
110
119
  set() {
111
120
  return true;
112
121
  },
@@ -116,8 +125,8 @@ const proxyTraps$1 = {
116
125
  ownKeys: ownKeys,
117
126
  getOwnPropertyDescriptor: proxyDescriptor
118
127
  };
119
- function setProperty(state, property, value) {
120
- if (state[property] === value) return;
128
+ function setProperty(state, property, value, deleting = false) {
129
+ if (!deleting && state[property] === value) return;
121
130
  const prev = state[property];
122
131
  const len = state.length;
123
132
  if (value === undefined) {
@@ -211,9 +220,12 @@ const proxyTraps = {
211
220
  get(target, property, receiver) {
212
221
  if (property === $RAW) return target;
213
222
  if (property === solidJs.$PROXY) return receiver;
214
- if (property === solidJs.$TRACK) return trackSelf(target);
223
+ if (property === solidJs.$TRACK) {
224
+ trackSelf(target);
225
+ return receiver;
226
+ }
215
227
  const nodes = getDataNodes(target);
216
- const tracked = nodes[property];
228
+ const tracked = nodes.hasOwnProperty(property);
217
229
  let value = tracked ? nodes[property]() : target[property];
218
230
  if (property === $NODE || property === "__proto__") return value;
219
231
  if (!tracked) {
@@ -225,12 +237,18 @@ const proxyTraps = {
225
237
  }
226
238
  return isWrappable(value) ? wrap(value) : value;
227
239
  },
240
+ has(target, property) {
241
+ if (property === $RAW || property === solidJs.$PROXY || property === solidJs.$TRACK || property === $NODE || property === "__proto__") return true;
242
+ const tracked = getDataNodes(target)[property];
243
+ tracked && tracked();
244
+ return property in target;
245
+ },
228
246
  set(target, property, value) {
229
247
  solidJs.batch(() => setProperty(target, property, unwrap(value)));
230
248
  return true;
231
249
  },
232
250
  deleteProperty(target, property) {
233
- solidJs.batch(() => setProperty(target, property, undefined));
251
+ solidJs.batch(() => setProperty(target, property, undefined, true));
234
252
  return true;
235
253
  },
236
254
  ownKeys: ownKeys,
@@ -371,7 +389,7 @@ const setterTraps = {
371
389
  return true;
372
390
  },
373
391
  deleteProperty(target, property) {
374
- setProperty(target, property, undefined);
392
+ setProperty(target, property, undefined, true);
375
393
  return true;
376
394
  }
377
395
  };
@@ -9,15 +9,17 @@ function wrap$1(value, name) {
9
9
  Object.defineProperty(value, $PROXY, {
10
10
  value: p = new Proxy(value, proxyTraps$1)
11
11
  });
12
- const keys = Object.keys(value),
13
- desc = Object.getOwnPropertyDescriptors(value);
14
- for (let i = 0, l = keys.length; i < l; i++) {
15
- const prop = keys[i];
16
- if (desc[prop].get) {
17
- const get = desc[prop].get.bind(p);
18
- Object.defineProperty(value, prop, {
19
- get
20
- });
12
+ if (!Array.isArray(value)) {
13
+ const keys = Object.keys(value),
14
+ desc = Object.getOwnPropertyDescriptors(value);
15
+ for (let i = 0, l = keys.length; i < l; i++) {
16
+ const prop = keys[i];
17
+ if (desc[prop].get) {
18
+ const get = desc[prop].get.bind(p);
19
+ Object.defineProperty(value, prop, {
20
+ get
21
+ });
22
+ }
21
23
  }
22
24
  }
23
25
  }
@@ -58,7 +60,7 @@ function getDataNodes(target) {
58
60
  return nodes;
59
61
  }
60
62
  function getDataNode(nodes, property, value) {
61
- return nodes[property] || (nodes[property] = createDataNode(value, true));
63
+ return nodes[property] || (nodes[property] = createDataNode(value));
62
64
  }
63
65
  function proxyDescriptor(target, property) {
64
66
  const desc = Reflect.getOwnPropertyDescriptor(target, property);
@@ -78,10 +80,8 @@ function ownKeys(target) {
78
80
  trackSelf(target);
79
81
  return Reflect.ownKeys(target);
80
82
  }
81
- function createDataNode(value, equals) {
82
- const [s, set] = createSignal(value, equals ? {
83
- internal: true
84
- } : {
83
+ function createDataNode(value) {
84
+ const [s, set] = createSignal(value, {
85
85
  equals: false,
86
86
  internal: true
87
87
  });
@@ -92,9 +92,12 @@ const proxyTraps$1 = {
92
92
  get(target, property, receiver) {
93
93
  if (property === $RAW) return target;
94
94
  if (property === $PROXY) return receiver;
95
- if (property === $TRACK) return trackSelf(target);
95
+ if (property === $TRACK) {
96
+ trackSelf(target);
97
+ return receiver;
98
+ }
96
99
  const nodes = getDataNodes(target);
97
- const tracked = nodes[property];
100
+ const tracked = nodes.hasOwnProperty(property);
98
101
  let value = tracked ? nodes[property]() : target[property];
99
102
  if (property === $NODE || property === "__proto__") return value;
100
103
  if (!tracked) {
@@ -103,6 +106,12 @@ const proxyTraps$1 = {
103
106
  }
104
107
  return isWrappable(value) ? wrap$1(value) : value;
105
108
  },
109
+ has(target, property) {
110
+ if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === "__proto__") return true;
111
+ const tracked = getDataNodes(target)[property];
112
+ tracked && tracked();
113
+ return property in target;
114
+ },
106
115
  set() {
107
116
  return true;
108
117
  },
@@ -112,8 +121,8 @@ const proxyTraps$1 = {
112
121
  ownKeys: ownKeys,
113
122
  getOwnPropertyDescriptor: proxyDescriptor
114
123
  };
115
- function setProperty(state, property, value) {
116
- if (state[property] === value) return;
124
+ function setProperty(state, property, value, deleting = false) {
125
+ if (!deleting && state[property] === value) return;
117
126
  const prev = state[property];
118
127
  const len = state.length;
119
128
  if (value === undefined) {
@@ -207,9 +216,12 @@ const proxyTraps = {
207
216
  get(target, property, receiver) {
208
217
  if (property === $RAW) return target;
209
218
  if (property === $PROXY) return receiver;
210
- if (property === $TRACK) return trackSelf(target);
219
+ if (property === $TRACK) {
220
+ trackSelf(target);
221
+ return receiver;
222
+ }
211
223
  const nodes = getDataNodes(target);
212
- const tracked = nodes[property];
224
+ const tracked = nodes.hasOwnProperty(property);
213
225
  let value = tracked ? nodes[property]() : target[property];
214
226
  if (property === $NODE || property === "__proto__") return value;
215
227
  if (!tracked) {
@@ -221,12 +233,18 @@ const proxyTraps = {
221
233
  }
222
234
  return isWrappable(value) ? wrap(value) : value;
223
235
  },
236
+ has(target, property) {
237
+ if (property === $RAW || property === $PROXY || property === $TRACK || property === $NODE || property === "__proto__") return true;
238
+ const tracked = getDataNodes(target)[property];
239
+ tracked && tracked();
240
+ return property in target;
241
+ },
224
242
  set(target, property, value) {
225
243
  batch(() => setProperty(target, property, unwrap(value)));
226
244
  return true;
227
245
  },
228
246
  deleteProperty(target, property) {
229
- batch(() => setProperty(target, property, undefined));
247
+ batch(() => setProperty(target, property, undefined, true));
230
248
  return true;
231
249
  },
232
250
  ownKeys: ownKeys,
@@ -367,7 +385,7 @@ const setterTraps = {
367
385
  return true;
368
386
  },
369
387
  deleteProperty(target, property) {
370
- setProperty(target, property, undefined);
388
+ setProperty(target, property, undefined, true);
371
389
  return true;
372
390
  }
373
391
  };
@@ -13,7 +13,7 @@ export declare function getDataNode(nodes: Record<string, any>, property: string
13
13
  export declare function proxyDescriptor(target: StoreNode, property: PropertyKey): PropertyDescriptor | undefined;
14
14
  export declare function trackSelf(target: StoreNode): void;
15
15
  export declare function ownKeys(target: StoreNode): (string | symbol)[];
16
- export declare function setProperty(state: StoreNode, property: PropertyKey, value: any): void;
16
+ export declare function setProperty(state: StoreNode, property: PropertyKey, value: any, deleting?: boolean): void;
17
17
  export declare function updatePath(current: StoreNode, path: any[], traversed?: PropertyKey[]): void;
18
18
  /** @deprecated */
19
19
  export declare type DeepReadonly<T> = 0 extends 1 & T ? T : T extends NotWrappable ? T : {