dom-expressions 0.34.6 → 0.34.8

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 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.34.6",
4
+ "version": "0.34.8",
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.34.5",
26
+ "babel-plugin-jsx-dom-expressions": "^0.34.7",
27
27
  "csstype": "^3.1.0"
28
28
  },
29
- "gitHead": "7d33b4bf7aa18a6aad5ab2d7bfd627ad899eb22f"
29
+ "gitHead": "95d455fc37c0ebab653f5d80edf50492900f5eae"
30
30
  }
package/src/client.js CHANGED
@@ -369,10 +369,10 @@ function eventHandler(e) {
369
369
 
370
370
  function spreadExpression(node, props, prevProps = {}, isSVG, skipChildren) {
371
371
  props || (props = {});
372
- if (!skipChildren && "children" in props) {
372
+ if (!skipChildren) {
373
373
  effect(() => (prevProps.children = insertExpression(node, props.children, prevProps.children)));
374
374
  }
375
- props.ref && props.ref(node);
375
+ effect(() => props.ref && props.ref(node));
376
376
  effect(() => assign(node, props, isSVG, true, prevProps, true));
377
377
  return prevProps;
378
378
  }
package/src/server.js CHANGED
@@ -91,7 +91,9 @@ export function renderToStream(code, options = {}) {
91
91
  suspense: {},
92
92
  assets: [],
93
93
  nonce,
94
- block(p) { if (!firstFlushed) blockingResources.push(p); },
94
+ block(p) {
95
+ if (!firstFlushed) blockingResources.push(p);
96
+ },
95
97
  replace(id, payloadFn) {
96
98
  if (firstFlushed) return;
97
99
  const placeholder = `<!${id}>`;
@@ -286,7 +288,8 @@ export function ssrStyle(value) {
286
288
 
287
289
  export function ssrElement(tag, props, children, needsId) {
288
290
  let result = `<${tag}${needsId ? ssrHydrationKey() : ""} `;
289
- if (typeof props === "function") props = props();
291
+ if (props == null) props = {};
292
+ else if (typeof props === "function") props = props();
290
293
  const keys = Object.keys(props);
291
294
  let classResolved;
292
295
  for (let i = 0; i < keys.length; i++) {
@@ -333,6 +336,11 @@ export function escape(s, attr) {
333
336
  const t = typeof s;
334
337
  if (t !== "string") {
335
338
  if (!attr && t === "function") return escape(s(), attr);
339
+ if (!attr && Array.isArray(s)) {
340
+ let r = "";
341
+ for (let i = 0; i < s.length; i++) r += resolveSSRNode(escape(s[i], attr));
342
+ return { t: r };
343
+ }
336
344
  if (attr && t === "boolean") return String(s);
337
345
  return s;
338
346
  }