From ae8ecd917a015fca3a33ae0cbefe88d3a0b8d1ae Mon Sep 17 00:00:00 2001 From: dangreen Date: Tue, 25 Aug 2026 00:04:14 +0400 Subject: [PATCH] feat(nanoviews): rename the truthy and falsy narrowing types `TruthyValueOrSignal` and `FalsyValueOrSignal` are named after a union that no longer exists, and `TruthySignal`/`FalsySignal` were never about signals at all: all four test `Accessor`. The suffix now says which input each one takes. `TruthyAccessor` and `FalsyAccessor` narrow something that has to be an accessor and answer `never` to anything else; `TruthySignalish` and `FalsySignalish` narrow a value that may not be one - the same opposition `AccessorValue` and `SignalishValue` carry. --- packages/nanoviews/src/flow/if.ts | 12 ++++++------ packages/nanoviews/src/internals/types/common.ts | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/packages/nanoviews/src/flow/if.ts b/packages/nanoviews/src/flow/if.ts index 57497077..cef90112 100644 --- a/packages/nanoviews/src/flow/if.ts +++ b/packages/nanoviews/src/flow/if.ts @@ -3,8 +3,8 @@ import { boolean } from 'kida' import type { - TruthyValueOrSignal, - FalsyValueOrSignal, + TruthySignalish, + FalsySignalish, Child } from '../internals/index.js' import { swap_ } from './swap.js' @@ -22,14 +22,14 @@ export function if_($value: T) { * @returns Block that renders decided child */ return ( - then_: (value: TruthyValueOrSignal) => Child, - else_?: (value: FalsyValueOrSignal) => Child + then_: (value: TruthySignalish) => Child, + else_?: (value: FalsySignalish) => Child ) => swap_( isAccessor($value) ? boolean($value) : $value as boolean, confition => ( confition - ? then_($value as TruthyValueOrSignal) - : else_?.($value as FalsyValueOrSignal) + ? then_($value as TruthySignalish) + : else_?.($value as FalsySignalish) ) ) } diff --git a/packages/nanoviews/src/internals/types/common.ts b/packages/nanoviews/src/internals/types/common.ts index 79a57ce1..d7e85ca8 100644 --- a/packages/nanoviews/src/internals/types/common.ts +++ b/packages/nanoviews/src/internals/types/common.ts @@ -31,13 +31,13 @@ export type AccessibleProps = { [K in keyof T]?: Signalish } -export type TruthySignal = T extends Accessor +export type TruthyAccessor = T extends Accessor ? U extends FalsyValue ? never : T : never -export type TruthyValueOrSignal = T extends Accessor +export type TruthySignalish = T extends Accessor ? U extends FalsyValue ? never : T @@ -45,13 +45,13 @@ export type TruthyValueOrSignal = T extends Accessor ? never : T -export type FalsySignal = T extends Accessor +export type FalsyAccessor = T extends Accessor ? U extends FalsyValue ? T : never : never -export type FalsyValueOrSignal = T extends Accessor +export type FalsySignalish = T extends Accessor ? U extends FalsyValue ? T : never