From 8764c628d32e3e0bcb9f819d384df4761dbc060a Mon Sep 17 00:00:00 2001 From: Joris Date: Tue, 8 Apr 2025 09:17:33 +0200 Subject: Allow using null --- src/rx.ts | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/rx.ts b/src/rx.ts index 48db4fd..9884de8 100644 --- a/src/rx.ts +++ b/src/rx.ts @@ -5,6 +5,7 @@ export type Html = false | undefined + | null | string | number | Tag @@ -68,6 +69,7 @@ interface Attributes { type AttributeValue = undefined + | null | string | number | boolean @@ -93,7 +95,7 @@ export function h( x?: Attributes | Html, ...children: Array ): Tag { - if (x === undefined || x === false) { + if (x === undefined || x == null || x === false) { return { type: 'Tag', tagName, @@ -411,7 +413,7 @@ function rxRun( } function isRx(x: any): x is Rx { - return x !== undefined && x.type !== undefined && (x.type === "Var" || x.type === "Map" || x.type === "FlatMap" || x.type === 'Sequence' || x.type === 'Pure') + return x != null && x.type !== undefined && (x.type === "Var" || x.type === "Map" || x.type === "FlatMap" || x.type === 'Sequence' || x.type === 'Pure') } function isPure(x: any): x is Pure { @@ -646,7 +648,7 @@ function appendChild(state: State, element: Element, child: Html, lastAdded?: No }, lastAdded: appendRes.lastAdded, } - } else if (child === undefined || child === false) { + } else if (!child) { return { cancel: voidCancel, remove: voidRemove, @@ -663,31 +665,31 @@ function isSvg(tagName: string): boolean { } function isTag(x: any): x is Tag { - return x !== undefined && x.type === "Tag" + return x != null && x.type === "Tag" } function isWithState(x: any): x is WithState { - return x !== undefined && x.type === "WithState" + return x != null && x.type === "WithState" } function isWithState2(x: any): x is WithState2 { - return x !== undefined && x.type === "WithState2" + return x != null && x.type === "WithState2" } function isWithState3(x: any): x is WithState3 { - return x !== undefined && x.type === "WithState3" + return x != null && x.type === "WithState3" } function isWithState4(x: any): x is WithState4 { - return x !== undefined && x.type === "WithState4" + return x != null && x.type === "WithState4" } function isWithState5(x: any): x is WithState5 { - return x !== undefined && x.type === "WithState5" + return x != null && x.type === "WithState5" } function isWithState6(x: any): x is WithState6 { - return x !== undefined && x.type === "WithState6" + return x != null && x.type === "WithState6" } function appendNode(base: Element, node: Node, lastAdded?: Node) { -- cgit v1.2.3