@typed/template 0.5.4 → 0.7.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.
Files changed (109) hide show
  1. package/dist/cjs/ElementRef.js.map +1 -1
  2. package/dist/cjs/ElementSource.js.map +1 -1
  3. package/dist/cjs/Html.js.map +1 -1
  4. package/dist/cjs/Many.js.map +1 -1
  5. package/dist/cjs/RenderContext.js.map +1 -1
  6. package/dist/cjs/RenderTemplate.js.map +1 -1
  7. package/dist/cjs/Test.js.map +1 -1
  8. package/dist/cjs/internal/EventSource.js.map +1 -1
  9. package/dist/cjs/internal/hydrate.js.map +1 -1
  10. package/dist/cjs/internal/indexRefCounter.js.map +1 -1
  11. package/dist/cjs/internal/parts.js.map +1 -1
  12. package/dist/cjs/internal/render.js +3 -2
  13. package/dist/cjs/internal/render.js.map +1 -1
  14. package/dist/cjs/internal/server.js +2 -6
  15. package/dist/cjs/internal/server.js.map +1 -1
  16. package/dist/dts/Directive.d.ts +14 -14
  17. package/dist/dts/Directive.d.ts.map +1 -1
  18. package/dist/dts/ElementRef.d.ts +7 -7
  19. package/dist/dts/ElementRef.d.ts.map +1 -1
  20. package/dist/dts/ElementSource.d.ts +5 -5
  21. package/dist/dts/ElementSource.d.ts.map +1 -1
  22. package/dist/dts/EventHandler.d.ts +12 -12
  23. package/dist/dts/EventHandler.d.ts.map +1 -1
  24. package/dist/dts/Html.d.ts +2 -2
  25. package/dist/dts/Html.d.ts.map +1 -1
  26. package/dist/dts/Hydrate.d.ts +2 -2
  27. package/dist/dts/Hydrate.d.ts.map +1 -1
  28. package/dist/dts/Many.d.ts +8 -8
  29. package/dist/dts/Many.d.ts.map +1 -1
  30. package/dist/dts/Part.d.ts +14 -14
  31. package/dist/dts/Part.d.ts.map +1 -1
  32. package/dist/dts/Placeholder.d.ts +6 -6
  33. package/dist/dts/Placeholder.d.ts.map +1 -1
  34. package/dist/dts/Platform.d.ts +1 -1
  35. package/dist/dts/Platform.d.ts.map +1 -1
  36. package/dist/dts/Render.d.ts +2 -2
  37. package/dist/dts/Render.d.ts.map +1 -1
  38. package/dist/dts/RenderContext.d.ts +5 -5
  39. package/dist/dts/RenderContext.d.ts.map +1 -1
  40. package/dist/dts/RenderTemplate.d.ts +2 -2
  41. package/dist/dts/RenderTemplate.d.ts.map +1 -1
  42. package/dist/dts/Renderable.d.ts +3 -3
  43. package/dist/dts/Renderable.d.ts.map +1 -1
  44. package/dist/dts/Test.d.ts +12 -12
  45. package/dist/dts/Test.d.ts.map +1 -1
  46. package/dist/dts/Vitest.d.ts +2 -2
  47. package/dist/dts/Vitest.d.ts.map +1 -1
  48. package/dist/dts/internal/EventSource.d.ts +2 -2
  49. package/dist/dts/internal/EventSource.d.ts.map +1 -1
  50. package/dist/dts/internal/hydrate.d.ts.map +1 -1
  51. package/dist/dts/internal/indexRefCounter.d.ts +5 -5
  52. package/dist/dts/internal/indexRefCounter.d.ts.map +1 -1
  53. package/dist/dts/internal/module-augmentation.d.ts +13 -13
  54. package/dist/dts/internal/module-augmentation.d.ts.map +1 -1
  55. package/dist/dts/internal/parts.d.ts +39 -39
  56. package/dist/dts/internal/parts.d.ts.map +1 -1
  57. package/dist/dts/internal/render.d.ts +1 -1
  58. package/dist/dts/internal/render.d.ts.map +1 -1
  59. package/dist/dts/internal/server.d.ts +2 -2
  60. package/dist/dts/internal/server.d.ts.map +1 -1
  61. package/dist/dts/internal/utils.d.ts +1 -1
  62. package/dist/esm/ElementRef.js.map +1 -1
  63. package/dist/esm/ElementSource.js.map +1 -1
  64. package/dist/esm/Html.js.map +1 -1
  65. package/dist/esm/Many.js.map +1 -1
  66. package/dist/esm/RenderContext.js.map +1 -1
  67. package/dist/esm/RenderTemplate.js.map +1 -1
  68. package/dist/esm/Test.js.map +1 -1
  69. package/dist/esm/internal/EventSource.js.map +1 -1
  70. package/dist/esm/internal/hydrate.js.map +1 -1
  71. package/dist/esm/internal/indexRefCounter.js.map +1 -1
  72. package/dist/esm/internal/parts.js +4 -4
  73. package/dist/esm/internal/parts.js.map +1 -1
  74. package/dist/esm/internal/render.js +3 -2
  75. package/dist/esm/internal/render.js.map +1 -1
  76. package/dist/esm/internal/server.js +2 -6
  77. package/dist/esm/internal/server.js.map +1 -1
  78. package/package.json +8 -16
  79. package/src/Directive.ts +24 -24
  80. package/src/ElementRef.ts +11 -11
  81. package/src/ElementSource.ts +18 -18
  82. package/src/EventHandler.ts +18 -18
  83. package/src/Html.ts +33 -33
  84. package/src/Hydrate.ts +4 -4
  85. package/src/Many.ts +26 -26
  86. package/src/Part.ts +14 -14
  87. package/src/Placeholder.ts +13 -13
  88. package/src/Platform.ts +3 -3
  89. package/src/Render.ts +5 -5
  90. package/src/RenderContext.ts +8 -8
  91. package/src/RenderTemplate.ts +2 -6
  92. package/src/Renderable.ts +6 -6
  93. package/src/Test.ts +13 -13
  94. package/src/Vitest.ts +2 -2
  95. package/src/internal/EventSource.ts +4 -4
  96. package/src/internal/hydrate.ts +3 -7
  97. package/src/internal/indexRefCounter.ts +9 -17
  98. package/src/internal/module-augmentation.ts +15 -15
  99. package/src/internal/parts.ts +61 -63
  100. package/src/internal/render.ts +29 -28
  101. package/src/internal/server.ts +8 -10
  102. package/TemplateInstance/package.json +0 -6
  103. package/dist/cjs/TemplateInstance.js +0 -51
  104. package/dist/cjs/TemplateInstance.js.map +0 -1
  105. package/dist/dts/TemplateInstance.d.ts +0 -33
  106. package/dist/dts/TemplateInstance.d.ts.map +0 -1
  107. package/dist/esm/TemplateInstance.js +0 -43
  108. package/dist/esm/TemplateInstance.js.map +0 -1
  109. package/src/TemplateInstance.ts +0 -83
@@ -55,7 +55,7 @@ export type RenderPartContext = {
55
55
  readonly refCounter: IndexRefCounter2
56
56
  readonly renderContext: RenderContext
57
57
  readonly values: ReadonlyArray<Renderable<any, any>>
58
- readonly onCause: (cause: Cause<any>) => Effect.Effect<never, never, void>
58
+ readonly onCause: (cause: Cause<any>) => Effect.Effect<void>
59
59
 
60
60
  readonly makeHydrateContext?: (index: number) => HydrateContext
61
61
 
@@ -68,7 +68,7 @@ type RenderPartMap = {
68
68
  part: Extract<Template.PartNode | Template.SparsePartNode, { _tag: K }>,
69
69
  node: Node,
70
70
  ctx: RenderPartContext
71
- ) => null | Effect.Effect<any, any, void> | Array<Effect.Effect<any, any, void>>
71
+ ) => null | Effect.Effect<void, any, any> | Array<Effect.Effect<void, any, any>>
72
72
  }
73
73
 
74
74
  const RenderPartMap: RenderPartMap = {
@@ -283,7 +283,7 @@ const RenderPartMap: RenderPartMap = {
283
283
  added.forEach((a) => previous.add(a))
284
284
  }
285
285
 
286
- const effects: Array<Effect.Effect<any, any, void>> = []
286
+ const effects: Array<Effect.Effect<void, any, any>> = []
287
287
  const entries = Object.entries(renderable)
288
288
 
289
289
  loop:
@@ -403,7 +403,7 @@ const RenderPartMap: RenderPartMap = {
403
403
  return ctx.renderContext.queue.add(element, () => attr.value = values.join(""))
404
404
  })
405
405
 
406
- const effects: Array<Effect.Effect<any, any, void>> = []
406
+ const effects: Array<Effect.Effect<void, any, any>> = []
407
407
 
408
408
  for (let i = 0; i < templatePart.nodes.length; ++i) {
409
409
  const node = templatePart.nodes[i]
@@ -420,7 +420,7 @@ const RenderPartMap: RenderPartMap = {
420
420
  templatePart.name,
421
421
  node.index,
422
422
  ({ value }) => setValue(value, index),
423
- null
423
+ attr.value
424
424
  ),
425
425
  (f) => Effect.zipRight(ctx.renderContext.queue.add(element, f), ctx.refCounter.release(node.index)),
426
426
  () => ctx.expected++
@@ -461,7 +461,7 @@ const RenderPartMap: RenderPartMap = {
461
461
  return ctx.renderContext.queue.add(comment, () => comment.textContent = values.join(""))
462
462
  })
463
463
 
464
- const effects: Array<Effect.Effect<any, any, void>> = []
464
+ const effects: Array<Effect.Effect<void, any, any>> = []
465
465
 
466
466
  for (let i = 0; i < templatePart.nodes.length; ++i) {
467
467
  const node = templatePart.nodes[i]
@@ -551,7 +551,7 @@ export function renderPart2(
551
551
  content: ParentChildNodes,
552
552
  path: Chunk<number>,
553
553
  ctx: RenderPartContext
554
- ): Effect.Effect<any, any, void> | Array<Effect.Effect<any, any, void>> | null {
554
+ ): Effect.Effect<void, any, any> | Array<Effect.Effect<void, any, any>> | null {
555
555
  return RenderPartMap[part._tag](part as any, findPath(content, path), ctx)
556
556
  }
557
557
 
@@ -570,7 +570,7 @@ export const renderTemplate: (document: Document, renderContext: RenderContext)
570
570
  return Fx.sync(() => DomRenderEvent(persistent(document.importNode(entry.content, true))))
571
571
  }
572
572
 
573
- return Fx.make<Scope.Scope | Placeholder.Context<Values[number]>, Placeholder.Error<Values[number]>, RenderEvent>((
573
+ return Fx.make<RenderEvent, Placeholder.Error<Values[number]>, Scope.Scope | Placeholder.Context<Values[number]>>((
574
574
  sink
575
575
  ) => {
576
576
  return Effect.gen(function*(_) {
@@ -592,13 +592,13 @@ export const renderTemplate: (document: Document, renderContext: RenderContext)
592
592
  }
593
593
 
594
594
  // Connect our interpolated values to our template parts
595
- const effects: Array<Effect.Effect<Scope.Scope | Placeholder.Context<Values[number]>, never, void>> = []
595
+ const effects: Array<Effect.Effect<void, never, Scope.Scope | Placeholder.Context<Values[number]>>> = []
596
596
  for (const [part, path] of entry.template.parts) {
597
597
  const eff = renderPart2(part, content, path, ctx)
598
598
  if (eff !== null) {
599
599
  effects.push(
600
600
  ...(Array.isArray(eff) ? eff : [eff]) as Array<
601
- Effect.Effect<Scope.Scope | Placeholder.Context<Values[number]>, never, void>
601
+ Effect.Effect<void, never, Scope.Scope | Placeholder.Context<Values[number]>>
602
602
  >
603
603
  )
604
604
  }
@@ -640,20 +640,20 @@ export const renderTemplate: (document: Document, renderContext: RenderContext)
640
640
  })
641
641
  }
642
642
 
643
- function getEventHandler<R, E>(
643
+ function getEventHandler<E, R>(
644
644
  renderable: any,
645
645
  ctx: Context.Context<any> | Context.Context<never>,
646
- onCause: (cause: Cause<E>) => Effect.Effect<never, never, unknown>
646
+ onCause: (cause: Cause<E>) => Effect.Effect<unknown>
647
647
  ): EventHandler.EventHandler<never, never> | null {
648
648
  if (renderable && typeof renderable === "object") {
649
649
  if (EventHandler.EventHandlerTypeId in renderable) {
650
650
  return EventHandler.make(
651
651
  (ev) =>
652
652
  Effect.provide(
653
- Effect.catchAllCause((renderable as EventHandler.EventHandler<R, E>).handler(ev), onCause),
653
+ Effect.catchAllCause((renderable as EventHandler.EventHandler<Event, E, R>).handler(ev), onCause),
654
654
  ctx as any
655
655
  ),
656
- (renderable as EventHandler.EventHandler<R, E>).options
656
+ (renderable as EventHandler.EventHandler<Event, E, R>).options
657
657
  )
658
658
  } else if (Effect.EffectTypeId in renderable) {
659
659
  return EventHandler.make(() => Effect.provide(Effect.catchAllCause(renderable, onCause), ctx))
@@ -665,8 +665,8 @@ function getEventHandler<R, E>(
665
665
 
666
666
  function handlePart<R, E, R2>(
667
667
  renderable: unknown,
668
- sink: Sink.Sink<R2, any, any>
669
- ): Effect.Effect<R | R2 | Scope.Scope, never, any> {
668
+ sink: Sink.Sink<any, any, R2>
669
+ ): Effect.Effect<any, never, R | R2 | Scope.Scope> {
670
670
  switch (typeof renderable) {
671
671
  case "undefined":
672
672
  case "object": {
@@ -676,9 +676,9 @@ function handlePart<R, E, R2>(
676
676
  ? sink.onSuccess(null)
677
677
  : Fx.tuple(renderable.map(unwrapRenderable)).run(sink) as any
678
678
  } else if (TypeId in renderable) {
679
- return (renderable as Fx.Fx<R | R2, any, any>).run(sink)
679
+ return (renderable as Fx.Fx<any, any, R | R2>).run(sink)
680
680
  } else if (Effect.EffectTypeId in renderable) {
681
- return Effect.matchCauseEffect(renderable as Effect.Effect<R, E, any>, sink)
681
+ return Effect.matchCauseEffect(renderable as Effect.Effect<any, E, R>, sink)
682
682
  } else return sink.onSuccess(renderable)
683
683
  }
684
684
  default:
@@ -686,7 +686,7 @@ function handlePart<R, E, R2>(
686
686
  }
687
687
  }
688
688
 
689
- function unwrapRenderable<R, E>(renderable: unknown): Fx.Fx<R, E, any> {
689
+ function unwrapRenderable<E, R>(renderable: unknown): Fx.Fx<any, E, R> {
690
690
  switch (typeof renderable) {
691
691
  case "undefined":
692
692
  case "object": {
@@ -698,7 +698,7 @@ function unwrapRenderable<R, E>(renderable: unknown): Fx.Fx<R, E, any> {
698
698
  } else if (TypeId in renderable) {
699
699
  return renderable as any
700
700
  } else if (Effect.EffectTypeId in renderable) {
701
- return Fx.fromFxEffect(Effect.map(renderable as any, unwrapRenderable<R, E>))
701
+ return Fx.fromFxEffect(Effect.map(renderable as any, unwrapRenderable<E, R>))
702
702
  } else return Fx.succeed(renderable as any)
703
703
  }
704
704
  default:
@@ -710,7 +710,7 @@ export function attachRoot<T extends RenderEvent | null>(
710
710
  cache: RenderContext["renderCache"],
711
711
  where: HTMLElement,
712
712
  what: RenderEvent | null // TODO: Should we support HTML RenderEvents here too?
713
- ): Effect.Effect<never, never, ToRendered<T>> {
713
+ ): Effect.Effect<ToRendered<T>> {
714
714
  return Effect.sync(() => {
715
715
  const wire = what?.valueOf() as ToRendered<T>
716
716
  const previous = cache.get(where)
@@ -883,7 +883,7 @@ function matchSettablePart(
883
883
  renderable: Renderable<any, any>,
884
884
  setValue: (value: any) => void,
885
885
  makePart: () => Part,
886
- schedule: (f: () => void) => Effect.Effect<Scope.Scope, never, void>,
886
+ schedule: (f: () => void) => Effect.Effect<void, never, Scope.Scope>,
887
887
  expect: () => void
888
888
  ) {
889
889
  return matchRenderable(renderable, {
@@ -897,7 +897,8 @@ function matchSettablePart(
897
897
  },
898
898
  Directive: (directive) => {
899
899
  expect()
900
- return directive(makePart())
900
+ const part = makePart()
901
+ return Effect.flatMap(directive(part), () => schedule(() => setValue(part.value)))
901
902
  },
902
903
  Otherwise: (otherwise) => {
903
904
  setValue(otherwise)
@@ -907,11 +908,11 @@ function matchSettablePart(
907
908
  }
908
909
 
909
910
  function matchRenderable(renderable: Renderable<any, any>, matches: {
910
- Fx: (fx: Fx.Fx<any, any, any>) => Effect.Effect<any, any, void> | null
911
- Effect: (effect: Effect.Effect<any, any, any>) => Effect.Effect<any, any, void> | null
912
- Directive: (directive: Directive<any, any>) => Effect.Effect<any, any, void> | null
913
- Otherwise: (_: Renderable<any, any>) => Effect.Effect<any, any, void> | null
914
- }): Effect.Effect<any, any, void> | null {
911
+ Fx: (fx: Fx.Fx<any, any, any>) => Effect.Effect<void, any, any> | null
912
+ Effect: (effect: Effect.Effect<any, any, any>) => Effect.Effect<void, any, any> | null
913
+ Directive: (directive: Directive<any, any>) => Effect.Effect<void, any, any> | null
914
+ Otherwise: (_: Renderable<any, any>) => Effect.Effect<void, any, any> | null
915
+ }): Effect.Effect<void, any, any> | null {
915
916
  if (Fx.isFx(renderable)) {
916
917
  return matches.Fx(renderable)
917
918
  } else if (Effect.isEffect(renderable)) {
@@ -70,14 +70,13 @@ type RenderChunkMap = {
70
70
  chunk: Extract<HtmlChunk, { _tag: K }>,
71
71
  index: number,
72
72
  values: ReadonlyArray<Renderable<any, any>>,
73
- onChunk: (index: number, value: string) => Effect.Effect<never, never, void>
73
+ onChunk: (index: number, value: string) => Effect.Effect<void>
74
74
  ) => RenderChunk<R, E>
75
75
  }
76
76
 
77
77
  const renderChunkMap: RenderChunkMap = {
78
78
  text: (chunk, index) => new TextRenderChunk(index, chunk.value),
79
79
  part: (chunk, index, values, onChunk) =>
80
- // @ts-expect-error
81
80
  new PartRenderChunk(
82
81
  index,
83
82
  chunk,
@@ -85,7 +84,6 @@ const renderChunkMap: RenderChunkMap = {
85
84
  values[chunk.node.index]
86
85
  ),
87
86
  "sparse-part": (chunk, index, values, onChunk) =>
88
- // @ts-expect-error
89
87
  new SparsePartRenderChunk(
90
88
  index,
91
89
  chunk,
@@ -98,7 +96,7 @@ const renderChunkMap: RenderChunkMap = {
98
96
  export function htmlChunksToRenderChunks<R, E>(
99
97
  chunks: ReadonlyArray<HtmlChunk>,
100
98
  values: ReadonlyArray<Renderable<R, E>>,
101
- onChunk: (index: number, value: string) => Effect.Effect<never, never, void>
99
+ onChunk: (index: number, value: string) => Effect.Effect<void>
102
100
  ) {
103
101
  const output: Array<RenderChunk<R, E>> = Array(chunks.length)
104
102
 
@@ -113,7 +111,7 @@ export function htmlChunksToRenderChunks<R, E>(
113
111
  type PartNodeMap = {
114
112
  readonly [K in PartNode["_tag"]]: (
115
113
  node: Extract<PartNode, { _tag: K }>,
116
- onChunk: (value: unknown) => Effect.Effect<never, never, void>
114
+ onChunk: (value: unknown) => Effect.Effect<void>
117
115
  ) => Part
118
116
  }
119
117
 
@@ -137,14 +135,14 @@ const partNodeMap: PartNodeMap = {
137
135
 
138
136
  export function partNodeToPart(
139
137
  node: PartNode,
140
- onChunk: (value: unknown) => Effect.Effect<never, never, void>
138
+ onChunk: (value: unknown) => Effect.Effect<void>
141
139
  ): Part {
142
140
  return partNodeMap[node._tag](node as any, onChunk)
143
141
  }
144
142
 
145
143
  function sparsePartNodeToPart(
146
144
  node: SparsePartNode,
147
- onChunk: (value: string | null) => Effect.Effect<never, never, void>
145
+ onChunk: (value: string | null) => Effect.Effect<void>
148
146
  ) {
149
147
  if (node._tag === "sparse-attr") {
150
148
  return renderSparseAttr(node, onChunk)
@@ -157,7 +155,7 @@ function sparsePartNodeToPart(
157
155
 
158
156
  function renderSparseAttr(
159
157
  attrNode: SparseAttrNode,
160
- setAttribute: (value: string | null) => Effect.Effect<never, never, void>
158
+ setAttribute: (value: string | null) => Effect.Effect<void>
161
159
  ): SparseAttributePart {
162
160
  const { nodes } = attrNode
163
161
  const values: Map<number, string | null> = new Map()
@@ -204,7 +202,7 @@ function renderSparseAttr(
204
202
 
205
203
  function renderSparseClassName(
206
204
  classNameNode: SparseClassNameNode,
207
- setClassName: (value: string | null) => Effect.Effect<never, never, void>
205
+ setClassName: (value: string | null) => Effect.Effect<void>
208
206
  ): SparseClassNamePart {
209
207
  const { nodes } = classNameNode
210
208
  const values: Map<number, string | null> = new Map()
@@ -250,7 +248,7 @@ function renderSparseClassName(
250
248
 
251
249
  function renderSparseComment(
252
250
  commentNode: SparseCommentNode,
253
- setComment: (value: string | null) => Effect.Effect<never, never, void>
251
+ setComment: (value: string | null) => Effect.Effect<void>
254
252
  ): SparseCommentPart {
255
253
  const { nodes } = commentNode
256
254
  const values: Map<number, string | null | undefined> = new Map()
@@ -1,6 +0,0 @@
1
- {
2
- "main": "../dist/cjs/TemplateInstance.js",
3
- "module": "../dist/esm/TemplateInstance.js",
4
- "types": "../dist/dts/TemplateInstance.d.ts",
5
- "sideEffects": []
6
- }
@@ -1,51 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.TemplateInstance = TemplateInstance;
7
- exports.TemplateInstanceTypeId = void 0;
8
- var _Fx = /*#__PURE__*/require("@typed/fx/Fx");
9
- var _ElementRef = /*#__PURE__*/require("./ElementRef.js");
10
- /**
11
- * @since 1.0.0
12
- */
13
-
14
- /**
15
- * @since 1.0.0
16
- */
17
- const TemplateInstanceTypeId = exports.TemplateInstanceTypeId = /*#__PURE__*/Symbol.for("@typed/template/TemplateInstance");
18
- /**
19
- * @since 1.0.0
20
- */
21
- function TemplateInstance(events, ref) {
22
- return new TemplateInstanceImpl(events, ref);
23
- }
24
- // @ts-expect-error does not implement Placeholder
25
- class TemplateInstanceImpl extends _Fx.FxEffectBase {
26
- i0;
27
- i1;
28
- [TemplateInstanceTypeId] = TemplateInstanceTypeId;
29
- query;
30
- events;
31
- elements;
32
- dispatchEvent;
33
- version;
34
- constructor(i0, i1) {
35
- super();
36
- this.i0 = i0;
37
- this.i1 = i1;
38
- this.query = this.i1.query;
39
- this.events = this.i1.events;
40
- this.elements = this.i1.elements;
41
- this.dispatchEvent = this.i1.dispatchEvent;
42
- this.version = this.i1[_ElementRef.ElementRefTypeId].version;
43
- }
44
- toFx() {
45
- return this.i0;
46
- }
47
- toEffect() {
48
- return this.i1;
49
- }
50
- }
51
- //# sourceMappingURL=TemplateInstance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TemplateInstance.js","names":["_Fx","require","_ElementRef","TemplateInstanceTypeId","exports","Symbol","for","TemplateInstance","events","ref","TemplateInstanceImpl","FxEffectBase","i0","i1","query","elements","dispatchEvent","version","constructor","ElementRefTypeId","toFx","toEffect"],"sources":["../../src/TemplateInstance.ts"],"sourcesContent":[null],"mappings":";;;;;;;AAKA,IAAAA,GAAA,gBAAAC,OAAA;AAMA,IAAAC,WAAA,gBAAAD,OAAA;AAXA;;;;AAcA;;;AAGO,MAAME,sBAAsB,GAAAC,OAAA,CAAAD,sBAAA,gBAAGE,MAAM,CAACC,GAAG,CAAC,kCAAkC,CAAC;AAuBpF;;;AAGM,SAAUC,gBAAgBA,CAC9BC,MAAoC,EACpCC,GAAkB;EAElB,OAAO,IAAIC,oBAAoB,CAACF,MAAM,EAAEC,GAAG,CAAQ;AACrD;AAEA;AACA,MAAMC,oBACJ,SAAQC,gBAAyE;EAWtEC,EAAA;EACAC,EAAA;EATF,CAACV,sBAAsB,IAA4BA,sBAAsB;EAClFW,KAAK;EACLN,MAAM;EACNO,QAAQ;EACRC,aAAa;EACbC,OAAO;EAEPC,YACWN,EAAgC,EAChCC,EAAiB;IAE1B,KAAK,EAAE;IAHE,KAAAD,EAAE,GAAFA,EAAE;IACF,KAAAC,EAAE,GAAFA,EAAE;IAIX,IAAI,CAACC,KAAK,GAAG,IAAI,CAACD,EAAE,CAACC,KAAK;IAC1B,IAAI,CAACN,MAAM,GAAG,IAAI,CAACK,EAAE,CAACL,MAAM;IAC5B,IAAI,CAACO,QAAQ,GAAG,IAAI,CAACF,EAAE,CAACE,QAAQ;IAChC,IAAI,CAACC,aAAa,GAAG,IAAI,CAACH,EAAE,CAACG,aAAa;IAC1C,IAAI,CAACC,OAAO,GAAG,IAAI,CAACJ,EAAE,CAACM,4BAAgB,CAAC,CAACF,OAAO;EAClD;EAEAG,IAAIA,CAAA;IACF,OAAO,IAAI,CAACR,EAAE;EAChB;EAEAS,QAAQA,CAAA;IACN,OAAO,IAAI,CAACR,EAAE;EAChB"}
@@ -1,33 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type * as Fx from "@typed/fx/Fx";
5
- import type * as Versioned from "@typed/fx/Versioned";
6
- import type { Rendered } from "@typed/wire";
7
- import type { NoSuchElementException } from "effect/Cause";
8
- import type { Scope } from "effect/Scope";
9
- import { type ElementRef } from "./ElementRef.js";
10
- import type { RenderEvent } from "./RenderEvent.js";
11
- /**
12
- * @since 1.0.0
13
- */
14
- export declare const TemplateInstanceTypeId: unique symbol;
15
- /**
16
- * @since 1.0.0
17
- */
18
- export type TemplateInstanceTypeId = typeof TemplateInstanceTypeId;
19
- /**
20
- * @since 1.0.0
21
- */
22
- export interface TemplateInstance<E, T extends Rendered = Rendered> extends Versioned.Versioned<never, never, Scope, E, RenderEvent, never, E | NoSuchElementException, T> {
23
- readonly [TemplateInstanceTypeId]: TemplateInstanceTypeId;
24
- readonly query: ElementRef<T>["query"];
25
- readonly events: ElementRef<T>["events"];
26
- readonly elements: ElementRef<T>["elements"];
27
- readonly dispatchEvent: ElementRef<T>["dispatchEvent"];
28
- }
29
- /**
30
- * @since 1.0.0
31
- */
32
- export declare function TemplateInstance<T extends Rendered = Rendered, E = never>(events: Fx.Fx<Scope, E, RenderEvent>, ref: ElementRef<T>): TemplateInstance<E, T>;
33
- //# sourceMappingURL=TemplateInstance.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TemplateInstance.d.ts","sourceRoot":"","sources":["../../src/TemplateInstance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,KAAK,EAAE,MAAM,cAAc,CAAA;AAEvC,OAAO,KAAK,KAAK,SAAS,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;AAE1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,EAAE,KAAK,UAAU,EAAoB,MAAM,iBAAiB,CAAA;AACnE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAEnD;;GAEG;AACH,eAAO,MAAM,sBAAsB,eAAiD,CAAA;AACpF;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,OAAO,sBAAsB,CAAA;AAElE;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,GAAG,QAAQ,CAChE,SAAQ,SAAS,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,GAAG,sBAAsB,EAAE,CAAC,CAAC;IAEtG,QAAQ,CAAC,CAAC,sBAAsB,CAAC,EAAE,sBAAsB,CAAA;IAEzD,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAEtC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IAExC,QAAQ,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAA;IAE5C,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;CACvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,EAAE,CAAC,GAAG,KAAK,EACvE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,EACpC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,GACjB,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,CAExB"}
@@ -1,43 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import { FxEffectBase } from "@typed/fx/Fx";
5
- import { ElementRefTypeId } from "./ElementRef.js";
6
- /**
7
- * @since 1.0.0
8
- */
9
- export const TemplateInstanceTypeId = Symbol.for("@typed/template/TemplateInstance");
10
- /**
11
- * @since 1.0.0
12
- */
13
- export function TemplateInstance(events, ref) {
14
- return new TemplateInstanceImpl(events, ref);
15
- }
16
- // @ts-expect-error does not implement Placeholder
17
- class TemplateInstanceImpl extends FxEffectBase {
18
- i0;
19
- i1;
20
- [TemplateInstanceTypeId] = TemplateInstanceTypeId;
21
- query;
22
- events;
23
- elements;
24
- dispatchEvent;
25
- version;
26
- constructor(i0, i1) {
27
- super();
28
- this.i0 = i0;
29
- this.i1 = i1;
30
- this.query = this.i1.query;
31
- this.events = this.i1.events;
32
- this.elements = this.i1.elements;
33
- this.dispatchEvent = this.i1.dispatchEvent;
34
- this.version = this.i1[ElementRefTypeId].version;
35
- }
36
- toFx() {
37
- return this.i0;
38
- }
39
- toEffect() {
40
- return this.i1;
41
- }
42
- }
43
- //# sourceMappingURL=TemplateInstance.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TemplateInstance.js","sourceRoot":"","sources":["../../src/TemplateInstance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAM3C,OAAO,EAAmB,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAGnE;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAA;AAuBpF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,MAAoC,EACpC,GAAkB;IAElB,OAAO,IAAI,oBAAoB,CAAC,MAAM,EAAE,GAAG,CAAQ,CAAA;AACrD,CAAC;AAED,kDAAkD;AAClD,MAAM,oBACJ,SAAQ,YAAyE;IAWtE;IACA;IATF,CAAC,sBAAsB,CAAC,GAA2B,sBAAsB,CAAA;IAClF,KAAK,CAAiC;IACtC,MAAM,CAAkC;IACxC,QAAQ,CAAoC;IAC5C,aAAa,CAAyC;IACtD,OAAO,CAAqC;IAE5C,YACW,EAAgC,EAChC,EAAiB;QAE1B,KAAK,EAAE,CAAA;QAHE,OAAE,GAAF,EAAE,CAA8B;QAChC,OAAE,GAAF,EAAE,CAAe;QAI1B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAA;QAC5B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAA;QAChC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,EAAE,CAAC,aAAa,CAAA;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAA;IAClD,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,EAAE,CAAA;IAChB,CAAC;CACF"}
@@ -1,83 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
-
5
- import type * as Fx from "@typed/fx/Fx"
6
- import { FxEffectBase } from "@typed/fx/Fx"
7
- import type * as Versioned from "@typed/fx/Versioned"
8
- import type { Rendered } from "@typed/wire"
9
- import type { NoSuchElementException } from "effect/Cause"
10
- import type * as Effect from "effect/Effect"
11
- import type { Scope } from "effect/Scope"
12
- import { type ElementRef, ElementRefTypeId } from "./ElementRef.js"
13
- import type { RenderEvent } from "./RenderEvent.js"
14
-
15
- /**
16
- * @since 1.0.0
17
- */
18
- export const TemplateInstanceTypeId = Symbol.for("@typed/template/TemplateInstance")
19
- /**
20
- * @since 1.0.0
21
- */
22
- export type TemplateInstanceTypeId = typeof TemplateInstanceTypeId
23
-
24
- /**
25
- * @since 1.0.0
26
- */
27
- export interface TemplateInstance<E, T extends Rendered = Rendered>
28
- extends Versioned.Versioned<never, never, Scope, E, RenderEvent, never, E | NoSuchElementException, T>
29
- {
30
- readonly [TemplateInstanceTypeId]: TemplateInstanceTypeId
31
-
32
- readonly query: ElementRef<T>["query"]
33
-
34
- readonly events: ElementRef<T>["events"]
35
-
36
- readonly elements: ElementRef<T>["elements"]
37
-
38
- readonly dispatchEvent: ElementRef<T>["dispatchEvent"]
39
- }
40
-
41
- /**
42
- * @since 1.0.0
43
- */
44
- export function TemplateInstance<T extends Rendered = Rendered, E = never>(
45
- events: Fx.Fx<Scope, E, RenderEvent>,
46
- ref: ElementRef<T>
47
- ): TemplateInstance<E, T> {
48
- return new TemplateInstanceImpl(events, ref) as any
49
- }
50
-
51
- // @ts-expect-error does not implement Placeholder
52
- class TemplateInstanceImpl<E, T extends Rendered>
53
- extends FxEffectBase<Scope, E, RenderEvent, never, E | NoSuchElementException, T>
54
- implements TemplateInstance<E, T>
55
- {
56
- readonly [TemplateInstanceTypeId]: TemplateInstanceTypeId = TemplateInstanceTypeId
57
- query: TemplateInstance<E, T>["query"]
58
- events: TemplateInstance<E, T>["events"]
59
- elements: TemplateInstance<E, T>["elements"]
60
- dispatchEvent: TemplateInstance<E, T>["dispatchEvent"]
61
- version: Effect.Effect<never, never, number>
62
-
63
- constructor(
64
- readonly i0: Fx.Fx<Scope, E, RenderEvent>,
65
- readonly i1: ElementRef<T>
66
- ) {
67
- super()
68
-
69
- this.query = this.i1.query
70
- this.events = this.i1.events
71
- this.elements = this.i1.elements
72
- this.dispatchEvent = this.i1.dispatchEvent
73
- this.version = this.i1[ElementRefTypeId].version
74
- }
75
-
76
- toFx(): Fx.Fx<Scope, E, RenderEvent> {
77
- return this.i0
78
- }
79
-
80
- toEffect(): Effect.Effect<never, E | NoSuchElementException, T> {
81
- return this.i1
82
- }
83
- }