solid-js 1.5.7 → 1.6.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.
- package/dist/dev.cjs +44 -28
- package/dist/dev.js +44 -28
- package/dist/solid.cjs +44 -28
- package/dist/solid.js +44 -28
- package/html/dist/html.cjs +30 -10
- package/html/dist/html.js +30 -10
- package/package.json +1 -1
- package/types/reactive/signal.d.ts +1 -1
- package/universal/dist/dev.cjs +4 -20
- package/universal/dist/dev.js +5 -21
- package/universal/dist/universal.cjs +4 -20
- package/universal/dist/universal.js +5 -21
- package/web/dist/dev.cjs +31 -39
- package/web/dist/dev.js +29 -41
- package/web/dist/server.cjs +34 -20
- package/web/dist/server.js +34 -21
- package/web/dist/web.cjs +31 -39
- package/web/dist/web.js +29 -41
- package/web/types/client.d.ts +6 -5
- package/web/types/core.d.ts +1 -3
- package/web/types/server.d.ts +11 -4
package/dist/dev.cjs
CHANGED
|
@@ -682,7 +682,9 @@ function updateComputation(node) {
|
|
|
682
682
|
queueMicrotask(() => {
|
|
683
683
|
runUpdates(() => {
|
|
684
684
|
Transition && (Transition.running = true);
|
|
685
|
+
Listener = Owner = node;
|
|
685
686
|
runComputation(node, node.tValue, time);
|
|
687
|
+
Listener = Owner = null;
|
|
686
688
|
}, false);
|
|
687
689
|
});
|
|
688
690
|
}
|
|
@@ -1257,29 +1259,41 @@ function resolveSource(s) {
|
|
|
1257
1259
|
return (s = typeof s === "function" ? s() : s) == null ? {} : s;
|
|
1258
1260
|
}
|
|
1259
1261
|
function mergeProps(...sources) {
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1262
|
+
if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
|
|
1263
|
+
return new Proxy({
|
|
1264
|
+
get(property) {
|
|
1265
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1266
|
+
const v = resolveSource(sources[i])[property];
|
|
1267
|
+
if (v !== undefined) return v;
|
|
1268
|
+
}
|
|
1269
|
+
},
|
|
1270
|
+
has(property) {
|
|
1271
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1272
|
+
if (property in resolveSource(sources[i])) return true;
|
|
1273
|
+
}
|
|
1274
|
+
return false;
|
|
1275
|
+
},
|
|
1276
|
+
keys() {
|
|
1277
|
+
const keys = [];
|
|
1278
|
+
for (let i = 0; i < sources.length; i++) keys.push(...Object.keys(resolveSource(sources[i])));
|
|
1279
|
+
return [...new Set(keys)];
|
|
1270
1280
|
}
|
|
1271
|
-
|
|
1272
|
-
|
|
1273
|
-
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
|
|
1281
|
+
}, propTraps);
|
|
1282
|
+
}
|
|
1283
|
+
const target = {};
|
|
1284
|
+
for (let i = 0; i < sources.length; i++) {
|
|
1285
|
+
if (sources[i]) {
|
|
1286
|
+
const descriptors = Object.getOwnPropertyDescriptors(sources[i]);
|
|
1287
|
+
Object.defineProperties(target, descriptors);
|
|
1277
1288
|
}
|
|
1278
|
-
}
|
|
1289
|
+
}
|
|
1290
|
+
return target;
|
|
1279
1291
|
}
|
|
1280
1292
|
function splitProps(props, ...keys) {
|
|
1281
1293
|
const blocked = new Set(keys.flat());
|
|
1282
1294
|
const descriptors = Object.getOwnPropertyDescriptors(props);
|
|
1295
|
+
const isProxy = ($PROXY in props);
|
|
1296
|
+
if (!isProxy) keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
|
|
1283
1297
|
const res = keys.map(k => {
|
|
1284
1298
|
const clone = {};
|
|
1285
1299
|
for (let i = 0; i < k.length; i++) {
|
|
@@ -1295,17 +1309,19 @@ function splitProps(props, ...keys) {
|
|
|
1295
1309
|
}
|
|
1296
1310
|
return clone;
|
|
1297
1311
|
});
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1312
|
+
if (isProxy) {
|
|
1313
|
+
res.push(new Proxy({
|
|
1314
|
+
get(property) {
|
|
1315
|
+
return blocked.has(property) ? undefined : props[property];
|
|
1316
|
+
},
|
|
1317
|
+
has(property) {
|
|
1318
|
+
return blocked.has(property) ? false : property in props;
|
|
1319
|
+
},
|
|
1320
|
+
keys() {
|
|
1321
|
+
return Object.keys(props).filter(k => !blocked.has(k));
|
|
1322
|
+
}
|
|
1323
|
+
}, propTraps));
|
|
1324
|
+
}
|
|
1309
1325
|
return res;
|
|
1310
1326
|
}
|
|
1311
1327
|
function lazy(fn) {
|
package/dist/dev.js
CHANGED
|
@@ -678,7 +678,9 @@ function updateComputation(node) {
|
|
|
678
678
|
queueMicrotask(() => {
|
|
679
679
|
runUpdates(() => {
|
|
680
680
|
Transition && (Transition.running = true);
|
|
681
|
+
Listener = Owner = node;
|
|
681
682
|
runComputation(node, node.tValue, time);
|
|
683
|
+
Listener = Owner = null;
|
|
682
684
|
}, false);
|
|
683
685
|
});
|
|
684
686
|
}
|
|
@@ -1253,29 +1255,41 @@ function resolveSource(s) {
|
|
|
1253
1255
|
return (s = typeof s === "function" ? s() : s) == null ? {} : s;
|
|
1254
1256
|
}
|
|
1255
1257
|
function mergeProps(...sources) {
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1258
|
+
if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
|
|
1259
|
+
return new Proxy({
|
|
1260
|
+
get(property) {
|
|
1261
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1262
|
+
const v = resolveSource(sources[i])[property];
|
|
1263
|
+
if (v !== undefined) return v;
|
|
1264
|
+
}
|
|
1265
|
+
},
|
|
1266
|
+
has(property) {
|
|
1267
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1268
|
+
if (property in resolveSource(sources[i])) return true;
|
|
1269
|
+
}
|
|
1270
|
+
return false;
|
|
1271
|
+
},
|
|
1272
|
+
keys() {
|
|
1273
|
+
const keys = [];
|
|
1274
|
+
for (let i = 0; i < sources.length; i++) keys.push(...Object.keys(resolveSource(sources[i])));
|
|
1275
|
+
return [...new Set(keys)];
|
|
1266
1276
|
}
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
|
|
1277
|
+
}, propTraps);
|
|
1278
|
+
}
|
|
1279
|
+
const target = {};
|
|
1280
|
+
for (let i = 0; i < sources.length; i++) {
|
|
1281
|
+
if (sources[i]) {
|
|
1282
|
+
const descriptors = Object.getOwnPropertyDescriptors(sources[i]);
|
|
1283
|
+
Object.defineProperties(target, descriptors);
|
|
1273
1284
|
}
|
|
1274
|
-
}
|
|
1285
|
+
}
|
|
1286
|
+
return target;
|
|
1275
1287
|
}
|
|
1276
1288
|
function splitProps(props, ...keys) {
|
|
1277
1289
|
const blocked = new Set(keys.flat());
|
|
1278
1290
|
const descriptors = Object.getOwnPropertyDescriptors(props);
|
|
1291
|
+
const isProxy = ($PROXY in props);
|
|
1292
|
+
if (!isProxy) keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
|
|
1279
1293
|
const res = keys.map(k => {
|
|
1280
1294
|
const clone = {};
|
|
1281
1295
|
for (let i = 0; i < k.length; i++) {
|
|
@@ -1291,17 +1305,19 @@ function splitProps(props, ...keys) {
|
|
|
1291
1305
|
}
|
|
1292
1306
|
return clone;
|
|
1293
1307
|
});
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1297
|
-
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1308
|
+
if (isProxy) {
|
|
1309
|
+
res.push(new Proxy({
|
|
1310
|
+
get(property) {
|
|
1311
|
+
return blocked.has(property) ? undefined : props[property];
|
|
1312
|
+
},
|
|
1313
|
+
has(property) {
|
|
1314
|
+
return blocked.has(property) ? false : property in props;
|
|
1315
|
+
},
|
|
1316
|
+
keys() {
|
|
1317
|
+
return Object.keys(props).filter(k => !blocked.has(k));
|
|
1318
|
+
}
|
|
1319
|
+
}, propTraps));
|
|
1320
|
+
}
|
|
1305
1321
|
return res;
|
|
1306
1322
|
}
|
|
1307
1323
|
function lazy(fn) {
|
package/dist/solid.cjs
CHANGED
|
@@ -621,7 +621,9 @@ function updateComputation(node) {
|
|
|
621
621
|
queueMicrotask(() => {
|
|
622
622
|
runUpdates(() => {
|
|
623
623
|
Transition && (Transition.running = true);
|
|
624
|
+
Listener = Owner = node;
|
|
624
625
|
runComputation(node, node.tValue, time);
|
|
626
|
+
Listener = Owner = null;
|
|
625
627
|
}, false);
|
|
626
628
|
});
|
|
627
629
|
}
|
|
@@ -1171,29 +1173,41 @@ function resolveSource(s) {
|
|
|
1171
1173
|
return (s = typeof s === "function" ? s() : s) == null ? {} : s;
|
|
1172
1174
|
}
|
|
1173
1175
|
function mergeProps(...sources) {
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1176
|
+
if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
|
|
1177
|
+
return new Proxy({
|
|
1178
|
+
get(property) {
|
|
1179
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1180
|
+
const v = resolveSource(sources[i])[property];
|
|
1181
|
+
if (v !== undefined) return v;
|
|
1182
|
+
}
|
|
1183
|
+
},
|
|
1184
|
+
has(property) {
|
|
1185
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1186
|
+
if (property in resolveSource(sources[i])) return true;
|
|
1187
|
+
}
|
|
1188
|
+
return false;
|
|
1189
|
+
},
|
|
1190
|
+
keys() {
|
|
1191
|
+
const keys = [];
|
|
1192
|
+
for (let i = 0; i < sources.length; i++) keys.push(...Object.keys(resolveSource(sources[i])));
|
|
1193
|
+
return [...new Set(keys)];
|
|
1184
1194
|
}
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
|
|
1195
|
+
}, propTraps);
|
|
1196
|
+
}
|
|
1197
|
+
const target = {};
|
|
1198
|
+
for (let i = 0; i < sources.length; i++) {
|
|
1199
|
+
if (sources[i]) {
|
|
1200
|
+
const descriptors = Object.getOwnPropertyDescriptors(sources[i]);
|
|
1201
|
+
Object.defineProperties(target, descriptors);
|
|
1191
1202
|
}
|
|
1192
|
-
}
|
|
1203
|
+
}
|
|
1204
|
+
return target;
|
|
1193
1205
|
}
|
|
1194
1206
|
function splitProps(props, ...keys) {
|
|
1195
1207
|
const blocked = new Set(keys.flat());
|
|
1196
1208
|
const descriptors = Object.getOwnPropertyDescriptors(props);
|
|
1209
|
+
const isProxy = ($PROXY in props);
|
|
1210
|
+
if (!isProxy) keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
|
|
1197
1211
|
const res = keys.map(k => {
|
|
1198
1212
|
const clone = {};
|
|
1199
1213
|
for (let i = 0; i < k.length; i++) {
|
|
@@ -1209,17 +1223,19 @@ function splitProps(props, ...keys) {
|
|
|
1209
1223
|
}
|
|
1210
1224
|
return clone;
|
|
1211
1225
|
});
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1226
|
+
if (isProxy) {
|
|
1227
|
+
res.push(new Proxy({
|
|
1228
|
+
get(property) {
|
|
1229
|
+
return blocked.has(property) ? undefined : props[property];
|
|
1230
|
+
},
|
|
1231
|
+
has(property) {
|
|
1232
|
+
return blocked.has(property) ? false : property in props;
|
|
1233
|
+
},
|
|
1234
|
+
keys() {
|
|
1235
|
+
return Object.keys(props).filter(k => !blocked.has(k));
|
|
1236
|
+
}
|
|
1237
|
+
}, propTraps));
|
|
1238
|
+
}
|
|
1223
1239
|
return res;
|
|
1224
1240
|
}
|
|
1225
1241
|
function lazy(fn) {
|
package/dist/solid.js
CHANGED
|
@@ -617,7 +617,9 @@ function updateComputation(node) {
|
|
|
617
617
|
queueMicrotask(() => {
|
|
618
618
|
runUpdates(() => {
|
|
619
619
|
Transition && (Transition.running = true);
|
|
620
|
+
Listener = Owner = node;
|
|
620
621
|
runComputation(node, node.tValue, time);
|
|
622
|
+
Listener = Owner = null;
|
|
621
623
|
}, false);
|
|
622
624
|
});
|
|
623
625
|
}
|
|
@@ -1167,29 +1169,41 @@ function resolveSource(s) {
|
|
|
1167
1169
|
return (s = typeof s === "function" ? s() : s) == null ? {} : s;
|
|
1168
1170
|
}
|
|
1169
1171
|
function mergeProps(...sources) {
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1175
|
-
|
|
1176
|
-
|
|
1177
|
-
|
|
1178
|
-
|
|
1179
|
-
|
|
1172
|
+
if (sources.some(s => s && ($PROXY in s || typeof s === "function"))) {
|
|
1173
|
+
return new Proxy({
|
|
1174
|
+
get(property) {
|
|
1175
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1176
|
+
const v = resolveSource(sources[i])[property];
|
|
1177
|
+
if (v !== undefined) return v;
|
|
1178
|
+
}
|
|
1179
|
+
},
|
|
1180
|
+
has(property) {
|
|
1181
|
+
for (let i = sources.length - 1; i >= 0; i--) {
|
|
1182
|
+
if (property in resolveSource(sources[i])) return true;
|
|
1183
|
+
}
|
|
1184
|
+
return false;
|
|
1185
|
+
},
|
|
1186
|
+
keys() {
|
|
1187
|
+
const keys = [];
|
|
1188
|
+
for (let i = 0; i < sources.length; i++) keys.push(...Object.keys(resolveSource(sources[i])));
|
|
1189
|
+
return [...new Set(keys)];
|
|
1180
1190
|
}
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1191
|
+
}, propTraps);
|
|
1192
|
+
}
|
|
1193
|
+
const target = {};
|
|
1194
|
+
for (let i = 0; i < sources.length; i++) {
|
|
1195
|
+
if (sources[i]) {
|
|
1196
|
+
const descriptors = Object.getOwnPropertyDescriptors(sources[i]);
|
|
1197
|
+
Object.defineProperties(target, descriptors);
|
|
1187
1198
|
}
|
|
1188
|
-
}
|
|
1199
|
+
}
|
|
1200
|
+
return target;
|
|
1189
1201
|
}
|
|
1190
1202
|
function splitProps(props, ...keys) {
|
|
1191
1203
|
const blocked = new Set(keys.flat());
|
|
1192
1204
|
const descriptors = Object.getOwnPropertyDescriptors(props);
|
|
1205
|
+
const isProxy = ($PROXY in props);
|
|
1206
|
+
if (!isProxy) keys.push(Object.keys(descriptors).filter(k => !blocked.has(k)));
|
|
1193
1207
|
const res = keys.map(k => {
|
|
1194
1208
|
const clone = {};
|
|
1195
1209
|
for (let i = 0; i < k.length; i++) {
|
|
@@ -1205,17 +1219,19 @@ function splitProps(props, ...keys) {
|
|
|
1205
1219
|
}
|
|
1206
1220
|
return clone;
|
|
1207
1221
|
});
|
|
1208
|
-
|
|
1209
|
-
|
|
1210
|
-
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1222
|
+
if (isProxy) {
|
|
1223
|
+
res.push(new Proxy({
|
|
1224
|
+
get(property) {
|
|
1225
|
+
return blocked.has(property) ? undefined : props[property];
|
|
1226
|
+
},
|
|
1227
|
+
has(property) {
|
|
1228
|
+
return blocked.has(property) ? false : property in props;
|
|
1229
|
+
},
|
|
1230
|
+
keys() {
|
|
1231
|
+
return Object.keys(props).filter(k => !blocked.has(k));
|
|
1232
|
+
}
|
|
1233
|
+
}, propTraps));
|
|
1234
|
+
}
|
|
1219
1235
|
return res;
|
|
1220
1236
|
}
|
|
1221
1237
|
function lazy(fn) {
|
package/html/dist/html.cjs
CHANGED
|
@@ -196,7 +196,7 @@ function createHTML(r, {
|
|
|
196
196
|
templates[i].innerHTML = html[i];
|
|
197
197
|
const nomarkers = templates[i].content.querySelectorAll("script,style");
|
|
198
198
|
for (let j = 0; j < nomarkers.length; j++) {
|
|
199
|
-
const d = nomarkers[j].firstChild
|
|
199
|
+
const d = nomarkers[j].firstChild?.data || "";
|
|
200
200
|
if (d.indexOf(marker) > -1) {
|
|
201
201
|
const parts = d.split(marker).reduce((memo, p, i) => {
|
|
202
202
|
i && memo.push("");
|
|
@@ -405,15 +405,35 @@ function createHTML(r, {
|
|
|
405
405
|
const isSVG = r.SVGElements.has(node.name);
|
|
406
406
|
const isCE = node.name.includes("-");
|
|
407
407
|
options.hasCustomElement = isCE;
|
|
408
|
-
|
|
409
|
-
const
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
408
|
+
if (keys.includes("###")) {
|
|
409
|
+
const spreadArgs = [];
|
|
410
|
+
let current = "";
|
|
411
|
+
for (let i = 0; i < keys.length; i++) {
|
|
412
|
+
const name = keys[i],
|
|
413
|
+
value = node.attrs[name];
|
|
414
|
+
if (value.includes("###")) {
|
|
415
|
+
let count = options.counter++;
|
|
416
|
+
current += `${name}: ${name !== "ref" ? `typeof exprs[${count}] === "function" ? exprs[${count}]() : ` : ""}exprs[${count}],`;
|
|
417
|
+
delete node.attrs[name];
|
|
418
|
+
} else if (name === "###") {
|
|
419
|
+
if (current.length) {
|
|
420
|
+
spreadArgs.push(`()=>({${current}})`);
|
|
421
|
+
current = "";
|
|
422
|
+
}
|
|
423
|
+
spreadArgs.push(`exprs[${options.counter++}]`);
|
|
424
|
+
delete node.attrs[name];
|
|
425
|
+
}
|
|
426
|
+
}
|
|
427
|
+
if (current.length) spreadArgs.push(`()=>({${current}})`);
|
|
428
|
+
options.exprs.push(`r.spread(${tag},${spreadArgs.length === 1 ? `typeof ${spreadArgs[0]} === "function" ? r.mergeProps(${spreadArgs[0]}) : ${spreadArgs[0]}` : `r.mergeProps(${spreadArgs.join(",")})`},${isSVG},${!!node.children.length})`);
|
|
429
|
+
} else {
|
|
430
|
+
for (let i = 0; i < keys.length; i++) {
|
|
431
|
+
const name = keys[i],
|
|
432
|
+
value = node.attrs[name];
|
|
433
|
+
if (value.includes("###")) {
|
|
434
|
+
delete node.attrs[name];
|
|
435
|
+
parseAttribute(tag, name, value, isSVG, isCE, options);
|
|
436
|
+
}
|
|
417
437
|
}
|
|
418
438
|
}
|
|
419
439
|
options.path = tag;
|
package/html/dist/html.js
CHANGED
|
@@ -194,7 +194,7 @@ function createHTML(r, {
|
|
|
194
194
|
templates[i].innerHTML = html[i];
|
|
195
195
|
const nomarkers = templates[i].content.querySelectorAll("script,style");
|
|
196
196
|
for (let j = 0; j < nomarkers.length; j++) {
|
|
197
|
-
const d = nomarkers[j].firstChild
|
|
197
|
+
const d = nomarkers[j].firstChild?.data || "";
|
|
198
198
|
if (d.indexOf(marker) > -1) {
|
|
199
199
|
const parts = d.split(marker).reduce((memo, p, i) => {
|
|
200
200
|
i && memo.push("");
|
|
@@ -403,15 +403,35 @@ function createHTML(r, {
|
|
|
403
403
|
const isSVG = r.SVGElements.has(node.name);
|
|
404
404
|
const isCE = node.name.includes("-");
|
|
405
405
|
options.hasCustomElement = isCE;
|
|
406
|
-
|
|
407
|
-
const
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
406
|
+
if (keys.includes("###")) {
|
|
407
|
+
const spreadArgs = [];
|
|
408
|
+
let current = "";
|
|
409
|
+
for (let i = 0; i < keys.length; i++) {
|
|
410
|
+
const name = keys[i],
|
|
411
|
+
value = node.attrs[name];
|
|
412
|
+
if (value.includes("###")) {
|
|
413
|
+
let count = options.counter++;
|
|
414
|
+
current += `${name}: ${name !== "ref" ? `typeof exprs[${count}] === "function" ? exprs[${count}]() : ` : ""}exprs[${count}],`;
|
|
415
|
+
delete node.attrs[name];
|
|
416
|
+
} else if (name === "###") {
|
|
417
|
+
if (current.length) {
|
|
418
|
+
spreadArgs.push(`()=>({${current}})`);
|
|
419
|
+
current = "";
|
|
420
|
+
}
|
|
421
|
+
spreadArgs.push(`exprs[${options.counter++}]`);
|
|
422
|
+
delete node.attrs[name];
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
if (current.length) spreadArgs.push(`()=>({${current}})`);
|
|
426
|
+
options.exprs.push(`r.spread(${tag},${spreadArgs.length === 1 ? `typeof ${spreadArgs[0]} === "function" ? r.mergeProps(${spreadArgs[0]}) : ${spreadArgs[0]}` : `r.mergeProps(${spreadArgs.join(",")})`},${isSVG},${!!node.children.length})`);
|
|
427
|
+
} else {
|
|
428
|
+
for (let i = 0; i < keys.length; i++) {
|
|
429
|
+
const name = keys[i],
|
|
430
|
+
value = node.attrs[name];
|
|
431
|
+
if (value.includes("###")) {
|
|
432
|
+
delete node.attrs[name];
|
|
433
|
+
parseAttribute(tag, name, value, isSVG, isCE, options);
|
|
434
|
+
}
|
|
415
435
|
}
|
|
416
436
|
}
|
|
417
437
|
options.path = tag;
|
package/package.json
CHANGED
|
@@ -173,7 +173,7 @@ export declare function createEffect<Next, Init = Next>(fn: EffectFunction<Init
|
|
|
173
173
|
* @description https://www.solidjs.com/docs/latest/api#createreaction
|
|
174
174
|
*/
|
|
175
175
|
export declare function createReaction(onInvalidate: () => void, options?: EffectOptions): (tracking: () => void) => void;
|
|
176
|
-
interface Memo<Prev, Next = Prev> extends SignalState<Next>, Computation<Next> {
|
|
176
|
+
export interface Memo<Prev, Next = Prev> extends SignalState<Next>, Computation<Next> {
|
|
177
177
|
tOwned?: Computation<Prev | Next, Next>[];
|
|
178
178
|
}
|
|
179
179
|
export interface MemoOptions<T> extends EffectOptions {
|
package/universal/dist/dev.cjs
CHANGED
|
@@ -4,12 +4,6 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
4
4
|
|
|
5
5
|
var solidJs = require('solid-js');
|
|
6
6
|
|
|
7
|
-
function memo(fn, equals) {
|
|
8
|
-
return solidJs.createMemo(fn, undefined, !equals ? {
|
|
9
|
-
equals
|
|
10
|
-
} : undefined);
|
|
11
|
-
}
|
|
12
|
-
|
|
13
7
|
function createRenderer$1({
|
|
14
8
|
createElement,
|
|
15
9
|
createTextNode,
|
|
@@ -195,10 +189,10 @@ function createRenderer$1({
|
|
|
195
189
|
}
|
|
196
190
|
function spreadExpression(node, props, prevProps = {}, skipChildren) {
|
|
197
191
|
props || (props = {});
|
|
198
|
-
if (!skipChildren
|
|
192
|
+
if (!skipChildren) {
|
|
199
193
|
solidJs.createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));
|
|
200
194
|
}
|
|
201
|
-
props.ref && props.ref(node);
|
|
195
|
+
solidJs.createRenderEffect(() => props.ref && props.ref(node));
|
|
202
196
|
solidJs.createRenderEffect(() => {
|
|
203
197
|
for (const prop in props) {
|
|
204
198
|
if (prop === "children" || prop === "ref") continue;
|
|
@@ -232,25 +226,15 @@ function createRenderer$1({
|
|
|
232
226
|
setProperty(node, name, value, prev);
|
|
233
227
|
return value;
|
|
234
228
|
},
|
|
235
|
-
mergeProps,
|
|
229
|
+
mergeProps: solidJs.mergeProps,
|
|
236
230
|
effect: solidJs.createRenderEffect,
|
|
237
|
-
memo,
|
|
231
|
+
memo: solidJs.createMemo,
|
|
238
232
|
createComponent: solidJs.createComponent,
|
|
239
233
|
use(fn, element, arg) {
|
|
240
234
|
return solidJs.untrack(() => fn(element, arg));
|
|
241
235
|
}
|
|
242
236
|
};
|
|
243
237
|
}
|
|
244
|
-
function mergeProps(...sources) {
|
|
245
|
-
const target = {};
|
|
246
|
-
for (let i = 0; i < sources.length; i++) {
|
|
247
|
-
let source = sources[i];
|
|
248
|
-
if (typeof source === "function") source = source();
|
|
249
|
-
const descriptors = Object.getOwnPropertyDescriptors(source);
|
|
250
|
-
Object.defineProperties(target, descriptors);
|
|
251
|
-
}
|
|
252
|
-
return target;
|
|
253
|
-
}
|
|
254
238
|
|
|
255
239
|
function createRenderer(options) {
|
|
256
240
|
const renderer = createRenderer$1(options);
|
package/universal/dist/dev.js
CHANGED
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
function memo(fn, equals) {
|
|
4
|
-
return createMemo(fn, undefined, !equals ? {
|
|
5
|
-
equals
|
|
6
|
-
} : undefined);
|
|
7
|
-
}
|
|
1
|
+
import { createRoot, createRenderEffect, mergeProps, createMemo, createComponent, untrack } from 'solid-js';
|
|
8
2
|
|
|
9
3
|
function createRenderer$1({
|
|
10
4
|
createElement,
|
|
@@ -191,10 +185,10 @@ function createRenderer$1({
|
|
|
191
185
|
}
|
|
192
186
|
function spreadExpression(node, props, prevProps = {}, skipChildren) {
|
|
193
187
|
props || (props = {});
|
|
194
|
-
if (!skipChildren
|
|
188
|
+
if (!skipChildren) {
|
|
195
189
|
createRenderEffect(() => prevProps.children = insertExpression(node, props.children, prevProps.children));
|
|
196
190
|
}
|
|
197
|
-
props.ref && props.ref(node);
|
|
191
|
+
createRenderEffect(() => props.ref && props.ref(node));
|
|
198
192
|
createRenderEffect(() => {
|
|
199
193
|
for (const prop in props) {
|
|
200
194
|
if (prop === "children" || prop === "ref") continue;
|
|
@@ -230,27 +224,17 @@ function createRenderer$1({
|
|
|
230
224
|
},
|
|
231
225
|
mergeProps,
|
|
232
226
|
effect: createRenderEffect,
|
|
233
|
-
memo,
|
|
227
|
+
memo: createMemo,
|
|
234
228
|
createComponent,
|
|
235
229
|
use(fn, element, arg) {
|
|
236
230
|
return untrack(() => fn(element, arg));
|
|
237
231
|
}
|
|
238
232
|
};
|
|
239
233
|
}
|
|
240
|
-
function mergeProps(...sources) {
|
|
241
|
-
const target = {};
|
|
242
|
-
for (let i = 0; i < sources.length; i++) {
|
|
243
|
-
let source = sources[i];
|
|
244
|
-
if (typeof source === "function") source = source();
|
|
245
|
-
const descriptors = Object.getOwnPropertyDescriptors(source);
|
|
246
|
-
Object.defineProperties(target, descriptors);
|
|
247
|
-
}
|
|
248
|
-
return target;
|
|
249
|
-
}
|
|
250
234
|
|
|
251
235
|
function createRenderer(options) {
|
|
252
236
|
const renderer = createRenderer$1(options);
|
|
253
|
-
renderer.mergeProps = mergeProps
|
|
237
|
+
renderer.mergeProps = mergeProps;
|
|
254
238
|
return renderer;
|
|
255
239
|
}
|
|
256
240
|
|