dom-expressions 0.35.21 → 0.35.23
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/package.json +3 -3
- package/src/client.js +11 -4
- package/src/jsx.d.ts +4 -0
- package/src/server.js +11 -9
- package/src/universal.d.ts +1 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "dom-expressions",
|
|
3
3
|
"description": "A Fine-Grained Runtime for Performant DOM Rendering",
|
|
4
|
-
"version": "0.35.
|
|
4
|
+
"version": "0.35.23",
|
|
5
5
|
"author": "Ryan Carniato",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"csstype": "^3.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"babel-plugin-jsx-dom-expressions": "^0.35.
|
|
26
|
+
"babel-plugin-jsx-dom-expressions": "^0.35.23",
|
|
27
27
|
"csstype": "^3.1"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
29
|
+
"gitHead": "3f44ae32aeacdae833f18882b79e34cc1960c1a9"
|
|
30
30
|
}
|
package/src/client.js
CHANGED
|
@@ -368,7 +368,16 @@ function eventHandler(e) {
|
|
|
368
368
|
}
|
|
369
369
|
|
|
370
370
|
function insertExpression(parent, value, current, marker, unwrapArray) {
|
|
371
|
-
if (sharedConfig.context
|
|
371
|
+
if (sharedConfig.context) {
|
|
372
|
+
!current && (current = [...parent.childNodes]);
|
|
373
|
+
let cleaned = [];
|
|
374
|
+
for (let i = 0; i < current.length; i++) {
|
|
375
|
+
const node = current[i];
|
|
376
|
+
if (node.nodeType === 8 && node.data === "!") node.remove();
|
|
377
|
+
else cleaned.push(node);
|
|
378
|
+
}
|
|
379
|
+
current = cleaned;
|
|
380
|
+
}
|
|
372
381
|
while (typeof current === "function") current = current();
|
|
373
382
|
if (value === current) return current;
|
|
374
383
|
const t = typeof value,
|
|
@@ -467,9 +476,7 @@ function normalizeIncomingArray(normalized, array, current, unwrap) {
|
|
|
467
476
|
} else {
|
|
468
477
|
// NOTE: is String better than `item + ''`, ``${item}``, `item.toString()` and `item.valueOf()`?
|
|
469
478
|
const value = String(item);
|
|
470
|
-
if (
|
|
471
|
-
if (prev && prev.nodeType === 8) normalized.push(prev);
|
|
472
|
-
} else if (prev && prev.nodeType === 3) {
|
|
479
|
+
if (prev && prev.nodeType === 3) {
|
|
473
480
|
prev.data = value;
|
|
474
481
|
normalized.push(prev);
|
|
475
482
|
} else normalized.push(document.createTextNode(value));
|
package/src/jsx.d.ts
CHANGED
|
@@ -798,11 +798,13 @@ export namespace JSX {
|
|
|
798
798
|
accept?: string;
|
|
799
799
|
alt?: string;
|
|
800
800
|
autocomplete?: string;
|
|
801
|
+
autocorrect?: "on" | "off";
|
|
801
802
|
autofocus?: boolean;
|
|
802
803
|
capture?: boolean | string;
|
|
803
804
|
checked?: boolean;
|
|
804
805
|
crossorigin?: HTMLCrossorigin;
|
|
805
806
|
disabled?: boolean;
|
|
807
|
+
enterkeyhint?: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send';
|
|
806
808
|
form?: string;
|
|
807
809
|
formaction?: string;
|
|
808
810
|
formenctype?: HTMLFormEncType;
|
|
@@ -810,6 +812,7 @@ export namespace JSX {
|
|
|
810
812
|
formnovalidate?: boolean;
|
|
811
813
|
formtarget?: string;
|
|
812
814
|
height?: number | string;
|
|
815
|
+
incremental?: boolean;
|
|
813
816
|
list?: string;
|
|
814
817
|
max?: number | string;
|
|
815
818
|
maxlength?: number | string;
|
|
@@ -820,6 +823,7 @@ export namespace JSX {
|
|
|
820
823
|
pattern?: string;
|
|
821
824
|
placeholder?: string;
|
|
822
825
|
readonly?: boolean;
|
|
826
|
+
results?: number;
|
|
823
827
|
required?: boolean;
|
|
824
828
|
size?: number | string;
|
|
825
829
|
src?: string;
|
package/src/server.js
CHANGED
|
@@ -25,9 +25,8 @@ export function renderToString(code, options = {}) {
|
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
let html = root(d => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
return r;
|
|
28
|
+
setTimeout(d);
|
|
29
|
+
return resolveSSRNode(escape(code()));
|
|
31
30
|
});
|
|
32
31
|
sharedConfig.context.noHydrate = true;
|
|
33
32
|
html = injectAssets(sharedConfig.context.assets, html);
|
|
@@ -64,7 +63,7 @@ export function renderToStream(code, options = {}) {
|
|
|
64
63
|
});
|
|
65
64
|
writable && writable.end();
|
|
66
65
|
completed = true;
|
|
67
|
-
dispose
|
|
66
|
+
setTimeout(dispose);
|
|
68
67
|
}
|
|
69
68
|
};
|
|
70
69
|
const pushTask = task => {
|
|
@@ -349,11 +348,10 @@ export function ssrHydrationKey() {
|
|
|
349
348
|
export function escape(s, attr) {
|
|
350
349
|
const t = typeof s;
|
|
351
350
|
if (t !== "string") {
|
|
352
|
-
if (!attr && t === "function") return escape(s()
|
|
351
|
+
if (!attr && t === "function") return escape(s());
|
|
353
352
|
if (!attr && Array.isArray(s)) {
|
|
354
|
-
let
|
|
355
|
-
|
|
356
|
-
return { t: r };
|
|
353
|
+
for (let i = 0; i < s.length; i++) s[i] = escape(s[i]);
|
|
354
|
+
return s;
|
|
357
355
|
}
|
|
358
356
|
if (attr && t === "boolean") return String(s);
|
|
359
357
|
return s;
|
|
@@ -405,8 +403,12 @@ export function resolveSSRNode(node) {
|
|
|
405
403
|
if (t === "string") return node;
|
|
406
404
|
if (node == null || t === "boolean") return "";
|
|
407
405
|
if (Array.isArray(node)) {
|
|
406
|
+
let prev = {};
|
|
408
407
|
let mapped = "";
|
|
409
|
-
for (let i = 0, len = node.length; i < len; i++)
|
|
408
|
+
for (let i = 0, len = node.length; i < len; i++) {
|
|
409
|
+
if (typeof prev !== "object" && typeof node[i] !== "object") mapped += `<!--!-->`;
|
|
410
|
+
mapped += resolveSSRNode(prev = node[i]);
|
|
411
|
+
}
|
|
410
412
|
return mapped;
|
|
411
413
|
}
|
|
412
414
|
if (t === "object") return node.t;
|
package/src/universal.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ export interface Renderer<NodeType> {
|
|
|
23
23
|
spread<T>(node: any, accessor: (() => T) | T, skipChildren?: Boolean): void;
|
|
24
24
|
setProp<T>(node: NodeType, name: string, value: T, prev?: T): T;
|
|
25
25
|
mergeProps(...sources: unknown[]): unknown;
|
|
26
|
+
use<A, T>(fn: (element: NodeType, arg: A) => T, element: NodeType, arg: A): T;
|
|
26
27
|
}
|
|
27
28
|
|
|
28
29
|
export function createRenderer<NodeType>(options: RendererOptions<NodeType>): Renderer<NodeType>;
|