solid-js 1.9.11 → 2.0.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 (82) hide show
  1. package/dist/dev.cjs +733 -1678
  2. package/dist/dev.js +598 -1643
  3. package/dist/server.cjs +769 -703
  4. package/dist/server.js +682 -670
  5. package/dist/solid.cjs +699 -1618
  6. package/dist/solid.js +563 -1582
  7. package/package.json +7 -151
  8. package/types/{render → client}/component.d.ts +1 -38
  9. package/types/client/core.d.ts +65 -0
  10. package/types/client/flow.d.ts +100 -0
  11. package/types/client/hydration.d.ts +76 -0
  12. package/types/index.d.ts +11 -14
  13. package/types/jsx.d.ts +1508 -1633
  14. package/types/server/component.d.ts +66 -0
  15. package/types/server/core.d.ts +44 -0
  16. package/types/server/flow.d.ts +60 -0
  17. package/types/server/hydration.d.ts +21 -0
  18. package/types/server/index.d.ts +12 -3
  19. package/types/server/shared.d.ts +45 -0
  20. package/types/server/signals.d.ts +60 -0
  21. package/h/dist/h.cjs +0 -115
  22. package/h/dist/h.js +0 -113
  23. package/h/jsx-dev-runtime/package.json +0 -8
  24. package/h/jsx-runtime/dist/jsx.cjs +0 -15
  25. package/h/jsx-runtime/dist/jsx.js +0 -10
  26. package/h/jsx-runtime/package.json +0 -8
  27. package/h/jsx-runtime/types/index.d.ts +0 -11
  28. package/h/jsx-runtime/types/jsx.d.ts +0 -4242
  29. package/h/package.json +0 -8
  30. package/h/types/hyperscript.d.ts +0 -20
  31. package/h/types/index.d.ts +0 -3
  32. package/html/dist/html.cjs +0 -583
  33. package/html/dist/html.js +0 -581
  34. package/html/package.json +0 -8
  35. package/html/types/index.d.ts +0 -3
  36. package/html/types/lit.d.ts +0 -41
  37. package/store/dist/dev.cjs +0 -458
  38. package/store/dist/dev.js +0 -449
  39. package/store/dist/server.cjs +0 -126
  40. package/store/dist/server.js +0 -114
  41. package/store/dist/store.cjs +0 -438
  42. package/store/dist/store.js +0 -429
  43. package/store/package.json +0 -46
  44. package/store/types/index.d.ts +0 -12
  45. package/store/types/modifiers.d.ts +0 -6
  46. package/store/types/mutable.d.ts +0 -5
  47. package/store/types/server.d.ts +0 -17
  48. package/store/types/store.d.ts +0 -107
  49. package/types/reactive/array.d.ts +0 -44
  50. package/types/reactive/observable.d.ts +0 -36
  51. package/types/reactive/scheduler.d.ts +0 -10
  52. package/types/reactive/signal.d.ts +0 -577
  53. package/types/render/Suspense.d.ts +0 -26
  54. package/types/render/flow.d.ts +0 -118
  55. package/types/render/hydration.d.ts +0 -24
  56. package/types/render/index.d.ts +0 -4
  57. package/types/server/reactive.d.ts +0 -98
  58. package/types/server/rendering.d.ts +0 -159
  59. package/universal/dist/dev.cjs +0 -245
  60. package/universal/dist/dev.js +0 -243
  61. package/universal/dist/universal.cjs +0 -245
  62. package/universal/dist/universal.js +0 -243
  63. package/universal/package.json +0 -20
  64. package/universal/types/index.d.ts +0 -3
  65. package/universal/types/universal.d.ts +0 -30
  66. package/web/dist/dev.cjs +0 -894
  67. package/web/dist/dev.js +0 -782
  68. package/web/dist/server.cjs +0 -892
  69. package/web/dist/server.js +0 -782
  70. package/web/dist/web.cjs +0 -883
  71. package/web/dist/web.js +0 -771
  72. package/web/package.json +0 -46
  73. package/web/storage/dist/storage.cjs +0 -12
  74. package/web/storage/dist/storage.js +0 -10
  75. package/web/storage/package.json +0 -15
  76. package/web/storage/types/index.d.ts +0 -2
  77. package/web/types/client.d.ts +0 -79
  78. package/web/types/core.d.ts +0 -2
  79. package/web/types/index.d.ts +0 -50
  80. package/web/types/jsx.d.ts +0 -1
  81. package/web/types/server-mock.d.ts +0 -65
  82. package/web/types/server.d.ts +0 -177
@@ -1,243 +0,0 @@
1
- import { createMemo, createRoot, createRenderEffect, mergeProps, createComponent, untrack } from 'solid-js';
2
-
3
- const memo = fn => createMemo(() => fn());
4
-
5
- function createRenderer$1({
6
- createElement,
7
- createTextNode,
8
- isTextNode,
9
- replaceText,
10
- insertNode,
11
- removeNode,
12
- setProperty,
13
- getParentNode,
14
- getFirstChild,
15
- getNextSibling
16
- }) {
17
- function insert(parent, accessor, marker, initial) {
18
- if (marker !== undefined && !initial) initial = [];
19
- if (typeof accessor !== "function") return insertExpression(parent, accessor, initial, marker);
20
- createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial);
21
- }
22
- function insertExpression(parent, value, current, marker, unwrapArray) {
23
- while (typeof current === "function") current = current();
24
- if (value === current) return current;
25
- const t = typeof value,
26
- multi = marker !== undefined;
27
- if (t === "string" || t === "number") {
28
- if (t === "number") value = value.toString();
29
- if (multi) {
30
- let node = current[0];
31
- if (node && isTextNode(node)) {
32
- replaceText(node, value);
33
- } else node = createTextNode(value);
34
- current = cleanChildren(parent, current, marker, node);
35
- } else {
36
- if (current !== "" && typeof current === "string") {
37
- replaceText(getFirstChild(parent), current = value);
38
- } else {
39
- cleanChildren(parent, current, marker, createTextNode(value));
40
- current = value;
41
- }
42
- }
43
- } else if (value == null || t === "boolean") {
44
- current = cleanChildren(parent, current, marker);
45
- } else if (t === "function") {
46
- createRenderEffect(() => {
47
- let v = value();
48
- while (typeof v === "function") v = v();
49
- current = insertExpression(parent, v, current, marker);
50
- });
51
- return () => current;
52
- } else if (Array.isArray(value)) {
53
- const array = [];
54
- if (normalizeIncomingArray(array, value, unwrapArray)) {
55
- createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));
56
- return () => current;
57
- }
58
- if (array.length === 0) {
59
- const replacement = cleanChildren(parent, current, marker);
60
- if (multi) return current = replacement;
61
- } else {
62
- if (Array.isArray(current)) {
63
- if (current.length === 0) {
64
- appendNodes(parent, array, marker);
65
- } else reconcileArrays(parent, current, array);
66
- } else if (current == null || current === "") {
67
- appendNodes(parent, array);
68
- } else {
69
- reconcileArrays(parent, multi && current || [getFirstChild(parent)], array);
70
- }
71
- }
72
- current = array;
73
- } else {
74
- if (Array.isArray(current)) {
75
- if (multi) return current = cleanChildren(parent, current, marker, value);
76
- cleanChildren(parent, current, null, value);
77
- } else if (current == null || current === "" || !getFirstChild(parent)) {
78
- insertNode(parent, value);
79
- } else replaceNode(parent, value, getFirstChild(parent));
80
- current = value;
81
- }
82
- return current;
83
- }
84
- function normalizeIncomingArray(normalized, array, unwrap) {
85
- let dynamic = false;
86
- for (let i = 0, len = array.length; i < len; i++) {
87
- let item = array[i],
88
- t;
89
- if (item == null || item === true || item === false) ; else if (Array.isArray(item)) {
90
- dynamic = normalizeIncomingArray(normalized, item) || dynamic;
91
- } else if ((t = typeof item) === "string" || t === "number") {
92
- normalized.push(createTextNode(item));
93
- } else if (t === "function") {
94
- if (unwrap) {
95
- while (typeof item === "function") item = item();
96
- dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item]) || dynamic;
97
- } else {
98
- normalized.push(item);
99
- dynamic = true;
100
- }
101
- } else normalized.push(item);
102
- }
103
- return dynamic;
104
- }
105
- function reconcileArrays(parentNode, a, b) {
106
- let bLength = b.length,
107
- aEnd = a.length,
108
- bEnd = bLength,
109
- aStart = 0,
110
- bStart = 0,
111
- after = getNextSibling(a[aEnd - 1]),
112
- map = null;
113
- while (aStart < aEnd || bStart < bEnd) {
114
- if (a[aStart] === b[bStart]) {
115
- aStart++;
116
- bStart++;
117
- continue;
118
- }
119
- while (a[aEnd - 1] === b[bEnd - 1]) {
120
- aEnd--;
121
- bEnd--;
122
- }
123
- if (aEnd === aStart) {
124
- const node = bEnd < bLength ? bStart ? getNextSibling(b[bStart - 1]) : b[bEnd - bStart] : after;
125
- while (bStart < bEnd) insertNode(parentNode, b[bStart++], node);
126
- } else if (bEnd === bStart) {
127
- while (aStart < aEnd) {
128
- if (!map || !map.has(a[aStart])) removeNode(parentNode, a[aStart]);
129
- aStart++;
130
- }
131
- } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {
132
- const node = getNextSibling(a[--aEnd]);
133
- insertNode(parentNode, b[bStart++], getNextSibling(a[aStart++]));
134
- insertNode(parentNode, b[--bEnd], node);
135
- a[aEnd] = b[bEnd];
136
- } else {
137
- if (!map) {
138
- map = new Map();
139
- let i = bStart;
140
- while (i < bEnd) map.set(b[i], i++);
141
- }
142
- const index = map.get(a[aStart]);
143
- if (index != null) {
144
- if (bStart < index && index < bEnd) {
145
- let i = aStart,
146
- sequence = 1,
147
- t;
148
- while (++i < aEnd && i < bEnd) {
149
- if ((t = map.get(a[i])) == null || t !== index + sequence) break;
150
- sequence++;
151
- }
152
- if (sequence > index - bStart) {
153
- const node = a[aStart];
154
- while (bStart < index) insertNode(parentNode, b[bStart++], node);
155
- } else replaceNode(parentNode, b[bStart++], a[aStart++]);
156
- } else aStart++;
157
- } else removeNode(parentNode, a[aStart++]);
158
- }
159
- }
160
- }
161
- function cleanChildren(parent, current, marker, replacement) {
162
- if (marker === undefined) {
163
- let removed;
164
- while (removed = getFirstChild(parent)) removeNode(parent, removed);
165
- replacement && insertNode(parent, replacement);
166
- return "";
167
- }
168
- const node = replacement || createTextNode("");
169
- if (current.length) {
170
- let inserted = false;
171
- for (let i = current.length - 1; i >= 0; i--) {
172
- const el = current[i];
173
- if (node !== el) {
174
- const isParent = getParentNode(el) === parent;
175
- if (!inserted && !i) isParent ? replaceNode(parent, node, el) : insertNode(parent, node, marker);else isParent && removeNode(parent, el);
176
- } else inserted = true;
177
- }
178
- } else insertNode(parent, node, marker);
179
- return [node];
180
- }
181
- function appendNodes(parent, array, marker) {
182
- for (let i = 0, len = array.length; i < len; i++) insertNode(parent, array[i], marker);
183
- }
184
- function replaceNode(parent, newNode, oldNode) {
185
- insertNode(parent, newNode, oldNode);
186
- removeNode(parent, oldNode);
187
- }
188
- function spreadExpression(node, props, prevProps = {}, skipChildren) {
189
- props || (props = {});
190
- if (!skipChildren) {
191
- createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));
192
- }
193
- createRenderEffect(() => props.ref && props.ref(node));
194
- createRenderEffect(() => {
195
- for (const prop in props) {
196
- if (prop === "children" || prop === "ref") continue;
197
- const value = props[prop];
198
- if (value === prevProps[prop]) continue;
199
- setProperty(node, prop, value, prevProps[prop]);
200
- prevProps[prop] = value;
201
- }
202
- });
203
- return prevProps;
204
- }
205
- return {
206
- render(code, element) {
207
- let disposer;
208
- createRoot(dispose => {
209
- disposer = dispose;
210
- insert(element, code());
211
- });
212
- return disposer;
213
- },
214
- insert,
215
- spread(node, accessor, skipChildren) {
216
- if (typeof accessor === "function") {
217
- createRenderEffect(current => spreadExpression(node, accessor(), current, skipChildren));
218
- } else spreadExpression(node, accessor, undefined, skipChildren);
219
- },
220
- createElement,
221
- createTextNode,
222
- insertNode,
223
- setProp(node, name, value, prev) {
224
- setProperty(node, name, value, prev);
225
- return value;
226
- },
227
- mergeProps,
228
- effect: createRenderEffect,
229
- memo,
230
- createComponent,
231
- use(fn, element, arg) {
232
- return untrack(() => fn(element, arg));
233
- }
234
- };
235
- }
236
-
237
- function createRenderer(options) {
238
- const renderer = createRenderer$1(options);
239
- renderer.mergeProps = mergeProps;
240
- return renderer;
241
- }
242
-
243
- export { createRenderer };
@@ -1,245 +0,0 @@
1
- 'use strict';
2
-
3
- var solidJs = require('solid-js');
4
-
5
- const memo = fn => solidJs.createMemo(() => fn());
6
-
7
- function createRenderer$1({
8
- createElement,
9
- createTextNode,
10
- isTextNode,
11
- replaceText,
12
- insertNode,
13
- removeNode,
14
- setProperty,
15
- getParentNode,
16
- getFirstChild,
17
- getNextSibling
18
- }) {
19
- function insert(parent, accessor, marker, initial) {
20
- if (marker !== undefined && !initial) initial = [];
21
- if (typeof accessor !== "function") return insertExpression(parent, accessor, initial, marker);
22
- solidJs.createRenderEffect(current => insertExpression(parent, accessor(), current, marker), initial);
23
- }
24
- function insertExpression(parent, value, current, marker, unwrapArray) {
25
- while (typeof current === "function") current = current();
26
- if (value === current) return current;
27
- const t = typeof value,
28
- multi = marker !== undefined;
29
- if (t === "string" || t === "number") {
30
- if (t === "number") value = value.toString();
31
- if (multi) {
32
- let node = current[0];
33
- if (node && isTextNode(node)) {
34
- replaceText(node, value);
35
- } else node = createTextNode(value);
36
- current = cleanChildren(parent, current, marker, node);
37
- } else {
38
- if (current !== "" && typeof current === "string") {
39
- replaceText(getFirstChild(parent), current = value);
40
- } else {
41
- cleanChildren(parent, current, marker, createTextNode(value));
42
- current = value;
43
- }
44
- }
45
- } else if (value == null || t === "boolean") {
46
- current = cleanChildren(parent, current, marker);
47
- } else if (t === "function") {
48
- solidJs.createRenderEffect(() => {
49
- let v = value();
50
- while (typeof v === "function") v = v();
51
- current = insertExpression(parent, v, current, marker);
52
- });
53
- return () => current;
54
- } else if (Array.isArray(value)) {
55
- const array = [];
56
- if (normalizeIncomingArray(array, value, unwrapArray)) {
57
- solidJs.createRenderEffect(() => current = insertExpression(parent, array, current, marker, true));
58
- return () => current;
59
- }
60
- if (array.length === 0) {
61
- const replacement = cleanChildren(parent, current, marker);
62
- if (multi) return current = replacement;
63
- } else {
64
- if (Array.isArray(current)) {
65
- if (current.length === 0) {
66
- appendNodes(parent, array, marker);
67
- } else reconcileArrays(parent, current, array);
68
- } else if (current == null || current === "") {
69
- appendNodes(parent, array);
70
- } else {
71
- reconcileArrays(parent, multi && current || [getFirstChild(parent)], array);
72
- }
73
- }
74
- current = array;
75
- } else {
76
- if (Array.isArray(current)) {
77
- if (multi) return current = cleanChildren(parent, current, marker, value);
78
- cleanChildren(parent, current, null, value);
79
- } else if (current == null || current === "" || !getFirstChild(parent)) {
80
- insertNode(parent, value);
81
- } else replaceNode(parent, value, getFirstChild(parent));
82
- current = value;
83
- }
84
- return current;
85
- }
86
- function normalizeIncomingArray(normalized, array, unwrap) {
87
- let dynamic = false;
88
- for (let i = 0, len = array.length; i < len; i++) {
89
- let item = array[i],
90
- t;
91
- if (item == null || item === true || item === false) ; else if (Array.isArray(item)) {
92
- dynamic = normalizeIncomingArray(normalized, item) || dynamic;
93
- } else if ((t = typeof item) === "string" || t === "number") {
94
- normalized.push(createTextNode(item));
95
- } else if (t === "function") {
96
- if (unwrap) {
97
- while (typeof item === "function") item = item();
98
- dynamic = normalizeIncomingArray(normalized, Array.isArray(item) ? item : [item]) || dynamic;
99
- } else {
100
- normalized.push(item);
101
- dynamic = true;
102
- }
103
- } else normalized.push(item);
104
- }
105
- return dynamic;
106
- }
107
- function reconcileArrays(parentNode, a, b) {
108
- let bLength = b.length,
109
- aEnd = a.length,
110
- bEnd = bLength,
111
- aStart = 0,
112
- bStart = 0,
113
- after = getNextSibling(a[aEnd - 1]),
114
- map = null;
115
- while (aStart < aEnd || bStart < bEnd) {
116
- if (a[aStart] === b[bStart]) {
117
- aStart++;
118
- bStart++;
119
- continue;
120
- }
121
- while (a[aEnd - 1] === b[bEnd - 1]) {
122
- aEnd--;
123
- bEnd--;
124
- }
125
- if (aEnd === aStart) {
126
- const node = bEnd < bLength ? bStart ? getNextSibling(b[bStart - 1]) : b[bEnd - bStart] : after;
127
- while (bStart < bEnd) insertNode(parentNode, b[bStart++], node);
128
- } else if (bEnd === bStart) {
129
- while (aStart < aEnd) {
130
- if (!map || !map.has(a[aStart])) removeNode(parentNode, a[aStart]);
131
- aStart++;
132
- }
133
- } else if (a[aStart] === b[bEnd - 1] && b[bStart] === a[aEnd - 1]) {
134
- const node = getNextSibling(a[--aEnd]);
135
- insertNode(parentNode, b[bStart++], getNextSibling(a[aStart++]));
136
- insertNode(parentNode, b[--bEnd], node);
137
- a[aEnd] = b[bEnd];
138
- } else {
139
- if (!map) {
140
- map = new Map();
141
- let i = bStart;
142
- while (i < bEnd) map.set(b[i], i++);
143
- }
144
- const index = map.get(a[aStart]);
145
- if (index != null) {
146
- if (bStart < index && index < bEnd) {
147
- let i = aStart,
148
- sequence = 1,
149
- t;
150
- while (++i < aEnd && i < bEnd) {
151
- if ((t = map.get(a[i])) == null || t !== index + sequence) break;
152
- sequence++;
153
- }
154
- if (sequence > index - bStart) {
155
- const node = a[aStart];
156
- while (bStart < index) insertNode(parentNode, b[bStart++], node);
157
- } else replaceNode(parentNode, b[bStart++], a[aStart++]);
158
- } else aStart++;
159
- } else removeNode(parentNode, a[aStart++]);
160
- }
161
- }
162
- }
163
- function cleanChildren(parent, current, marker, replacement) {
164
- if (marker === undefined) {
165
- let removed;
166
- while (removed = getFirstChild(parent)) removeNode(parent, removed);
167
- replacement && insertNode(parent, replacement);
168
- return "";
169
- }
170
- const node = replacement || createTextNode("");
171
- if (current.length) {
172
- let inserted = false;
173
- for (let i = current.length - 1; i >= 0; i--) {
174
- const el = current[i];
175
- if (node !== el) {
176
- const isParent = getParentNode(el) === parent;
177
- if (!inserted && !i) isParent ? replaceNode(parent, node, el) : insertNode(parent, node, marker);else isParent && removeNode(parent, el);
178
- } else inserted = true;
179
- }
180
- } else insertNode(parent, node, marker);
181
- return [node];
182
- }
183
- function appendNodes(parent, array, marker) {
184
- for (let i = 0, len = array.length; i < len; i++) insertNode(parent, array[i], marker);
185
- }
186
- function replaceNode(parent, newNode, oldNode) {
187
- insertNode(parent, newNode, oldNode);
188
- removeNode(parent, oldNode);
189
- }
190
- function spreadExpression(node, props, prevProps = {}, skipChildren) {
191
- props || (props = {});
192
- if (!skipChildren) {
193
- solidJs.createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));
194
- }
195
- solidJs.createRenderEffect(() => props.ref && props.ref(node));
196
- solidJs.createRenderEffect(() => {
197
- for (const prop in props) {
198
- if (prop === "children" || prop === "ref") continue;
199
- const value = props[prop];
200
- if (value === prevProps[prop]) continue;
201
- setProperty(node, prop, value, prevProps[prop]);
202
- prevProps[prop] = value;
203
- }
204
- });
205
- return prevProps;
206
- }
207
- return {
208
- render(code, element) {
209
- let disposer;
210
- solidJs.createRoot(dispose => {
211
- disposer = dispose;
212
- insert(element, code());
213
- });
214
- return disposer;
215
- },
216
- insert,
217
- spread(node, accessor, skipChildren) {
218
- if (typeof accessor === "function") {
219
- solidJs.createRenderEffect(current => spreadExpression(node, accessor(), current, skipChildren));
220
- } else spreadExpression(node, accessor, undefined, skipChildren);
221
- },
222
- createElement,
223
- createTextNode,
224
- insertNode,
225
- setProp(node, name, value, prev) {
226
- setProperty(node, name, value, prev);
227
- return value;
228
- },
229
- mergeProps: solidJs.mergeProps,
230
- effect: solidJs.createRenderEffect,
231
- memo,
232
- createComponent: solidJs.createComponent,
233
- use(fn, element, arg) {
234
- return solidJs.untrack(() => fn(element, arg));
235
- }
236
- };
237
- }
238
-
239
- function createRenderer(options) {
240
- const renderer = createRenderer$1(options);
241
- renderer.mergeProps = solidJs.mergeProps;
242
- return renderer;
243
- }
244
-
245
- exports.createRenderer = createRenderer;