@typed/template 0.13.0 → 1.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.
- package/README.md +108 -2
- package/dist/EventHandler.d.ts +273 -0
- package/dist/EventHandler.d.ts.map +1 -0
- package/dist/EventHandler.js +261 -0
- package/dist/EventSource.d.ts +82 -0
- package/dist/EventSource.d.ts.map +1 -0
- package/dist/EventSource.js +127 -0
- package/dist/Html.d.ts +122 -0
- package/dist/Html.d.ts.map +1 -0
- package/dist/Html.js +250 -0
- package/dist/HtmlChunk.d.ts +118 -0
- package/dist/HtmlChunk.d.ts.map +1 -0
- package/dist/HtmlChunk.js +211 -0
- package/dist/HydrateContext.d.ts +28 -0
- package/dist/HydrateContext.d.ts.map +1 -0
- package/dist/HydrateContext.js +25 -0
- package/dist/Parser.d.ts +35 -0
- package/dist/Parser.d.ts.map +1 -0
- package/dist/Parser.js +437 -0
- package/dist/Render.d.ts +195 -0
- package/dist/Render.d.ts.map +1 -0
- package/dist/Render.js +609 -0
- package/dist/RenderEvent.d.ts +179 -0
- package/dist/RenderEvent.d.ts.map +1 -0
- package/dist/RenderEvent.js +102 -0
- package/dist/RenderQueue.d.ts +167 -0
- package/dist/RenderQueue.d.ts.map +1 -0
- package/dist/RenderQueue.js +297 -0
- package/dist/RenderTemplate.d.ts +90 -0
- package/dist/RenderTemplate.d.ts.map +1 -0
- package/dist/RenderTemplate.js +87 -0
- package/dist/Renderable.d.ts +88 -0
- package/dist/Renderable.d.ts.map +1 -0
- package/dist/Renderable.js +3 -0
- package/dist/{dts/Template.d.ts → Template.d.ts} +109 -74
- package/dist/Template.d.ts.map +1 -0
- package/dist/{esm/Template.js → Template.js} +96 -56
- package/dist/Wire.d.ts +169 -0
- package/dist/Wire.d.ts.map +1 -0
- package/dist/Wire.js +217 -0
- package/dist/errors.d.ts +145 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +159 -0
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +14 -0
- package/dist/internal/IndexRefCounter.d.ts +11 -0
- package/dist/internal/IndexRefCounter.d.ts.map +1 -0
- package/dist/internal/IndexRefCounter.js +42 -0
- package/dist/internal/ParentChildNodes.d.ts +6 -0
- package/dist/internal/ParentChildNodes.d.ts.map +1 -0
- package/dist/internal/ParentChildNodes.js +1 -0
- package/dist/internal/PathStack.d.ts +9 -0
- package/dist/internal/PathStack.d.ts.map +1 -0
- package/dist/internal/PathStack.js +18 -0
- package/dist/internal/buildTemplateFragement.d.ts +3 -0
- package/dist/internal/buildTemplateFragement.d.ts.map +1 -0
- package/dist/internal/buildTemplateFragement.js +61 -0
- package/dist/internal/diff.d.ts +2 -0
- package/dist/internal/diff.d.ts.map +1 -0
- package/dist/internal/diff.js +119 -0
- package/dist/internal/dom.d.ts +45 -0
- package/dist/internal/dom.d.ts.map +1 -0
- package/dist/internal/dom.js +304 -0
- package/dist/internal/encoding.d.ts +7 -0
- package/dist/internal/encoding.d.ts.map +1 -0
- package/dist/internal/encoding.js +134 -0
- package/dist/{dts/internal/v2/hydration-template.d.ts → internal/hydration.d.ts} +10 -7
- package/dist/internal/hydration.d.ts.map +1 -0
- package/dist/{esm/internal/v2/hydration-template.js → internal/hydration.js} +80 -26
- package/dist/internal/keyToPartType.d.ts +2 -0
- package/dist/internal/keyToPartType.d.ts.map +1 -0
- package/dist/internal/keyToPartType.js +110 -0
- package/dist/internal/meta.d.ts +17 -0
- package/dist/internal/meta.d.ts.map +1 -0
- package/dist/internal/meta.js +14 -0
- package/dist/internal/takeOneIfNotRenderEvent.d.ts +4 -0
- package/dist/internal/takeOneIfNotRenderEvent.d.ts.map +1 -0
- package/dist/internal/takeOneIfNotRenderEvent.js +10 -0
- package/dist/internal/templateHash.d.ts +2 -0
- package/dist/internal/templateHash.d.ts.map +1 -0
- package/dist/internal/templateHash.js +14 -0
- package/dist/many.d.ts +68 -0
- package/dist/many.d.ts.map +1 -0
- package/dist/many.js +107 -0
- package/package.json +22 -223
- package/src/EventHandler.ts +318 -86
- package/src/EventSource.ts +202 -0
- package/src/Html.test.ts +490 -0
- package/src/Html.ts +292 -333
- package/src/HtmlChunk.ts +290 -332
- package/src/HydrateContext.ts +40 -0
- package/src/Hydration.test.ts +409 -0
- package/src/Parser.test.ts +924 -0
- package/src/Parser.ts +598 -10
- package/src/Render.test.ts +338 -0
- package/src/Render.ts +878 -63
- package/src/RenderEvent.ts +169 -40
- package/src/RenderQueue.ts +290 -383
- package/src/RenderTemplate.ts +98 -31
- package/src/Renderable.ts +122 -24
- package/src/Template.ts +246 -145
- package/src/Wire.ts +309 -0
- package/src/errors.ts +173 -0
- package/src/index.ts +14 -66
- package/src/internal/IndexRefCounter.ts +53 -0
- package/src/internal/ParentChildNodes.ts +7 -0
- package/src/internal/PathStack.ts +23 -0
- package/src/internal/buildTemplateFragement.ts +82 -0
- package/src/internal/diff.ts +127 -0
- package/src/internal/dom.ts +357 -0
- package/src/internal/encoding.ts +147 -0
- package/src/internal/hydration.ts +406 -0
- package/src/internal/keyToPartType.ts +113 -0
- package/src/internal/meta.ts +25 -0
- package/src/internal/takeOneIfNotRenderEvent.ts +19 -0
- package/src/internal/templateHash.ts +18 -0
- package/src/many.ts +148 -0
- package/tsconfig.json +6 -0
- package/Directive/package.json +0 -6
- package/ElementRef/package.json +0 -6
- package/ElementSource/package.json +0 -6
- package/Entry/package.json +0 -6
- package/EventHandler/package.json +0 -6
- package/Html/package.json +0 -6
- package/HtmlChunk/package.json +0 -6
- package/Hydrate/package.json +0 -6
- package/LICENSE +0 -21
- package/Many/package.json +0 -6
- package/Meta/package.json +0 -6
- package/Parser/package.json +0 -6
- package/Part/package.json +0 -6
- package/Placeholder/package.json +0 -6
- package/Platform/package.json +0 -6
- package/Render/package.json +0 -6
- package/RenderContext/package.json +0 -6
- package/RenderEvent/package.json +0 -6
- package/RenderQueue/package.json +0 -6
- package/RenderTemplate/package.json +0 -6
- package/Renderable/package.json +0 -6
- package/Template/package.json +0 -6
- package/Test/package.json +0 -6
- package/Vitest/package.json +0 -6
- package/compiler-tools/package.json +0 -6
- package/dist/cjs/Directive.js +0 -76
- package/dist/cjs/Directive.js.map +0 -1
- package/dist/cjs/ElementRef.js +0 -92
- package/dist/cjs/ElementRef.js.map +0 -1
- package/dist/cjs/ElementSource.js +0 -242
- package/dist/cjs/ElementSource.js.map +0 -1
- package/dist/cjs/Entry.js +0 -6
- package/dist/cjs/Entry.js.map +0 -1
- package/dist/cjs/EventHandler.js +0 -76
- package/dist/cjs/EventHandler.js.map +0 -1
- package/dist/cjs/Html.js +0 -224
- package/dist/cjs/Html.js.map +0 -1
- package/dist/cjs/HtmlChunk.js +0 -306
- package/dist/cjs/HtmlChunk.js.map +0 -1
- package/dist/cjs/Hydrate.js +0 -43
- package/dist/cjs/Hydrate.js.map +0 -1
- package/dist/cjs/Many.js +0 -66
- package/dist/cjs/Many.js.map +0 -1
- package/dist/cjs/Meta.js +0 -50
- package/dist/cjs/Meta.js.map +0 -1
- package/dist/cjs/Parser.js +0 -19
- package/dist/cjs/Parser.js.map +0 -1
- package/dist/cjs/Part.js +0 -6
- package/dist/cjs/Part.js.map +0 -1
- package/dist/cjs/Placeholder.js +0 -34
- package/dist/cjs/Placeholder.js.map +0 -1
- package/dist/cjs/Platform.js +0 -66
- package/dist/cjs/Platform.js.map +0 -1
- package/dist/cjs/Render.js +0 -50
- package/dist/cjs/Render.js.map +0 -1
- package/dist/cjs/RenderContext.js +0 -67
- package/dist/cjs/RenderContext.js.map +0 -1
- package/dist/cjs/RenderEvent.js +0 -52
- package/dist/cjs/RenderEvent.js.map +0 -1
- package/dist/cjs/RenderQueue.js +0 -341
- package/dist/cjs/RenderQueue.js.map +0 -1
- package/dist/cjs/RenderTemplate.js +0 -26
- package/dist/cjs/RenderTemplate.js.map +0 -1
- package/dist/cjs/Renderable.js +0 -6
- package/dist/cjs/Renderable.js.map +0 -1
- package/dist/cjs/Template.js +0 -305
- package/dist/cjs/Template.js.map +0 -1
- package/dist/cjs/Test.js +0 -184
- package/dist/cjs/Test.js.map +0 -1
- package/dist/cjs/Vitest.js +0 -52
- package/dist/cjs/Vitest.js.map +0 -1
- package/dist/cjs/compiler-tools.js +0 -100
- package/dist/cjs/compiler-tools.js.map +0 -1
- package/dist/cjs/index.js +0 -138
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/internal/EventSource.js +0 -129
- package/dist/cjs/internal/EventSource.js.map +0 -1
- package/dist/cjs/internal/HydrateContext.js +0 -13
- package/dist/cjs/internal/HydrateContext.js.map +0 -1
- package/dist/cjs/internal/browser.js +0 -110
- package/dist/cjs/internal/browser.js.map +0 -1
- package/dist/cjs/internal/character-entities.js +0 -2141
- package/dist/cjs/internal/character-entities.js.map +0 -1
- package/dist/cjs/internal/chunks.js +0 -68
- package/dist/cjs/internal/chunks.js.map +0 -1
- package/dist/cjs/internal/errors.js +0 -52
- package/dist/cjs/internal/errors.js.map +0 -1
- package/dist/cjs/internal/indexRefCounter.js +0 -52
- package/dist/cjs/internal/indexRefCounter.js.map +0 -1
- package/dist/cjs/internal/module-augmentation.js +0 -6
- package/dist/cjs/internal/module-augmentation.js.map +0 -1
- package/dist/cjs/internal/parser.js +0 -568
- package/dist/cjs/internal/parser.js.map +0 -1
- package/dist/cjs/internal/parser2.js +0 -382
- package/dist/cjs/internal/parser2.js.map +0 -1
- package/dist/cjs/internal/server-parts.js +0 -124
- package/dist/cjs/internal/server-parts.js.map +0 -1
- package/dist/cjs/internal/server.js +0 -48
- package/dist/cjs/internal/server.js.map +0 -1
- package/dist/cjs/internal/utils.js +0 -136
- package/dist/cjs/internal/utils.js.map +0 -1
- package/dist/cjs/internal/v2/SyncPart.js +0 -6
- package/dist/cjs/internal/v2/SyncPart.js.map +0 -1
- package/dist/cjs/internal/v2/helpers.js +0 -15
- package/dist/cjs/internal/v2/helpers.js.map +0 -1
- package/dist/cjs/internal/v2/hydration-template.js +0 -269
- package/dist/cjs/internal/v2/hydration-template.js.map +0 -1
- package/dist/cjs/internal/v2/parts.js +0 -169
- package/dist/cjs/internal/v2/parts.js.map +0 -1
- package/dist/cjs/internal/v2/render-entry.js +0 -110
- package/dist/cjs/internal/v2/render-entry.js.map +0 -1
- package/dist/cjs/internal/v2/render-sync-parts.js +0 -318
- package/dist/cjs/internal/v2/render-sync-parts.js.map +0 -1
- package/dist/cjs/internal/v2/render.js +0 -592
- package/dist/cjs/internal/v2/render.js.map +0 -1
- package/dist/cjs/internal/v2/sync-parts.js +0 -115
- package/dist/cjs/internal/v2/sync-parts.js.map +0 -1
- package/dist/dts/Directive.d.ts +0 -70
- package/dist/dts/Directive.d.ts.map +0 -1
- package/dist/dts/ElementRef.d.ts +0 -42
- package/dist/dts/ElementRef.d.ts.map +0 -1
- package/dist/dts/ElementSource.d.ts +0 -77
- package/dist/dts/ElementSource.d.ts.map +0 -1
- package/dist/dts/Entry.d.ts +0 -26
- package/dist/dts/Entry.d.ts.map +0 -1
- package/dist/dts/EventHandler.d.ts +0 -73
- package/dist/dts/EventHandler.d.ts.map +0 -1
- package/dist/dts/Html.d.ts +0 -35
- package/dist/dts/Html.d.ts.map +0 -1
- package/dist/dts/HtmlChunk.d.ts +0 -56
- package/dist/dts/HtmlChunk.d.ts.map +0 -1
- package/dist/dts/Hydrate.d.ts +0 -19
- package/dist/dts/Hydrate.d.ts.map +0 -1
- package/dist/dts/Many.d.ts +0 -32
- package/dist/dts/Many.d.ts.map +0 -1
- package/dist/dts/Meta.d.ts +0 -33
- package/dist/dts/Meta.d.ts.map +0 -1
- package/dist/dts/Parser.d.ts +0 -13
- package/dist/dts/Parser.d.ts.map +0 -1
- package/dist/dts/Part.d.ts +0 -121
- package/dist/dts/Part.d.ts.map +0 -1
- package/dist/dts/Placeholder.d.ts +0 -48
- package/dist/dts/Placeholder.d.ts.map +0 -1
- package/dist/dts/Platform.d.ts +0 -21
- package/dist/dts/Platform.d.ts.map +0 -1
- package/dist/dts/Render.d.ts +0 -31
- package/dist/dts/Render.d.ts.map +0 -1
- package/dist/dts/RenderContext.d.ts +0 -70
- package/dist/dts/RenderContext.d.ts.map +0 -1
- package/dist/dts/RenderEvent.d.ts +0 -42
- package/dist/dts/RenderEvent.d.ts.map +0 -1
- package/dist/dts/RenderQueue.d.ts +0 -103
- package/dist/dts/RenderQueue.d.ts.map +0 -1
- package/dist/dts/RenderTemplate.d.ts +0 -25
- package/dist/dts/RenderTemplate.d.ts.map +0 -1
- package/dist/dts/Renderable.d.ts +0 -28
- package/dist/dts/Renderable.d.ts.map +0 -1
- package/dist/dts/Template.d.ts.map +0 -1
- package/dist/dts/Test.d.ts +0 -85
- package/dist/dts/Test.d.ts.map +0 -1
- package/dist/dts/Vitest.d.ts +0 -43
- package/dist/dts/Vitest.d.ts.map +0 -1
- package/dist/dts/compiler-tools.d.ts +0 -143
- package/dist/dts/compiler-tools.d.ts.map +0 -1
- package/dist/dts/index.d.ts +0 -65
- package/dist/dts/index.d.ts.map +0 -1
- package/dist/dts/internal/EventSource.d.ts +0 -13
- package/dist/dts/internal/EventSource.d.ts.map +0 -1
- package/dist/dts/internal/HydrateContext.d.ts +0 -2
- package/dist/dts/internal/HydrateContext.d.ts.map +0 -1
- package/dist/dts/internal/browser.d.ts +0 -8
- package/dist/dts/internal/browser.d.ts.map +0 -1
- package/dist/dts/internal/character-entities.d.ts +0 -2133
- package/dist/dts/internal/character-entities.d.ts.map +0 -1
- package/dist/dts/internal/chunks.d.ts +0 -23
- package/dist/dts/internal/chunks.d.ts.map +0 -1
- package/dist/dts/internal/errors.d.ts +0 -22
- package/dist/dts/internal/errors.d.ts.map +0 -1
- package/dist/dts/internal/indexRefCounter.d.ts +0 -7
- package/dist/dts/internal/indexRefCounter.d.ts.map +0 -1
- package/dist/dts/internal/module-augmentation.d.ts +0 -32
- package/dist/dts/internal/module-augmentation.d.ts.map +0 -1
- package/dist/dts/internal/parser.d.ts +0 -33
- package/dist/dts/internal/parser.d.ts.map +0 -1
- package/dist/dts/internal/parser2.d.ts +0 -12
- package/dist/dts/internal/parser2.d.ts.map +0 -1
- package/dist/dts/internal/server-parts.d.ts +0 -223
- package/dist/dts/internal/server-parts.d.ts.map +0 -1
- package/dist/dts/internal/server.d.ts +0 -5
- package/dist/dts/internal/server.d.ts.map +0 -1
- package/dist/dts/internal/utils.d.ts +0 -19
- package/dist/dts/internal/utils.d.ts.map +0 -1
- package/dist/dts/internal/v2/SyncPart.d.ts +0 -87
- package/dist/dts/internal/v2/SyncPart.d.ts.map +0 -1
- package/dist/dts/internal/v2/helpers.d.ts +0 -3
- package/dist/dts/internal/v2/helpers.d.ts.map +0 -1
- package/dist/dts/internal/v2/hydration-template.d.ts.map +0 -1
- package/dist/dts/internal/v2/parts.d.ts +0 -245
- package/dist/dts/internal/v2/parts.d.ts.map +0 -1
- package/dist/dts/internal/v2/render-entry.d.ts +0 -6
- package/dist/dts/internal/v2/render-entry.d.ts.map +0 -1
- package/dist/dts/internal/v2/render-sync-parts.d.ts +0 -22
- package/dist/dts/internal/v2/render-sync-parts.d.ts.map +0 -1
- package/dist/dts/internal/v2/render.d.ts +0 -83
- package/dist/dts/internal/v2/render.d.ts.map +0 -1
- package/dist/dts/internal/v2/sync-parts.d.ts +0 -129
- package/dist/dts/internal/v2/sync-parts.d.ts.map +0 -1
- package/dist/esm/Directive.js +0 -64
- package/dist/esm/Directive.js.map +0 -1
- package/dist/esm/ElementRef.js +0 -76
- package/dist/esm/ElementRef.js.map +0 -1
- package/dist/esm/ElementSource.js +0 -240
- package/dist/esm/ElementSource.js.map +0 -1
- package/dist/esm/Entry.js +0 -2
- package/dist/esm/Entry.js.map +0 -1
- package/dist/esm/EventHandler.js +0 -68
- package/dist/esm/EventHandler.js.map +0 -1
- package/dist/esm/Html.js +0 -230
- package/dist/esm/Html.js.map +0 -1
- package/dist/esm/HtmlChunk.js +0 -330
- package/dist/esm/HtmlChunk.js.map +0 -1
- package/dist/esm/Hydrate.js +0 -31
- package/dist/esm/Hydrate.js.map +0 -1
- package/dist/esm/Many.js +0 -54
- package/dist/esm/Many.js.map +0 -1
- package/dist/esm/Meta.js +0 -40
- package/dist/esm/Meta.js.map +0 -1
- package/dist/esm/Parser.js +0 -13
- package/dist/esm/Parser.js.map +0 -1
- package/dist/esm/Part.js +0 -5
- package/dist/esm/Part.js.map +0 -1
- package/dist/esm/Placeholder.js +0 -26
- package/dist/esm/Placeholder.js.map +0 -1
- package/dist/esm/Platform.js +0 -43
- package/dist/esm/Platform.js.map +0 -1
- package/dist/esm/Render.js +0 -36
- package/dist/esm/Render.js.map +0 -1
- package/dist/esm/RenderContext.js +0 -54
- package/dist/esm/RenderContext.js.map +0 -1
- package/dist/esm/RenderEvent.js +0 -43
- package/dist/esm/RenderEvent.js.map +0 -1
- package/dist/esm/RenderQueue.js +0 -336
- package/dist/esm/RenderQueue.js.map +0 -1
- package/dist/esm/RenderTemplate.js +0 -16
- package/dist/esm/RenderTemplate.js.map +0 -1
- package/dist/esm/Renderable.js +0 -2
- package/dist/esm/Renderable.js.map +0 -1
- package/dist/esm/Template.js.map +0 -1
- package/dist/esm/Test.js +0 -167
- package/dist/esm/Test.js.map +0 -1
- package/dist/esm/Vitest.js +0 -44
- package/dist/esm/Vitest.js.map +0 -1
- package/dist/esm/compiler-tools.js +0 -91
- package/dist/esm/compiler-tools.js.map +0 -1
- package/dist/esm/index.js +0 -65
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/internal/EventSource.js +0 -126
- package/dist/esm/internal/EventSource.js.map +0 -1
- package/dist/esm/internal/HydrateContext.js +0 -7
- package/dist/esm/internal/HydrateContext.js.map +0 -1
- package/dist/esm/internal/browser.js +0 -103
- package/dist/esm/internal/browser.js.map +0 -1
- package/dist/esm/internal/character-entities.js +0 -2134
- package/dist/esm/internal/character-entities.js.map +0 -1
- package/dist/esm/internal/chunks.js +0 -60
- package/dist/esm/internal/chunks.js.map +0 -1
- package/dist/esm/internal/errors.js +0 -46
- package/dist/esm/internal/errors.js.map +0 -1
- package/dist/esm/internal/indexRefCounter.js +0 -47
- package/dist/esm/internal/indexRefCounter.js.map +0 -1
- package/dist/esm/internal/module-augmentation.js +0 -2
- package/dist/esm/internal/module-augmentation.js.map +0 -1
- package/dist/esm/internal/parser.js +0 -596
- package/dist/esm/internal/parser.js.map +0 -1
- package/dist/esm/internal/parser2.js +0 -393
- package/dist/esm/internal/parser2.js.map +0 -1
- package/dist/esm/internal/server-parts.js +0 -109
- package/dist/esm/internal/server-parts.js.map +0 -1
- package/dist/esm/internal/server.js +0 -22
- package/dist/esm/internal/server.js.map +0 -1
- package/dist/esm/internal/utils.js +0 -119
- package/dist/esm/internal/utils.js.map +0 -1
- package/dist/esm/internal/v2/SyncPart.js +0 -5
- package/dist/esm/internal/v2/SyncPart.js.map +0 -1
- package/dist/esm/internal/v2/helpers.js +0 -12
- package/dist/esm/internal/v2/helpers.js.map +0 -1
- package/dist/esm/internal/v2/hydration-template.js.map +0 -1
- package/dist/esm/internal/v2/parts.js +0 -150
- package/dist/esm/internal/v2/parts.js.map +0 -1
- package/dist/esm/internal/v2/render-entry.js +0 -102
- package/dist/esm/internal/v2/render-entry.js.map +0 -1
- package/dist/esm/internal/v2/render-sync-parts.js +0 -265
- package/dist/esm/internal/v2/render-sync-parts.js.map +0 -1
- package/dist/esm/internal/v2/render.js +0 -521
- package/dist/esm/internal/v2/render.js.map +0 -1
- package/dist/esm/internal/v2/sync-parts.js +0 -102
- package/dist/esm/internal/v2/sync-parts.js.map +0 -1
- package/dist/esm/package.json +0 -4
- package/src/Directive.ts +0 -114
- package/src/ElementRef.ts +0 -126
- package/src/ElementSource.ts +0 -432
- package/src/Entry.ts +0 -28
- package/src/Hydrate.ts +0 -51
- package/src/Many.ts +0 -161
- package/src/Meta.ts +0 -45
- package/src/Part.ts +0 -154
- package/src/Placeholder.ts +0 -78
- package/src/Platform.ts +0 -71
- package/src/RenderContext.ts +0 -121
- package/src/Test.ts +0 -354
- package/src/Vitest.ts +0 -141
- package/src/compiler-tools.ts +0 -250
- package/src/internal/EventSource.ts +0 -188
- package/src/internal/HydrateContext.ts +0 -22
- package/src/internal/browser.ts +0 -138
- package/src/internal/character-entities.ts +0 -2136
- package/src/internal/chunks.ts +0 -89
- package/src/internal/errors.ts +0 -49
- package/src/internal/external.d.ts +0 -11
- package/src/internal/indexRefCounter.ts +0 -54
- package/src/internal/module-augmentation.ts +0 -44
- package/src/internal/parser.ts +0 -757
- package/src/internal/parser2.ts +0 -468
- package/src/internal/server-parts.ts +0 -161
- package/src/internal/server.ts +0 -37
- package/src/internal/utils.ts +0 -153
- package/src/internal/v2/SyncPart.ts +0 -112
- package/src/internal/v2/helpers.ts +0 -13
- package/src/internal/v2/hydration-template.ts +0 -308
- package/src/internal/v2/parts.ts +0 -254
- package/src/internal/v2/render-entry.ts +0 -131
- package/src/internal/v2/render-sync-parts.ts +0 -440
- package/src/internal/v2/render.ts +0 -813
- package/src/internal/v2/sync-parts.ts +0 -133
package/dist/Wire.js
ADDED
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
const ELEMENT_NODE = 1;
|
|
2
|
+
const DOCUMENT_FRAGMENT_NODE = 11;
|
|
3
|
+
const nodeType = 111;
|
|
4
|
+
const remove = ({ firstChild, lastChild }, document) => {
|
|
5
|
+
const range = document.createRange();
|
|
6
|
+
range.setStartAfter(firstChild);
|
|
7
|
+
range.setEndAfter(lastChild);
|
|
8
|
+
range.deleteContents();
|
|
9
|
+
return firstChild;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Create a diffable node from any Node which also might be a Wire.
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export const diffable = (document) => (node, operation) => {
|
|
16
|
+
if (node.nodeType !== nodeType)
|
|
17
|
+
return node;
|
|
18
|
+
if (1 / operation < 0) {
|
|
19
|
+
return operation ? remove(node, document) : node.lastChild;
|
|
20
|
+
}
|
|
21
|
+
return operation ? node.valueOf() : node.firstChild;
|
|
22
|
+
};
|
|
23
|
+
/**
|
|
24
|
+
* Creates a Wire from a DocumentFragment.
|
|
25
|
+
*
|
|
26
|
+
* If the fragment has only one child, that child is returned directly.
|
|
27
|
+
* If it has multiple children, they are wrapped in a `Wire` structure (bounded by comments)
|
|
28
|
+
* to allow them to be treated as a single unit.
|
|
29
|
+
*/
|
|
30
|
+
export const persistent = (document, templateHash, fragment) => {
|
|
31
|
+
const { childNodes } = fragment;
|
|
32
|
+
const { length } = childNodes;
|
|
33
|
+
if (length === 0)
|
|
34
|
+
return fragment;
|
|
35
|
+
if (length === 1)
|
|
36
|
+
return childNodes[0];
|
|
37
|
+
const firstChild = document.createComment(`t_${templateHash}`);
|
|
38
|
+
const lastChild = document.createComment(`/t_${templateHash}`);
|
|
39
|
+
return fromComments(fragment, firstChild, lastChild);
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* Creates a Wire from a Fragment and boundary comments.
|
|
43
|
+
* @internal
|
|
44
|
+
*/
|
|
45
|
+
export const fromComments = (fragment, firstChild, lastChild) => {
|
|
46
|
+
if (fragment.childNodes[0] !== firstChild) {
|
|
47
|
+
fragment.prepend(firstChild);
|
|
48
|
+
}
|
|
49
|
+
if (fragment.childNodes[fragment.childNodes.length - 1] !== lastChild) {
|
|
50
|
+
fragment.append(lastChild);
|
|
51
|
+
}
|
|
52
|
+
const getChildNodes = () => {
|
|
53
|
+
const nodes = getAllSiblingsBetween(firstChild, lastChild);
|
|
54
|
+
if (fragment.childNodes.length !== nodes.length) {
|
|
55
|
+
fragment.replaceChildren(...nodes);
|
|
56
|
+
}
|
|
57
|
+
return nodes;
|
|
58
|
+
};
|
|
59
|
+
return {
|
|
60
|
+
ELEMENT_NODE,
|
|
61
|
+
DOCUMENT_FRAGMENT_NODE,
|
|
62
|
+
nodeType,
|
|
63
|
+
firstChild,
|
|
64
|
+
lastChild,
|
|
65
|
+
get childNodes() {
|
|
66
|
+
return getChildNodes();
|
|
67
|
+
},
|
|
68
|
+
valueOf() {
|
|
69
|
+
getChildNodes();
|
|
70
|
+
return fragment;
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
/**
|
|
75
|
+
* Gets all sibling nodes between a start and end node (exclusive).
|
|
76
|
+
* @internal
|
|
77
|
+
*/
|
|
78
|
+
export function getAllSiblingsBetween(start, end) {
|
|
79
|
+
const siblings = [];
|
|
80
|
+
let node = start.nextSibling;
|
|
81
|
+
while (node && node !== end) {
|
|
82
|
+
siblings.push(node);
|
|
83
|
+
node = node.nextSibling;
|
|
84
|
+
}
|
|
85
|
+
return siblings;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Checks if a rendered node is a `Wire`.
|
|
89
|
+
*/
|
|
90
|
+
export function isWire(node) {
|
|
91
|
+
if (!isArray(node))
|
|
92
|
+
return node.nodeType === nodeType;
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Checks if a rendered node is a standard DOM `Node`.
|
|
97
|
+
*/
|
|
98
|
+
export function isNode(node) {
|
|
99
|
+
if (!isArray(node))
|
|
100
|
+
return node.nodeType !== node.DOCUMENT_FRAGMENT_NODE;
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Checks if a rendered node is an `Element`.
|
|
105
|
+
*/
|
|
106
|
+
export function isElement(node) {
|
|
107
|
+
return isNode(node) && node.nodeType === node.ELEMENT_NODE;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Checks if a rendered node is an `SVGElement`.
|
|
111
|
+
*/
|
|
112
|
+
export function isSvgElement(node) {
|
|
113
|
+
return isElement(node) && "ownerSVGElement" in node;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Checks if a rendered node is an `HTMLElement`.
|
|
117
|
+
*/
|
|
118
|
+
export function isHtmlElement(node) {
|
|
119
|
+
return isElement(node) && !("ownerSVGElement" in node);
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Checks if a rendered node is a `Text` node.
|
|
123
|
+
*/
|
|
124
|
+
export function isText(node) {
|
|
125
|
+
return isNode(node) && node.nodeType === node.TEXT_NODE;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Checks if a rendered node is an `Attr` node.
|
|
129
|
+
*/
|
|
130
|
+
export function isAttr(node) {
|
|
131
|
+
return isNode(node) && node.nodeType === node.ATTRIBUTE_NODE;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Checks if a rendered node is a `Comment` node.
|
|
135
|
+
*/
|
|
136
|
+
export function isComment(node) {
|
|
137
|
+
return isNode(node) && node.nodeType === node.COMMENT_NODE;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Checks if a rendered node is a `DocumentFragment`.
|
|
141
|
+
*/
|
|
142
|
+
export function isDocumentFragment(node) {
|
|
143
|
+
if (!isArray(node))
|
|
144
|
+
return node.nodeType === node.DOCUMENT_FRAGMENT_NODE;
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Checks if a rendered value is an array of nodes.
|
|
149
|
+
*/
|
|
150
|
+
export function isArray(node) {
|
|
151
|
+
return Array.isArray(node);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Converts a `Rendered` value to an HTML string.
|
|
155
|
+
*
|
|
156
|
+
* @example
|
|
157
|
+
* ```ts
|
|
158
|
+
* import { toHtml } from "@typed/template/Wire"
|
|
159
|
+
*
|
|
160
|
+
* const div = document.createElement("div")
|
|
161
|
+
* div.textContent = "Hello"
|
|
162
|
+
* const html = toHtml(div) // "<div>Hello</div>"
|
|
163
|
+
*
|
|
164
|
+
* const fragment = document.createDocumentFragment()
|
|
165
|
+
* fragment.appendChild(div)
|
|
166
|
+
* const fragmentHtml = toHtml(fragment) // "<div>Hello</div>"
|
|
167
|
+
* ```
|
|
168
|
+
*
|
|
169
|
+
* @since 1.0.0
|
|
170
|
+
* @category utilities
|
|
171
|
+
*/
|
|
172
|
+
export function toHtml(node) {
|
|
173
|
+
if (isArray(node))
|
|
174
|
+
return node.map(toHtml).join("");
|
|
175
|
+
if (isWire(node))
|
|
176
|
+
return toHtml(node.valueOf());
|
|
177
|
+
if (isElement(node))
|
|
178
|
+
return node.outerHTML;
|
|
179
|
+
if (isText(node))
|
|
180
|
+
return node.data;
|
|
181
|
+
if (isComment(node))
|
|
182
|
+
return `<!--${node.data}-->`;
|
|
183
|
+
if (isDocumentFragment(node))
|
|
184
|
+
return Array.from(node.childNodes ?? [], toHtml).join("");
|
|
185
|
+
return node.nodeValue || "";
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Extracts all Elements from a `Rendered` value.
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* ```ts
|
|
192
|
+
* import { getElements } from "@typed/template/Wire"
|
|
193
|
+
*
|
|
194
|
+
* const div = document.createElement("div")
|
|
195
|
+
* const span = document.createElement("span")
|
|
196
|
+
* const fragment = document.createDocumentFragment()
|
|
197
|
+
* fragment.appendChild(div)
|
|
198
|
+
* fragment.appendChild(span)
|
|
199
|
+
*
|
|
200
|
+
* const elements = getElements(fragment)
|
|
201
|
+
* console.log(elements.length) // 2
|
|
202
|
+
* ```
|
|
203
|
+
*
|
|
204
|
+
* @since 1.0.0
|
|
205
|
+
* @category utilities
|
|
206
|
+
*/
|
|
207
|
+
export function getElements(node) {
|
|
208
|
+
if (isArray(node))
|
|
209
|
+
return node.flatMap(getElements);
|
|
210
|
+
if (isWire(node))
|
|
211
|
+
return getElements(node.valueOf());
|
|
212
|
+
if (isElement(node))
|
|
213
|
+
return [node];
|
|
214
|
+
if (isDocumentFragment(node))
|
|
215
|
+
return Array.from(node.childNodes ?? []).flatMap(getElements);
|
|
216
|
+
return [];
|
|
217
|
+
}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when a comment marker for a template part cannot be found during hydration.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import { CouldNotFindCommentError } from "@typed/template/errors"
|
|
7
|
+
*
|
|
8
|
+
* try {
|
|
9
|
+
* // Hydration code that might fail
|
|
10
|
+
* } catch (error) {
|
|
11
|
+
* if (error instanceof CouldNotFindCommentError) {
|
|
12
|
+
* console.error(`Part ${error.partIndex} comment not found`)
|
|
13
|
+
* }
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @category errors
|
|
19
|
+
*/
|
|
20
|
+
export declare class CouldNotFindCommentError extends Error {
|
|
21
|
+
readonly partIndex: number;
|
|
22
|
+
constructor(partIndex: number);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Error thrown when root elements for a template part cannot be found during hydration.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* ```ts
|
|
29
|
+
* import { CouldNotFindRootElement } from "@typed/template/errors"
|
|
30
|
+
*
|
|
31
|
+
* try {
|
|
32
|
+
* // Hydration code
|
|
33
|
+
* } catch (error) {
|
|
34
|
+
* if (error instanceof CouldNotFindRootElement) {
|
|
35
|
+
* console.error(`Root elements for part ${error.partIndex} not found`)
|
|
36
|
+
* }
|
|
37
|
+
* }
|
|
38
|
+
* ```
|
|
39
|
+
*
|
|
40
|
+
* @since 1.0.0
|
|
41
|
+
* @category errors
|
|
42
|
+
*/
|
|
43
|
+
export declare class CouldNotFindRootElement extends Error {
|
|
44
|
+
readonly partIndex: number;
|
|
45
|
+
constructor(partIndex: number);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Error thrown when a comment marker for a `many()` list cannot be found during hydration.
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts
|
|
52
|
+
* import { CouldNotFindManyCommentError } from "@typed/template/errors"
|
|
53
|
+
*
|
|
54
|
+
* try {
|
|
55
|
+
* // Hydration code for many()
|
|
56
|
+
* } catch (error) {
|
|
57
|
+
* if (error instanceof CouldNotFindManyCommentError) {
|
|
58
|
+
* console.error(`Many comment for key ${error.manyIndex} not found`)
|
|
59
|
+
* }
|
|
60
|
+
* }
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* @since 1.0.0
|
|
64
|
+
* @category errors
|
|
65
|
+
*/
|
|
66
|
+
export declare class CouldNotFindManyCommentError extends Error {
|
|
67
|
+
readonly manyIndex: string;
|
|
68
|
+
constructor(manyIndex: string);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Error thrown when a template hash cannot be found in the DOM during hydration.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* import { CouldNotFindTemplateHashError } from "@typed/template/errors"
|
|
76
|
+
*
|
|
77
|
+
* try {
|
|
78
|
+
* // Hydration code
|
|
79
|
+
* } catch (error) {
|
|
80
|
+
* if (error instanceof CouldNotFindTemplateHashError) {
|
|
81
|
+
* console.error(`Template hash ${error.hash} not found`)
|
|
82
|
+
* }
|
|
83
|
+
* }
|
|
84
|
+
* ```
|
|
85
|
+
*
|
|
86
|
+
* @since 1.0.0
|
|
87
|
+
* @category errors
|
|
88
|
+
*/
|
|
89
|
+
export declare class CouldNotFindTemplateHashError extends Error {
|
|
90
|
+
readonly hash: string;
|
|
91
|
+
constructor(hash: string);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Error thrown when the end marker of a template cannot be found during hydration.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```ts
|
|
98
|
+
* import { CouldNotFindTemplateEndError } from "@typed/template/errors"
|
|
99
|
+
*
|
|
100
|
+
* try {
|
|
101
|
+
* // Hydration code
|
|
102
|
+
* } catch (error) {
|
|
103
|
+
* if (error instanceof CouldNotFindTemplateEndError) {
|
|
104
|
+
* console.error(`End of template ${error.hash} not found`)
|
|
105
|
+
* }
|
|
106
|
+
* }
|
|
107
|
+
* ```
|
|
108
|
+
*
|
|
109
|
+
* @since 1.0.0
|
|
110
|
+
* @category errors
|
|
111
|
+
*/
|
|
112
|
+
export declare class CouldNotFindTemplateEndError extends Error {
|
|
113
|
+
readonly hash: string;
|
|
114
|
+
constructor(hash: string);
|
|
115
|
+
}
|
|
116
|
+
declare const constructors: readonly [typeof CouldNotFindCommentError, typeof CouldNotFindRootElement, typeof CouldNotFindManyCommentError, typeof CouldNotFindTemplateHashError, typeof CouldNotFindTemplateEndError];
|
|
117
|
+
/**
|
|
118
|
+
* A union type of all hydration-related errors.
|
|
119
|
+
*
|
|
120
|
+
* @since 1.0.0
|
|
121
|
+
* @category errors
|
|
122
|
+
*/
|
|
123
|
+
export type HydrationError = InstanceType<(typeof constructors)[number]>;
|
|
124
|
+
/**
|
|
125
|
+
* Checks if an error is a hydration error.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```ts
|
|
129
|
+
* import { isHydrationError } from "@typed/template/errors"
|
|
130
|
+
*
|
|
131
|
+
* try {
|
|
132
|
+
* // Hydration code
|
|
133
|
+
* } catch (error) {
|
|
134
|
+
* if (isHydrationError(error)) {
|
|
135
|
+
* console.error("Hydration failed:", error)
|
|
136
|
+
* }
|
|
137
|
+
* }
|
|
138
|
+
* ```
|
|
139
|
+
*
|
|
140
|
+
* @since 1.0.0
|
|
141
|
+
* @category guards
|
|
142
|
+
*/
|
|
143
|
+
export declare function isHydrationError(e: unknown): e is HydrationError;
|
|
144
|
+
export {};
|
|
145
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBACf,SAAS,EAAE,MAAM;CAI9B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBACf,SAAS,EAAE,MAAM;CAI9B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;gBACf,SAAS,EAAE,MAAM;CAI9B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,6BAA8B,SAAQ,KAAK;IACtD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,IAAI,EAAE,MAAM;CAIzB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;gBACV,IAAI,EAAE,MAAM;CAIzB;AAED,QAAA,MAAM,YAAY,4LAMR,CAAC;AAEX;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEzE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,cAAc,CAEhE"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error thrown when a comment marker for a template part cannot be found during hydration.
|
|
3
|
+
*
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import { CouldNotFindCommentError } from "@typed/template/errors"
|
|
7
|
+
*
|
|
8
|
+
* try {
|
|
9
|
+
* // Hydration code that might fail
|
|
10
|
+
* } catch (error) {
|
|
11
|
+
* if (error instanceof CouldNotFindCommentError) {
|
|
12
|
+
* console.error(`Part ${error.partIndex} comment not found`)
|
|
13
|
+
* }
|
|
14
|
+
* }
|
|
15
|
+
* ```
|
|
16
|
+
*
|
|
17
|
+
* @since 1.0.0
|
|
18
|
+
* @category errors
|
|
19
|
+
*/
|
|
20
|
+
export class CouldNotFindCommentError extends Error {
|
|
21
|
+
partIndex;
|
|
22
|
+
constructor(partIndex) {
|
|
23
|
+
super(`Could not find comment for part ${partIndex}`);
|
|
24
|
+
this.partIndex = partIndex;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Error thrown when root elements for a template part cannot be found during hydration.
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```ts
|
|
32
|
+
* import { CouldNotFindRootElement } from "@typed/template/errors"
|
|
33
|
+
*
|
|
34
|
+
* try {
|
|
35
|
+
* // Hydration code
|
|
36
|
+
* } catch (error) {
|
|
37
|
+
* if (error instanceof CouldNotFindRootElement) {
|
|
38
|
+
* console.error(`Root elements for part ${error.partIndex} not found`)
|
|
39
|
+
* }
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @since 1.0.0
|
|
44
|
+
* @category errors
|
|
45
|
+
*/
|
|
46
|
+
export class CouldNotFindRootElement extends Error {
|
|
47
|
+
partIndex;
|
|
48
|
+
constructor(partIndex) {
|
|
49
|
+
super(`Could not find root elements for part ${partIndex}`);
|
|
50
|
+
this.partIndex = partIndex;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Error thrown when a comment marker for a `many()` list cannot be found during hydration.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* import { CouldNotFindManyCommentError } from "@typed/template/errors"
|
|
59
|
+
*
|
|
60
|
+
* try {
|
|
61
|
+
* // Hydration code for many()
|
|
62
|
+
* } catch (error) {
|
|
63
|
+
* if (error instanceof CouldNotFindManyCommentError) {
|
|
64
|
+
* console.error(`Many comment for key ${error.manyIndex} not found`)
|
|
65
|
+
* }
|
|
66
|
+
* }
|
|
67
|
+
* ```
|
|
68
|
+
*
|
|
69
|
+
* @since 1.0.0
|
|
70
|
+
* @category errors
|
|
71
|
+
*/
|
|
72
|
+
export class CouldNotFindManyCommentError extends Error {
|
|
73
|
+
manyIndex;
|
|
74
|
+
constructor(manyIndex) {
|
|
75
|
+
super(`Could not find comment for many part ${manyIndex}`);
|
|
76
|
+
this.manyIndex = manyIndex;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Error thrown when a template hash cannot be found in the DOM during hydration.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts
|
|
84
|
+
* import { CouldNotFindTemplateHashError } from "@typed/template/errors"
|
|
85
|
+
*
|
|
86
|
+
* try {
|
|
87
|
+
* // Hydration code
|
|
88
|
+
* } catch (error) {
|
|
89
|
+
* if (error instanceof CouldNotFindTemplateHashError) {
|
|
90
|
+
* console.error(`Template hash ${error.hash} not found`)
|
|
91
|
+
* }
|
|
92
|
+
* }
|
|
93
|
+
* ```
|
|
94
|
+
*
|
|
95
|
+
* @since 1.0.0
|
|
96
|
+
* @category errors
|
|
97
|
+
*/
|
|
98
|
+
export class CouldNotFindTemplateHashError extends Error {
|
|
99
|
+
hash;
|
|
100
|
+
constructor(hash) {
|
|
101
|
+
super(`Could not find template hash ${hash}`);
|
|
102
|
+
this.hash = hash;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Error thrown when the end marker of a template cannot be found during hydration.
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```ts
|
|
110
|
+
* import { CouldNotFindTemplateEndError } from "@typed/template/errors"
|
|
111
|
+
*
|
|
112
|
+
* try {
|
|
113
|
+
* // Hydration code
|
|
114
|
+
* } catch (error) {
|
|
115
|
+
* if (error instanceof CouldNotFindTemplateEndError) {
|
|
116
|
+
* console.error(`End of template ${error.hash} not found`)
|
|
117
|
+
* }
|
|
118
|
+
* }
|
|
119
|
+
* ```
|
|
120
|
+
*
|
|
121
|
+
* @since 1.0.0
|
|
122
|
+
* @category errors
|
|
123
|
+
*/
|
|
124
|
+
export class CouldNotFindTemplateEndError extends Error {
|
|
125
|
+
hash;
|
|
126
|
+
constructor(hash) {
|
|
127
|
+
super(`Could not find end of template for hash ${hash}`);
|
|
128
|
+
this.hash = hash;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
const constructors = [
|
|
132
|
+
CouldNotFindCommentError,
|
|
133
|
+
CouldNotFindRootElement,
|
|
134
|
+
CouldNotFindManyCommentError,
|
|
135
|
+
CouldNotFindTemplateHashError,
|
|
136
|
+
CouldNotFindTemplateEndError,
|
|
137
|
+
];
|
|
138
|
+
/**
|
|
139
|
+
* Checks if an error is a hydration error.
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```ts
|
|
143
|
+
* import { isHydrationError } from "@typed/template/errors"
|
|
144
|
+
*
|
|
145
|
+
* try {
|
|
146
|
+
* // Hydration code
|
|
147
|
+
* } catch (error) {
|
|
148
|
+
* if (isHydrationError(error)) {
|
|
149
|
+
* console.error("Hydration failed:", error)
|
|
150
|
+
* }
|
|
151
|
+
* }
|
|
152
|
+
* ```
|
|
153
|
+
*
|
|
154
|
+
* @since 1.0.0
|
|
155
|
+
* @category guards
|
|
156
|
+
*/
|
|
157
|
+
export function isHydrationError(e) {
|
|
158
|
+
return constructors.some((c) => e instanceof c);
|
|
159
|
+
}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export * as EventHandler from "./EventHandler.js";
|
|
2
|
+
export * from "./EventSource.js";
|
|
3
|
+
export * from "./Html.js";
|
|
4
|
+
export * from "./HtmlChunk.js";
|
|
5
|
+
export * from "./HydrateContext.js";
|
|
6
|
+
export * from "./many.js";
|
|
7
|
+
export * from "./Parser.js";
|
|
8
|
+
export * from "./Render.js";
|
|
9
|
+
export * from "./Renderable.js";
|
|
10
|
+
export * from "./RenderEvent.js";
|
|
11
|
+
export * from "./RenderQueue.js";
|
|
12
|
+
export * from "./RenderTemplate.js";
|
|
13
|
+
export * from "./Template.js";
|
|
14
|
+
export * from "./Wire.js";
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAClD,cAAc,kBAAkB,CAAC;AACjC,cAAc,WAAW,CAAC;AAC1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * as EventHandler from "./EventHandler.js";
|
|
2
|
+
export * from "./EventSource.js";
|
|
3
|
+
export * from "./Html.js";
|
|
4
|
+
export * from "./HtmlChunk.js";
|
|
5
|
+
export * from "./HydrateContext.js";
|
|
6
|
+
export * from "./many.js";
|
|
7
|
+
export * from "./Parser.js";
|
|
8
|
+
export * from "./Render.js";
|
|
9
|
+
export * from "./Renderable.js";
|
|
10
|
+
export * from "./RenderEvent.js";
|
|
11
|
+
export * from "./RenderQueue.js";
|
|
12
|
+
export * from "./RenderTemplate.js";
|
|
13
|
+
export * from "./Template.js";
|
|
14
|
+
export * from "./Wire.js";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as Effect from "effect/Effect";
|
|
2
|
+
export type IndexRefCounter = {
|
|
3
|
+
release: (index: number) => void;
|
|
4
|
+
expect: (count: number) => boolean;
|
|
5
|
+
wait: Effect.Effect<void>;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* @internal
|
|
9
|
+
*/
|
|
10
|
+
export declare const makeRefCounter: Effect.Effect<IndexRefCounter>;
|
|
11
|
+
//# sourceMappingURL=IndexRefCounter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IndexRefCounter.d.ts","sourceRoot":"","sources":["../../src/internal/IndexRefCounter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;CAC3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,CAAC,eAAe,CAuCzD,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import * as Deferred from "effect/Deferred";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Option from "effect/Option";
|
|
4
|
+
/**
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
export const makeRefCounter = Effect.map(Deferred.make(), (deferred) => {
|
|
8
|
+
let expected = Option.none();
|
|
9
|
+
const indexes = new Set();
|
|
10
|
+
function isDone() {
|
|
11
|
+
if (Option.isSome(expected)) {
|
|
12
|
+
return indexes.size === expected.value;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function release(index) {
|
|
19
|
+
indexes.add(index);
|
|
20
|
+
if (isDone()) {
|
|
21
|
+
return Deferred.doneUnsafe(deferred, Effect.void);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
function expect(count) {
|
|
28
|
+
expected = Option.some(count);
|
|
29
|
+
if (isDone()) {
|
|
30
|
+
Deferred.doneUnsafe(deferred, Effect.void);
|
|
31
|
+
return false;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
release,
|
|
39
|
+
expect,
|
|
40
|
+
wait: Deferred.await(deferred),
|
|
41
|
+
};
|
|
42
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParentChildNodes.d.ts","sourceRoot":"","sources":["../../src/internal/ParentChildNodes.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,IAAI,GAAG,IAAI,CAAC;IACjC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;CACtC;AAED,eAAO,MAAM,QAAQ,GAAI,MAAM,gBAAgB,EAAE,MAAM,aAAa,CAAC,MAAM,CAAC,KAAG,IACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const findPath = (node, path) => path.reduce(({ childNodes }, index) => childNodes[index], node);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PathStack.d.ts","sourceRoot":"","sources":["../../src/internal/PathStack.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAS;IACpB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAO;IAE1B,GAAG,IAAI,IAAI;IAIX,IAAI,IAAI,IAAI;IAIZ,GAAG,IAAI,IAAI;IAIX,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;IAIxB,aAAa,IAAI,KAAK,CAAC,MAAM,CAAC;CAG/B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export class PathStack {
|
|
2
|
+
path = [0];
|
|
3
|
+
inc() {
|
|
4
|
+
this.path[this.path.length - 1] += 1;
|
|
5
|
+
}
|
|
6
|
+
push() {
|
|
7
|
+
this.path.push(0);
|
|
8
|
+
}
|
|
9
|
+
pop() {
|
|
10
|
+
this.path.pop();
|
|
11
|
+
}
|
|
12
|
+
toChunk() {
|
|
13
|
+
return this.path.slice(0);
|
|
14
|
+
}
|
|
15
|
+
previousChunk() {
|
|
16
|
+
return this.path.slice(0, -1);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildTemplateFragement.d.ts","sourceRoot":"","sources":["../../src/internal/buildTemplateFragement.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAEhD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,GAC1B,gBAAgB,CAMlB"}
|