@typed/template 0.3.2 → 0.3.4
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/dist/cjs/Test.js.map +1 -1
- package/dist/cjs/internal/hydrate.js +9 -4
- package/dist/cjs/internal/hydrate.js.map +1 -1
- package/dist/cjs/internal/parser.js +19 -5
- package/dist/cjs/internal/parser.js.map +1 -1
- package/dist/cjs/internal/render.js +66 -34
- package/dist/cjs/internal/render.js.map +1 -1
- package/dist/dts/Test.d.ts +2 -2
- package/dist/dts/Test.d.ts.map +1 -1
- package/dist/dts/internal/hydrate.d.ts.map +1 -1
- package/dist/dts/internal/parser.d.ts.map +1 -1
- package/dist/dts/internal/render.d.ts.map +1 -1
- package/dist/esm/Test.js.map +1 -1
- package/dist/esm/internal/hydrate.js +10 -5
- package/dist/esm/internal/hydrate.js.map +1 -1
- package/dist/esm/internal/parser.js +23 -5
- package/dist/esm/internal/parser.js.map +1 -1
- package/dist/esm/internal/render.js +69 -37
- package/dist/esm/internal/render.js.map +1 -1
- package/package.json +9 -9
- package/src/Test.ts +7 -3
- package/src/internal/hydrate.ts +17 -11
- package/src/internal/parser.ts +26 -6
- package/src/internal/render.ts +102 -56
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import * as Fx from "@typed/fx/Fx";
|
|
2
|
+
import * as Sink from "@typed/fx/Sink";
|
|
2
3
|
import { TypeId } from "@typed/fx/TypeId";
|
|
3
4
|
import { persistent } from "@typed/wire";
|
|
4
|
-
import { Effect } from "effect";
|
|
5
|
+
import { Effect, ExecutionStrategy, Exit } from "effect";
|
|
5
6
|
import * as Context from "effect/Context";
|
|
6
|
-
import
|
|
7
|
+
import * as Scope from "effect/Scope";
|
|
8
|
+
import { uncapitalize } from "effect/String";
|
|
7
9
|
import { isDirective } from "../Directive.js";
|
|
8
10
|
import * as ElementRef from "../ElementRef.js";
|
|
9
11
|
import * as ElementSource from "../ElementSource.js";
|
|
@@ -41,11 +43,12 @@ const RenderPartMap = {
|
|
|
41
43
|
"boolean-part": (templatePart, node, ctx) => {
|
|
42
44
|
const { refCounter, renderContext, values } = ctx;
|
|
43
45
|
const element = node;
|
|
46
|
+
const name = templatePart.name;
|
|
44
47
|
const renderable = values[templatePart.index];
|
|
45
48
|
const setValue = (value) => {
|
|
46
|
-
element.toggleAttribute(
|
|
49
|
+
element.toggleAttribute(name, isNullOrUndefined(value) ? false : Boolean(value));
|
|
47
50
|
};
|
|
48
|
-
return matchSettablePart(renderable, setValue, () => BooleanPartImpl.browser(templatePart.index, element,
|
|
51
|
+
return matchSettablePart(renderable, setValue, () => BooleanPartImpl.browser(templatePart.index, element, name, renderContext), (f) => Effect.zipRight(renderContext.queue.add(element, f), refCounter.release(templatePart.index)), () => ctx.expected++);
|
|
49
52
|
},
|
|
50
53
|
"className-part": (templatePart, node, ctx) => {
|
|
51
54
|
const { refCounter, renderContext, values } = ctx;
|
|
@@ -58,13 +61,10 @@ const RenderPartMap = {
|
|
|
58
61
|
classNames.clear();
|
|
59
62
|
}
|
|
60
63
|
else {
|
|
61
|
-
const newClassNames = new Set(Array.isArray(value) ? value :
|
|
64
|
+
const newClassNames = new Set(Array.isArray(value) ? value.flatMap((x) => splitClassNames(String(x))) : splitClassNames(String(value)));
|
|
62
65
|
const { added, removed } = diffClassNames(classNames, newClassNames);
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
if (added.length > 0)
|
|
67
|
-
element.classList.add(...added);
|
|
66
|
+
element.classList.remove(...removed);
|
|
67
|
+
element.classList.add(...added);
|
|
68
68
|
classNames = newClassNames;
|
|
69
69
|
}
|
|
70
70
|
};
|
|
@@ -120,7 +120,7 @@ const RenderPartMap = {
|
|
|
120
120
|
const makeHydrateContext = ctx.makeHydrateContext;
|
|
121
121
|
const part = makeRenderNodePart(templatePart.index, node, ctx.renderContext, ctx.document, !!makeHydrateContext);
|
|
122
122
|
ctx.expected++;
|
|
123
|
-
const handle = handlePart(ctx.values[templatePart.index], (value) => Effect.zipRight(part.update(value), ctx.refCounter.release(templatePart.index)));
|
|
123
|
+
const handle = handlePart(ctx.values[templatePart.index], Sink.make(ctx.onCause, (value) => Effect.zipRight(part.update(value), ctx.refCounter.release(templatePart.index))));
|
|
124
124
|
if (makeHydrateContext) {
|
|
125
125
|
return Effect.provideService(handle, HydrateContext, makeHydrateContext(templatePart.index));
|
|
126
126
|
}
|
|
@@ -171,13 +171,17 @@ const RenderPartMap = {
|
|
|
171
171
|
element[key] = value;
|
|
172
172
|
}
|
|
173
173
|
};
|
|
174
|
+
const setClassNames = (previous, updated) => {
|
|
175
|
+
const { added, removed } = diffClassNames(previous, updated);
|
|
176
|
+
element.classList.remove(...removed);
|
|
177
|
+
element.classList.add(...added);
|
|
178
|
+
removed.forEach((r) => previous.delete(r));
|
|
179
|
+
added.forEach((a) => previous.add(a));
|
|
180
|
+
};
|
|
174
181
|
const effects = [];
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
let i = ctx.values.length;
|
|
179
|
-
loop: for (const [key, value] of Object.entries(renderable)) {
|
|
180
|
-
const index = ++i;
|
|
182
|
+
const entries = Object.entries(renderable);
|
|
183
|
+
loop: for (const [key, value] of entries) {
|
|
184
|
+
const index = ++ctx.spreadIndex;
|
|
181
185
|
switch (key[0]) {
|
|
182
186
|
case "?": {
|
|
183
187
|
const name = key.slice(1);
|
|
@@ -196,7 +200,7 @@ const RenderPartMap = {
|
|
|
196
200
|
continue loop;
|
|
197
201
|
}
|
|
198
202
|
case "@": {
|
|
199
|
-
const name = key.slice(1);
|
|
203
|
+
const name = uncapitalize(key.slice(1));
|
|
200
204
|
const handler = getEventHandler(value, ctx.context, ctx.onCause);
|
|
201
205
|
if (handler) {
|
|
202
206
|
ctx.eventSource.addEventListener(element, name, handler);
|
|
@@ -205,7 +209,7 @@ const RenderPartMap = {
|
|
|
205
209
|
}
|
|
206
210
|
case "o": {
|
|
207
211
|
if (key[1] === "n") {
|
|
208
|
-
const name = key.slice(2);
|
|
212
|
+
const name = uncapitalize(key.slice(2));
|
|
209
213
|
const handler = getEventHandler(value, ctx.context, ctx.onCause);
|
|
210
214
|
if (handler) {
|
|
211
215
|
ctx.eventSource.addEventListener(element, name, handler);
|
|
@@ -214,9 +218,28 @@ const RenderPartMap = {
|
|
|
214
218
|
continue loop;
|
|
215
219
|
}
|
|
216
220
|
}
|
|
217
|
-
const
|
|
218
|
-
|
|
219
|
-
|
|
221
|
+
const lowerCaseName = key.toLowerCase();
|
|
222
|
+
const isClass = lowerCaseName === "class" || lowerCaseName === "classname";
|
|
223
|
+
if (isClass) {
|
|
224
|
+
const classNames = new Set();
|
|
225
|
+
const eff = matchSettablePart(value, (value) => {
|
|
226
|
+
if (isNullOrUndefined(value)) {
|
|
227
|
+
element.classList.remove(...classNames);
|
|
228
|
+
classNames.clear();
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
setClassNames(classNames, new Set(splitClassNames(String(value))));
|
|
232
|
+
}
|
|
233
|
+
}, () => ClassNamePartImpl.browser(index, element, ctx.renderContext), (f) => Effect.zipRight(ctx.renderContext.queue.add(element, f), ctx.refCounter.release(index)), () => ctx.expected++);
|
|
234
|
+
if (eff !== null) {
|
|
235
|
+
effects.push(eff);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
const eff = matchSettablePart(value, (value) => setAttribute(key, value), () => AttributePartImpl.browser(index, element, key, ctx.renderContext), (f) => Effect.zipRight(ctx.renderContext.queue.add(element, f), ctx.refCounter.release(index)), () => ctx.expected++);
|
|
240
|
+
if (eff !== null) {
|
|
241
|
+
effects.push(eff);
|
|
242
|
+
}
|
|
220
243
|
}
|
|
221
244
|
}
|
|
222
245
|
return effects;
|
|
@@ -306,7 +329,7 @@ const RenderPartMap = {
|
|
|
306
329
|
"text-part": (templatePart, node, ctx) => {
|
|
307
330
|
const part = TextPartImpl.browser(ctx.document, templatePart.index, node, ctx.renderContext);
|
|
308
331
|
ctx.expected++;
|
|
309
|
-
return handlePart(ctx.values[templatePart.index], (value) => Effect.zipRight(part.update(value), ctx.refCounter.release(templatePart.index)));
|
|
332
|
+
return handlePart(ctx.values[templatePart.index], Sink.make(ctx.onCause, (value) => Effect.zipRight(part.update(value), ctx.refCounter.release(templatePart.index))));
|
|
310
333
|
}
|
|
311
334
|
};
|
|
312
335
|
const SPACE_REGEXP = /\s+/g;
|
|
@@ -351,9 +374,11 @@ export const renderTemplate = (document, renderContext) => (templateStrings, val
|
|
|
351
374
|
}
|
|
352
375
|
return Fx.make((sink) => {
|
|
353
376
|
return Effect.gen(function* (_) {
|
|
354
|
-
const content = document.importNode(entry.content, true);
|
|
355
377
|
const context = yield* _(Effect.context());
|
|
378
|
+
const parentScope = Context.get(context, Scope.Scope);
|
|
379
|
+
const scope = yield* _(Scope.fork(parentScope, ExecutionStrategy.sequential));
|
|
356
380
|
const refCounter = yield* _(indexRefCounter2());
|
|
381
|
+
const content = document.importNode(entry.content, true);
|
|
357
382
|
const ctx = {
|
|
358
383
|
context,
|
|
359
384
|
document,
|
|
@@ -362,6 +387,7 @@ export const renderTemplate = (document, renderContext) => (templateStrings, val
|
|
|
362
387
|
refCounter,
|
|
363
388
|
renderContext,
|
|
364
389
|
onCause: sink.onFailure,
|
|
390
|
+
spreadIndex: values.length,
|
|
365
391
|
values
|
|
366
392
|
};
|
|
367
393
|
// Connect our interpolated values to our template parts
|
|
@@ -374,7 +400,9 @@ export const renderTemplate = (document, renderContext) => (templateStrings, val
|
|
|
374
400
|
}
|
|
375
401
|
// Fork any effects necessary
|
|
376
402
|
if (effects.length > 0) {
|
|
377
|
-
|
|
403
|
+
for (const eff of effects) {
|
|
404
|
+
yield* _(Effect.forkIn(Effect.catchAllCause(eff, ctx.onCause), scope));
|
|
405
|
+
}
|
|
378
406
|
}
|
|
379
407
|
// If there's anything to wait on and it's not already done, wait for an initial value
|
|
380
408
|
// for all asynchronous sources.
|
|
@@ -384,12 +412,14 @@ export const renderTemplate = (document, renderContext) => (templateStrings, val
|
|
|
384
412
|
// Create a persistent wire from our content
|
|
385
413
|
const wire = persistent(content);
|
|
386
414
|
// Set the element when it is ready
|
|
387
|
-
yield* _(ctx.eventSource.setup(wire,
|
|
415
|
+
yield* _(ctx.eventSource.setup(wire, scope));
|
|
388
416
|
// Emit our DomRenderEvent
|
|
389
|
-
yield* _(sink.onSuccess(DomRenderEvent(wire))
|
|
417
|
+
yield* _(sink.onSuccess(DomRenderEvent(wire)),
|
|
390
418
|
// Ensure our templates last forever in the DOM environment
|
|
391
419
|
// so event listeners are kept attached to the current Scope.
|
|
392
|
-
|
|
420
|
+
Effect.zipRight(Effect.never),
|
|
421
|
+
// Close our scope whenever the current Fiber is interrupted
|
|
422
|
+
Effect.ensuring(Scope.close(scope, Exit.unit)));
|
|
393
423
|
});
|
|
394
424
|
});
|
|
395
425
|
};
|
|
@@ -404,28 +434,28 @@ function getEventHandler(renderable, ctx, onCause) {
|
|
|
404
434
|
}
|
|
405
435
|
return null;
|
|
406
436
|
}
|
|
407
|
-
function handlePart(renderable,
|
|
437
|
+
function handlePart(renderable, sink) {
|
|
408
438
|
switch (typeof renderable) {
|
|
409
439
|
case "undefined":
|
|
410
440
|
case "object": {
|
|
411
441
|
if (renderable === null || renderable === undefined)
|
|
412
|
-
return
|
|
442
|
+
return sink.onSuccess(null);
|
|
413
443
|
else if (Array.isArray(renderable)) {
|
|
414
444
|
return renderable.length === 0
|
|
415
|
-
?
|
|
416
|
-
:
|
|
445
|
+
? sink.onSuccess(null)
|
|
446
|
+
: Fx.tuple(renderable.map(unwrapRenderable)).run(sink);
|
|
417
447
|
}
|
|
418
448
|
else if (TypeId in renderable) {
|
|
419
|
-
return
|
|
449
|
+
return renderable.run(sink);
|
|
420
450
|
}
|
|
421
451
|
else if (Effect.EffectTypeId in renderable) {
|
|
422
|
-
return Effect.
|
|
452
|
+
return Effect.matchCauseEffect(renderable, sink);
|
|
423
453
|
}
|
|
424
454
|
else
|
|
425
|
-
return
|
|
455
|
+
return sink.onSuccess(renderable);
|
|
426
456
|
}
|
|
427
457
|
default:
|
|
428
|
-
return
|
|
458
|
+
return sink.onSuccess(renderable);
|
|
429
459
|
}
|
|
430
460
|
}
|
|
431
461
|
function unwrapRenderable(renderable) {
|
|
@@ -435,7 +465,9 @@ function unwrapRenderable(renderable) {
|
|
|
435
465
|
if (renderable === null || renderable === undefined)
|
|
436
466
|
return Fx.succeed(null);
|
|
437
467
|
else if (Array.isArray(renderable)) {
|
|
438
|
-
return renderable.length === 0
|
|
468
|
+
return renderable.length === 0
|
|
469
|
+
? Fx.succeed(null)
|
|
470
|
+
: Fx.map(Fx.tuple(renderable.map(unwrapRenderable)), (xs) => xs.flat());
|
|
439
471
|
}
|
|
440
472
|
else if (TypeId in renderable) {
|
|
441
473
|
return renderable;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/internal/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/internal/render.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@typed/template",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.4",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -10,19 +10,19 @@
|
|
|
10
10
|
"sideEffects": [],
|
|
11
11
|
"author": "Typed contributors",
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@effect/platform": "
|
|
14
|
-
"@effect/schema": "0.
|
|
15
|
-
"effect": "^2.0
|
|
13
|
+
"@effect/platform": "0.42.2",
|
|
14
|
+
"@effect/schema": "0.60.2",
|
|
15
|
+
"effect": "^2.1.0",
|
|
16
16
|
"typed-query-selector": "^2.11.0",
|
|
17
17
|
"udomdiff": "^1.1.0",
|
|
18
|
-
"@typed/
|
|
19
|
-
"@typed/
|
|
20
|
-
"@typed/environment": "0.3.
|
|
21
|
-
"@typed/fx": "1.20.
|
|
18
|
+
"@typed/context": "0.21.1",
|
|
19
|
+
"@typed/dom": "9.0.1",
|
|
20
|
+
"@typed/environment": "0.3.1",
|
|
21
|
+
"@typed/fx": "1.20.2",
|
|
22
22
|
"@typed/wire": "0.3.0"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"effect": "^2.0
|
|
25
|
+
"effect": "^2.1.0"
|
|
26
26
|
},
|
|
27
27
|
"main": "./dist/cjs/index.js",
|
|
28
28
|
"module": "./dist/esm/index.js",
|
package/src/Test.ts
CHANGED
|
@@ -15,7 +15,6 @@ import * as Effect from "effect/Effect"
|
|
|
15
15
|
import * as Either from "effect/Either"
|
|
16
16
|
import * as Fiber from "effect/Fiber"
|
|
17
17
|
import type * as Scope from "effect/Scope"
|
|
18
|
-
import type IHappyDOMOptions from "happy-dom/lib/window/IHappyDOMOptions.js"
|
|
19
18
|
import * as ElementRef from "./ElementRef.js"
|
|
20
19
|
import { ROOT_CSS_SELECTOR } from "./ElementSource.js"
|
|
21
20
|
import { adjustTime } from "./internal/utils.js"
|
|
@@ -30,6 +29,9 @@ import type { RenderTemplate } from "./RenderTemplate.js"
|
|
|
30
29
|
// TODO: keyboard events
|
|
31
30
|
// TODO: drag and drop events
|
|
32
31
|
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/consistent-type-imports
|
|
33
|
+
export type HappyDOMOptions = ConstructorParameters<typeof import("happy-dom").Window>[0]
|
|
34
|
+
|
|
33
35
|
/**
|
|
34
36
|
* @since 1.0.0
|
|
35
37
|
*/
|
|
@@ -52,7 +54,7 @@ export interface TestRender<E> {
|
|
|
52
54
|
export function testRender<R, E>(
|
|
53
55
|
fx: Fx.Fx<R, E, RenderEvent>,
|
|
54
56
|
options?:
|
|
55
|
-
&
|
|
57
|
+
& HappyDOMOptions
|
|
56
58
|
& { readonly [K in keyof DomServicesElementParams]?: (document: Document) => DomServicesElementParams[K] }
|
|
57
59
|
): Effect.Effect<
|
|
58
60
|
Scope.Scope | Exclude<Exclude<R, RenderTemplate>, RenderContext.RenderContext | CurrentEnvironment | DomServices>,
|
|
@@ -148,7 +150,9 @@ export function click<E>(
|
|
|
148
150
|
|
|
149
151
|
// internals
|
|
150
152
|
|
|
151
|
-
function getOrMakeWindow(
|
|
153
|
+
function getOrMakeWindow(
|
|
154
|
+
options?: HappyDOMOptions
|
|
155
|
+
): Effect.Effect<Scope.Scope, never, Window & GlobalThis> {
|
|
152
156
|
if (typeof window !== "undefined" && typeof document !== "undefined") {
|
|
153
157
|
return Effect.gen(function*(_) {
|
|
154
158
|
window.document.head.innerHTML = ""
|
package/src/internal/hydrate.ts
CHANGED
|
@@ -10,8 +10,8 @@ import { indexRefCounter2 } from "./indexRefCounter.js"
|
|
|
10
10
|
|
|
11
11
|
import { unsafeGet } from "@typed/context"
|
|
12
12
|
|
|
13
|
-
import { Either } from "effect"
|
|
14
|
-
import
|
|
13
|
+
import { Either, ExecutionStrategy, Exit } from "effect"
|
|
14
|
+
import * as Scope from "effect/Scope"
|
|
15
15
|
import type { Template } from "../Template.js"
|
|
16
16
|
import { CouldNotFindCommentError, CouldNotFindRootElement } from "./errors.js"
|
|
17
17
|
import { makeEventSource } from "./EventSource.js"
|
|
@@ -41,15 +41,16 @@ export const hydrateTemplate: (document: Document, ctx: RenderContext) => Render
|
|
|
41
41
|
templateStrings: TemplateStringsArray,
|
|
42
42
|
values: Values
|
|
43
43
|
): Fx.Fx<
|
|
44
|
-
Scope | Placeholder.Context<Values[number]>,
|
|
44
|
+
Scope.Scope | Placeholder.Context<Values[number]>,
|
|
45
45
|
Placeholder.Error<Values[number]>,
|
|
46
46
|
RenderEvent
|
|
47
47
|
> => {
|
|
48
48
|
return Fx.make((sink) =>
|
|
49
49
|
Effect.gen(function*(_) {
|
|
50
|
-
const context = yield* _(Effect.context<Scope>())
|
|
50
|
+
const context = yield* _(Effect.context<Scope.Scope>())
|
|
51
51
|
const hydrateCtx = unsafeGet(context, HydrateContext)
|
|
52
|
-
const
|
|
52
|
+
const parentScope = unsafeGet(context, Scope.Scope)
|
|
53
|
+
const scope = yield* _(Scope.fork(parentScope, ExecutionStrategy.sequential))
|
|
53
54
|
|
|
54
55
|
// If we're not longer hydrating, just render normally
|
|
55
56
|
if (hydrateCtx.hydrate === false) {
|
|
@@ -89,17 +90,18 @@ export const hydrateTemplate: (document: Document, ctx: RenderContext) => Render
|
|
|
89
90
|
renderContext,
|
|
90
91
|
onCause: sink.onFailure,
|
|
91
92
|
values,
|
|
92
|
-
makeHydrateContext
|
|
93
|
+
makeHydrateContext,
|
|
94
|
+
spreadIndex: values.length
|
|
93
95
|
}
|
|
94
96
|
|
|
95
97
|
// Connect our interpolated values to our template parts
|
|
96
|
-
const effects: Array<Effect.Effect<Scope | Placeholder.Context<Values[number]>, never, void>> = []
|
|
98
|
+
const effects: Array<Effect.Effect<Scope.Scope | Placeholder.Context<Values[number]>, never, void>> = []
|
|
97
99
|
for (const [part, path] of template.parts) {
|
|
98
100
|
const eff = renderPart2(part, where, path, ctx)
|
|
99
101
|
if (eff !== null) {
|
|
100
102
|
effects.push(
|
|
101
103
|
...(Array.isArray(eff) ? eff : [eff]) as Array<
|
|
102
|
-
Effect.Effect<Scope | Placeholder.Context<Values[number]>, never, void>
|
|
104
|
+
Effect.Effect<Scope.Scope | Placeholder.Context<Values[number]>, never, void>
|
|
103
105
|
>
|
|
104
106
|
)
|
|
105
107
|
}
|
|
@@ -119,9 +121,13 @@ export const hydrateTemplate: (document: Document, ctx: RenderContext) => Render
|
|
|
119
121
|
// Stop hydrating
|
|
120
122
|
hydrateCtx.hydrate = false
|
|
121
123
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
124
|
+
yield* _(
|
|
125
|
+
// Ensure our templates last forever in the DOM environment
|
|
126
|
+
// so event listeners are kept attached to the current Scope.
|
|
127
|
+
Effect.never,
|
|
128
|
+
// Close our scope whenever the current Fiber is interrupted
|
|
129
|
+
Effect.ensuring(Scope.close(scope, Exit.unit))
|
|
130
|
+
)
|
|
125
131
|
})
|
|
126
132
|
)
|
|
127
133
|
}
|
package/src/internal/parser.ts
CHANGED
|
@@ -50,6 +50,13 @@ export const SELF_CLOSING_TAGS = new Set([
|
|
|
50
50
|
"wbr"
|
|
51
51
|
])
|
|
52
52
|
|
|
53
|
+
const VALID_PROPS_NAMES = new Set([
|
|
54
|
+
"props",
|
|
55
|
+
"properties",
|
|
56
|
+
// First "." will already be matched
|
|
57
|
+
".."
|
|
58
|
+
])
|
|
59
|
+
|
|
53
60
|
export interface Parser {
|
|
54
61
|
parse(templateStrings: ReadonlyArray<string>): Template.Template
|
|
55
62
|
}
|
|
@@ -71,7 +78,8 @@ const chars = {
|
|
|
71
78
|
slash: "/",
|
|
72
79
|
greaterThan: ">",
|
|
73
80
|
lessThan: "<",
|
|
74
|
-
hypen: "-"
|
|
81
|
+
hypen: "-",
|
|
82
|
+
dot: "."
|
|
75
83
|
} as const
|
|
76
84
|
|
|
77
85
|
const isPartToken: TextPredicate = (input, pos) =>
|
|
@@ -126,7 +134,7 @@ const attributeMatches = {
|
|
|
126
134
|
closingTag: isElementCloseToken,
|
|
127
135
|
openTagEnd: isOpenTagEndToken,
|
|
128
136
|
selfClosingTagEnd: isSelfClosingTagEndToken
|
|
129
|
-
}
|
|
137
|
+
} satisfies Predicates
|
|
130
138
|
|
|
131
139
|
const attributeValueMatches = {
|
|
132
140
|
base: isWhitespaceToken,
|
|
@@ -386,7 +394,7 @@ class ParserImpl implements Parser {
|
|
|
386
394
|
return Skip
|
|
387
395
|
case "whitespace":
|
|
388
396
|
this.skipWhitespace()
|
|
389
|
-
return Continue([
|
|
397
|
+
return Continue([this.parseBooleanNode(name)])
|
|
390
398
|
case "equals": {
|
|
391
399
|
this.consumeAmount(1)
|
|
392
400
|
return Continue([this.parseAttributeValue(name)])
|
|
@@ -394,7 +402,7 @@ class ParserImpl implements Parser {
|
|
|
394
402
|
case "openTagEnd": {
|
|
395
403
|
this.consumeAmount(1)
|
|
396
404
|
this.context = "unknown"
|
|
397
|
-
return Break<Array<Template.Attribute>>(name ? [
|
|
405
|
+
return Break<Array<Template.Attribute>>(name ? [this.parseBooleanNode(name)] : undefined)
|
|
398
406
|
}
|
|
399
407
|
case "selfClosingTagEnd": {
|
|
400
408
|
this.consumeAmount(2)
|
|
@@ -439,7 +447,7 @@ class ParserImpl implements Parser {
|
|
|
439
447
|
this.skipWhitespace()
|
|
440
448
|
|
|
441
449
|
if (text === "") {
|
|
442
|
-
return
|
|
450
|
+
return this.parseBooleanNode(name)
|
|
443
451
|
}
|
|
444
452
|
|
|
445
453
|
switch (name[0]) {
|
|
@@ -450,7 +458,7 @@ class ParserImpl implements Parser {
|
|
|
450
458
|
|
|
451
459
|
if (property === "data") {
|
|
452
460
|
return this.addPart(new Template.DataPartNode(unsafeParsePartIndex(text)))
|
|
453
|
-
} else if (property
|
|
461
|
+
} else if (VALID_PROPS_NAMES.has(property)) {
|
|
454
462
|
return this.addPart(new Template.PropertiesPartNode(unsafeParsePartIndex(text)))
|
|
455
463
|
} else {
|
|
456
464
|
return this.addPart(new Template.PropertyPartNode(property, unsafeParsePartIndex(text)))
|
|
@@ -499,6 +507,14 @@ class ParserImpl implements Parser {
|
|
|
499
507
|
)
|
|
500
508
|
}
|
|
501
509
|
|
|
510
|
+
private parseBooleanNode(name: string) {
|
|
511
|
+
if (isSpread(name)) {
|
|
512
|
+
return this.addPart(new Template.PropertiesPartNode(unsafeParsePartIndex(name.slice(3))))
|
|
513
|
+
} else {
|
|
514
|
+
return new Template.BooleanNode(name)
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
|
|
502
518
|
private parseTextChildren(): Array<Template.Text> | null {
|
|
503
519
|
return this.parseArray(() => this.parseTextChild())
|
|
504
520
|
}
|
|
@@ -724,3 +740,7 @@ export function templateHash(strings: ReadonlyArray<string>) {
|
|
|
724
740
|
|
|
725
741
|
return btoa(String.fromCharCode(...new Uint8Array(hashes.buffer)))
|
|
726
742
|
}
|
|
743
|
+
|
|
744
|
+
function isSpread(str: string) {
|
|
745
|
+
return str[0] === chars.dot && str[1] === chars.dot && str[2] === chars.dot
|
|
746
|
+
}
|