Skip to content

Commit 8fedf0b

Browse files
committed
Adjust streamed id from preact-island to $s
1 parent 753b087 commit 8fedf0b

File tree

5 files changed

+13
-15
lines changed

5 files changed

+13
-15
lines changed

src/lib/chunked.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,5 @@ function handleError(error, vnode, renderChild) {
128128

129129
const fallback = renderChild(vnode.props.fallback);
130130

131-
return found
132-
? ''
133-
: `<!--preact-island:${id}-->${fallback}<!--/preact-island:${id}-->`;
131+
return found ? '' : `<!--$s:${id}-->${fallback}<!--/$s:${id}-->`;
134132
}

src/lib/client.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
// while (c.nextNode()) {
1616
// let n = c.referenceNode;
1717

18-
// if (n.data == 'preact-island:' + i) s = n;
19-
// else if (n.data == '/preact-island:' + i) e = n;
18+
// if (n.data == '$s:' + i) s = n;
19+
// else if (n.data == '/$s:' + i) e = n;
2020
// if (s && e) break;
2121
// }
2222
// if (s && e && s.parentNode !== document) {
@@ -46,7 +46,7 @@
4646
// }
4747

4848
// To modify the INIT_SCRIPT, uncomment the above code, modify it, and paste it into https://try.terser.org/.
49-
const INIT_SCRIPT = `class e extends HTMLElement{connectedCallback(){var e=this;if(!e.isConnected)return;let t=this.getAttribute("data-target");if(t){for(var r,a,i=document.createNodeIterator(document,128);i.nextNode();){let e=i.referenceNode;if(e.data=="preact-island:"+t?r=e:e.data=="/preact-island:"+t&&(a=e),r&&a)break}r&&a&&r.parentNode!==document&&requestAnimationFrame((()=>{for(var t=a.previousSibling;t!=r&&t&&t!=r;)a.parentNode.removeChild(t),t=a.previousSibling;for(i=r;e.firstChild;)r=e.firstChild,e.removeChild(r),i.after(r),i=r;e.parentNode.removeChild(e)}))}}}customElements.define("preact-island",e);`;
49+
const INIT_SCRIPT = `class e extends HTMLElement{connectedCallback(){var e=this;if(!e.isConnected)return;let t=this.getAttribute("data-target");if(t){for(var r,a,i=document.createNodeIterator(document,128);i.nextNode();){let e=i.referenceNode;if(e.data=="$s:"+t?r=e:e.data=="/$s:"+t&&(a=e),r&&a)break}r&&a&&r.parentNode!==document&&requestAnimationFrame((()=>{for(var t=a.previousSibling;t!=r&&t&&t!=r;)a.parentNode.removeChild(t),t=a.previousSibling;for(i=r;e.firstChild;)r=e.firstChild,e.removeChild(r),i.after(r),i=r;e.parentNode.removeChild(e)}))}}}customElements.define("preact-island",e);`;
5050

5151
export function createInitScript() {
5252
return `<script>(function(){${INIT_SCRIPT}}())</script>`;

test/compat/render-chunked.test.jsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ describe('renderToChunks', () => {
3434
await promise;
3535

3636
expect(result).to.deep.equal([
37-
'<div><!--preact-island:5-->loading...<!--/preact-island:5--></div>',
37+
'<div><!--$s:5-->loading...<!--/$s:5--></div>',
3838
'<div hidden>',
3939
createInitScript(),
4040
createSubtree('5', '<p>it works</p>'),
@@ -62,7 +62,7 @@ describe('renderToChunks', () => {
6262
suspended.resolve();
6363

6464
expect(result).to.deep.equal([
65-
'<div><!--preact-island:10-->loading...<!--/preact-island:10--></div>',
65+
'<div><!--$s:10-->loading...<!--/$s:10--></div>',
6666
'<div hidden>',
6767
createInitScript(1),
6868
'</div>'
@@ -109,7 +109,7 @@ describe('renderToChunks', () => {
109109
}
110110

111111
expect(result).to.deep.equal([
112-
'<div><!--preact-island:16-->loading...<!--/preact-island:16--></div>',
112+
'<div><!--$s:16-->loading...<!--/$s:16--></div>',
113113
'<div hidden>',
114114
createInitScript(1),
115115
createSubtree('16', '<p>it works</p>'),
@@ -142,7 +142,7 @@ describe('renderToChunks', () => {
142142
await promise;
143143

144144
expect(result).to.deep.equal([
145-
'<div><p>id: P0-0</p><!--preact-island:24-->loading...<!--/preact-island:24--></div>',
145+
'<div><p>id: P0-0</p><!--$s:24-->loading...<!--/$s:24--></div>',
146146
'<div hidden>',
147147
createInitScript(1),
148148
createSubtree('24', '<p>id: P0-1</p>'),
@@ -182,7 +182,7 @@ describe('renderToChunks', () => {
182182
await promise;
183183

184184
expect(result).toEqual([
185-
'<div><p>id: P0-0</p><!--preact-island:33-->loading...<!--/preact-island:33--><!--preact-island:36-->loading...<!--/preact-island:36--></div>',
185+
'<div><p>id: P0-0</p><!--$s:33-->loading...<!--/$s:33--><!--$s:36-->loading...<!--/$s:36--></div>',
186186
'<div hidden>',
187187
createInitScript(1),
188188
createSubtree('33', '<p>id: P0-1</p>'),
@@ -305,7 +305,7 @@ describe('renderToChunks', () => {
305305
await promise;
306306

307307
expect(result).to.deep.equal([
308-
'<div><!--preact-island:70-->loading part 1...<!--/preact-island:70--></div>',
308+
'<div><!--$s:70-->loading part 1...<!--/$s:70--></div>',
309309
'<div hidden>',
310310
createInitScript(1),
311311
createSubtree('70', '<p>it works</p><p>it works</p>'),

test/compat/stream-node.test.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ describe('renderToPipeableStream', () => {
6666
const result = await sink.promise;
6767

6868
expect(result).to.deep.equal([
69-
'<div><!--preact-island:5-->loading...<!--/preact-island:5--></div>',
69+
'<div><!--$s:5-->loading...<!--/$s:5--></div>',
7070
'<div hidden>',
7171
createInitScript(),
7272
createSubtree('5', '<p>it works</p>'),

test/compat/stream.test.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ describe('renderToReadableStream', () => {
8282
const result = await sink.promise;
8383

8484
expect(result).toEqual([
85-
'<div><!--preact-island:5-->loading...<!--/preact-island:5--></div>',
85+
'<div><!--$s:5-->loading...<!--/$s:5--></div>',
8686
'<div hidden>',
8787
createInitScript(),
8888
createSubtree('5', '<p>it works</p>'),
@@ -106,7 +106,7 @@ describe('renderToReadableStream', () => {
106106
const first = await reader.read();
107107
expect(first.done).toBe(false);
108108
expect(decoder.decode(first.value)).toBe(
109-
'<div><!--preact-island:10-->loading...<!--/preact-island:10--></div>'
109+
'<div><!--$s:10-->loading...<!--/$s:10--></div>'
110110
);
111111

112112
await reader.cancel('client disconnected');

0 commit comments

Comments
 (0)