Skip to content

Latest commit

 

History

History
1668 lines (1007 loc) · 39.7 KB

README.md

File metadata and controls

1668 lines (1007 loc) · 39.7 KB

realue

realue

Table of contents

Interfaces

Type Aliases

Functions

Type Aliases

ErrorMutator

Ƭ ErrorMutator<E>: (error: E | undefined, name: Name) => void

Function that mutates an error. Used as the signature for the onChangeError callback of the NEVO pattern.

Type parameters

Name Type
E extends ErrorReport<any>

Type declaration

▸ (error, name): void

Parameters
Name Type
error E | undefined
name Name
Returns

void

Defined in

lib/types/ErrorMutator.ts:7


ErrorReport

Ƭ ErrorReport<T, U>: [U] extends [unknown[]] ? ErrorReportArray<U> : [U] extends [object] ? ErrorReportObject<U> : ErrorReportValue

Type parameters

Name Type
T T
U NonNullable<T>

Defined in

lib/types/ErrorReport.ts:5


ErrorReportArray

Ƭ ErrorReportArray<T>: Partial<{ [K in keyof T as number]: ErrorReport<T[K]> }> & { ?: ErrorReportValue } | ErrorReportValue

Type parameters

Name Type
T extends unknown[]

Defined in

lib/types/ErrorReportArray.ts:4


ErrorReportChildren

Ƭ ErrorReportChildren<T>: Partial<{ [K in keyof T]: ErrorReport<T[K]> }>

Type parameters

Name Type
T extends unknown[] | object

Defined in

lib/types/ErrorReportChildren.ts:3


ErrorReportObject

Ƭ ErrorReportObject<T>: Partial<{ [K in keyof T]: ErrorReport<T[K]> }> & { ?: ErrorReportValue } | ErrorReportValue

Type parameters

Name Type
T extends object

Defined in

lib/types/ErrorReportObject.ts:4


ErrorReportValue

Ƭ ErrorReportValue: string[]

Defined in

lib/types/ErrorReportValue.ts:1


ErrorTransformer

Ƭ ErrorTransformer<T, U>: (error: ErrorReport<T> | undefined) => ErrorReport<U> | undefined

Type parameters

Name
T
U

Type declaration

▸ (error): ErrorReport<U> | undefined

Parameters
Name Type
error ErrorReport<T> | undefined
Returns

ErrorReport<U> | undefined

Defined in

lib/types/ErrorTransformer.ts:3


Fetch

Ƭ Fetch<T, R>: (request: R, abortController?: AbortController) => Promise<T>

Type parameters

Name
T
R

Type declaration

▸ (request, abortController?): Promise<T>

Parameters
Name Type
request R
abortController? AbortController
Returns

Promise<T>

Defined in

lib/types/Fetch.ts:1


ItemId

Ƭ ItemId<T>: (index: number, item: T) => string

Type parameters

Name
T

Type declaration

▸ (index, item): string

Parameters
Name Type
index number
item T
Returns

string

Defined in

lib/types/ItemId.ts:1


ItemProps

Ƭ ItemProps<T, E>: NevoProps<T, E> & { id: string ; key: string }

Type parameters

Name Type
T T
E extends ErrorReport<any> = ErrorReport<T>

Defined in

lib/types/ItemProps.ts:4


Name

Ƭ Name: NameProperty | NameItem

Defined in

lib/types/Name.ts:4


NameItem

Ƭ NameItem: `${number}`

Defined in

lib/types/NameItem.ts:1


NameProperty

Ƭ NameProperty: string

Defined in

lib/types/NameProperty.ts:1


NeverNevoProps

Ƭ NeverNevoProps: Object

Excludes the props following the NEVO pattern. Useful for creating discriminated union types that enable component uses that do not necessitate the NEVO pattern.

Type declaration

Name Type
error? never
name? never
onChange? never
onChangeError? never
value? never

Defined in

lib/types/NeverNevoProps.ts:4


NevoName

Ƭ NevoName: keyof NevoProps<any>

Defined in

lib/types/NevoName.ts:3


NevoProps

Ƭ NevoProps<T, E>: Object

Set of properties that define the NEVO pattern:

  • name: The name used to identify the entity represented by the value.
  • error: An error object describing issues to be shown.
  • value: The value to be handled by a component.
  • onChange: The callback the component uses to notify the parent component about changes of the value.
  • onChangeError: The callback the component uses to notify the parent component about changes of the error.

Type parameters

Name Type
T T
E extends ErrorReport<any> = ErrorReport<T>

Type declaration

Name Type Description
error? E An error object describing issues to be shown.
name Name The name used to identify the entity represented by the value.
onChange? ValueMutator<NoInfer<T>> The callback the component uses to notify the parent component about changes of the value.
onChangeError? ErrorMutator<NoInfer<E>> The callback the component uses to notify the parent component about changes of the error.
value T The value to be handled by a component.

Defined in

lib/types/NevoProps.ts:14


NevoPropsAdapted

Ƭ NevoPropsAdapted<T, K, E>: Property<`${K}Name`, Name> & Property<`${K}Error`, E> & Property<K, T> & Property<`onChange${Capitalize<K>}`, ValueMutator<T>> & Property<`onChange${Capitalize<K>}Error`, ErrorMutator<E>>

Type parameters

Name Type
T T
K extends string
E extends ErrorReport<any> = ErrorReport<T>

Defined in

lib/types/NevoPropsAdapted.ts:7


OptionPropsAdapted

Ƭ OptionPropsAdapted<T, K>: Property<K, T> & Property<`onChange${Capitalize<K>}`, ValueMutator<T>>

Type parameters

Name Type
T T
K extends string

Defined in

lib/types/OptionPropsAdapted.ts:4


PromiseState

Ƭ PromiseState<T>: Object

Type parameters

Name
T

Type declaration

Name Type
promise? Promise<T | undefined>
reason? unknown
status PromiseStatus
value? T

Defined in

lib/types/PromiseState.ts:3


Property

Ƭ Property<K, V>: { [P in K]: { [Q in P]: V } }[K]

Returns an object type with a single property.

Type parameters

Name Type
K extends PropertyKey
V V

Defined in

lib/types/Property.ts:4


UseTransformOptions

Ƭ UseTransformOptions<T, U>: { onChange: ValueTransformer<U, T> ; value: ValueTransformer<T, U> } & { error: ErrorTransformer<T, U> ; onChangeError: ErrorTransformer<U, T> } | { error?: never ; onChangeError?: never }

Options for useTransform.

Type parameters

Name
T
U

Defined in

lib/types/UseTransformOptions.ts:7


ValueMutator

Ƭ ValueMutator<T>: (value: T, name: Name) => void

Function that changes a value. Used as the signature for the onChange callback of the NEVO pattern.

Type parameters

Name
T

Type declaration

▸ (value, name): void

Parameters
Name Type
value T
name Name
Returns

void

Defined in

lib/types/ValueMutator.ts:6


ValueRemover

Ƭ ValueRemover: (name: NameItem) => void

Function that removes an array item at index name.

Type declaration

▸ (name): void

Parameters
Name Type
name NameItem
Returns

void

Defined in

lib/types/ValueRemover.ts:6


ValueTransformer

Ƭ ValueTransformer<T, U>: (value: T) => U

Type parameters

Name
T
U

Type declaration

▸ (value): U

Parameters
Name Type
value T
Returns

U

Defined in

lib/types/ValueTransformer.ts:1


ValueValidator

Ƭ ValueValidator<T, E>: (value: T, name: Name, error: E | undefined) => Promise<E | undefined> | E | undefined

Function that valides a value with a given name and returns a promise that resolves to an error, if any.

Type parameters

Name Type
T T
E extends ErrorReport<any> = ErrorReport<T>

Type declaration

▸ (value, name, error): Promise<E | undefined> | E | undefined

Parameters
Name Type
value T
name Name
error E | undefined
Returns

Promise<E | undefined> | E | undefined

Defined in

lib/types/ValueValidator.ts:6

Functions

adapt

adapt<T, K>(props, propertyName): NevoPropsAdapted<T, K>

Adapts the provided props to the specified propertyName.

Type parameters

Name Type
T T
K extends string

Parameters

Name Type Description
props NevoProps<T> Properties according to the Nevo pattern.
propertyName K Name of the value property.

Returns

NevoPropsAdapted<T, K>

Example

<SomeComponent {...property("value")} {...adapt(property("option"), "option")} />

Defined in

lib/tools/adapt.ts:17


capitalize

capitalize<T>(value): Capitalize<T>

Type parameters

Name Type
T extends string

Parameters

Name Type
value T

Returns

Capitalize<T>

Defined in

lib/tools/capitalize.ts:1


changeError

changeError<T, E>(error, itemName, itemError): E | undefined

Type parameters

Name Type
T extends undefined | object
E extends ErrorReportObject<NonNullable<T>>

Parameters

Name Type
error undefined | E
itemName "" | keyof E
itemError undefined | ErrorReportValue | E[keyof E]

Returns

E | undefined

Defined in

lib/tools/changeError.ts:12

changeError<T, E>(error, itemName, itemError): E | undefined

Type parameters

Name Type
T extends undefined | any[]
E extends ErrorReportArray<NonNullable<T>>

Parameters

Name Type
error undefined | E
itemName number | ""
itemError undefined | ErrorReportValue | E[number]

Returns

E | undefined

Defined in

lib/tools/changeError.ts:20


childrenError

childrenError<T>(error?): Partial<{ [K in keyof T as number]: ErrorReport<T[K]> }> | undefined

Type parameters

Name Type
T extends unknown[]

Parameters

Name Type
error? ErrorReportArray<T>

Returns

Partial<{ [K in keyof T as number]: ErrorReport<T[K]> }> | undefined

Defined in

lib/tools/childrenError.ts:10

childrenError<T>(error?): Partial<{ [K in keyof T]: ErrorReport<T[K]> }> | undefined

Type parameters

Name Type
T extends object

Parameters

Name Type
error? ErrorReportObject<T>

Returns

Partial<{ [K in keyof T]: ErrorReport<T[K]> }> | undefined

Defined in

lib/tools/childrenError.ts:17


disable

disable(condition?): null | { onChange: undefined = undefined; onChangeError: undefined = undefined }

Returns the props with onChange and onChangeError the condition is truthy. Useful for disabling edits in some cases.

Parameters

Name Type Description
condition? boolean | PromiseState<unknown> Boolean that disables changes if true, or PromiseState

Returns

null | { onChange: undefined = undefined; onChangeError: undefined = undefined }

The props necessary to disable changes or not.

Example

<>
  <Component {...props} {...disable(promiseState.status === "pending")} />
  <Component {...props} {...disable(promiseState)} />
</>

Defined in

lib/tools/disable.ts:17


globalError

globalError<T>(error?): ErrorReportValue | undefined

Type parameters

Name
T

Parameters

Name Type
error? ErrorReport<T>

Returns

ErrorReportValue | undefined

Defined in

lib/tools/globalError.ts:5


isArray

isArray(arg): arg is any[]

Parameters

Name Type
arg any

Returns

arg is any[]

Defined in

lib/tools/isArray.ts:1


isEqualError

isEqualError<T>(a?, b?): boolean

Returns true if the two provided error values have the same errors messages.

Type parameters

Name
T

Parameters

Name Type Description
a? ErrorReport<T> Error value
b? ErrorReport<T> Error value

Returns

boolean

true if the two provided error values are equal.

Defined in

lib/tools/isEqualError.ts:12


itemIdDefault

itemIdDefault<T>(index, item): string

Default function used by useArray for defining the unique identifier of an item.

Type parameters

Name
T

Parameters

Name Type Description
index number Array index of the item.
item T Value of the item.

Returns

string

A unique identifier string for this item.

Defined in

lib/tools/itemIdDefault.ts:8


normalize

normalize<T, K>(props, propertyName): NevoProps<T>

Normalizes the provided props from the provided propertyName.

Type parameters

Name Type
T T
K extends string

Parameters

Name Type Description
props NevoPropsAdapted<T, K> Propertyes according to the Nevo pattern.
propertyName K Name of the value property.

Returns

NevoProps<T>

Example

<SomeComponent {...normalize("option", props)} />

Defined in

lib/tools/normalize.ts:17


normalizeError

normalizeError<T>(error): undefined | ErrorReport<T>

Type parameters

Name
T

Parameters

Name Type
error undefined | ErrorReport<T>

Returns

undefined | ErrorReport<T>

Defined in

lib/tools/normalizeError.ts:5


useAbortController

useAbortController(): () => AbortController

Creates an on-demand AbortController that triggers when the provided inputs change (at least when the element unmounts).

Returns

fn

Callback that returns a new AbortController.

▸ (): AbortController

Returns

AbortController

Defined in

lib/hooks/useAbortController.ts:13


useArray

useArray<A, G, T, E>(props, itemId?): ItemCallable<T, E>

Takes an array and returns a function that generates the required props for handling an array item value. That function also contains three callables: loop, add, and remove.

Type parameters

Name Type
A extends undefined | any[]
G extends ErrorReportArray<NonNullable<A>>
T A extends H[] ? H : never
E extends ErrorReportArray<any> = ErrorReport<T>

Parameters

Name Type Default value Description
props NevoProps<A, G> undefined The props holding the array value.
itemId ItemId<T> itemIdDefault An optional function that returns a unique identifier for a given array item.

Returns

ItemCallable<T, E>

The item function that returns the props for a specific item index.

Defined in

lib/hooks/useArray.ts:31


useChange

useChange<T>(props, transformValue?): undefined | () => void

Type parameters

Name
T

Parameters

Name Type Default value
props Pick<NevoProps<T>, "name" | "value" | "onChange"> undefined
transformValue (value: T) => T identity

Returns

undefined | () => void

Defined in

lib/hooks/useChange.ts:4


useDebounce

useDebounce<T>(props, delay?): Object

Type parameters

Name
T

Parameters

Name Type
props Pick<NevoProps<T>, "name" | "value" | "onChange">
delay? number

Returns

Object

Name Type Description
name string The name used to identify the entity represented by the value.
onChange undefined | ValueMutator<T> -
value T -

Defined in

lib/hooks/useDebounce.ts:9


useFetch

useFetch<T, Q>(fetch?, props?): [PromiseState<T>, (request?: Q) => void]

Handles a single concurrent request and updates the value or error through the provided onChange and onChangeError callbacks. The callback in the returned tuple enables issuing new request. If the callback is called with no argument, it resets the request back to the idle state, aborting the prior request if it was not fulfilled.

Type parameters

Name Type
T extends object
Q extends unknown

Parameters

Name Type Description
fetch Fetch<T, Q> An optional request fetcher that defaults to using the standard fetch method.
props? NevoProps<T> The optional onChange and onChangeError callbacks to notify about the resulting value or error, and the name.

Returns

[PromiseState<T>, (request?: Q) => void]

A tuple consisting of the current request state and a callback to issue a new request.

Defined in

lib/hooks/useFetch.ts:19


useInput

useInput<T, E>(props, extractValue): undefined | (event: TargetedEvent<HTMLInputElement, Event>) => void

Type parameters

Name Type
T T
E extends ErrorReportArray<any>

Parameters

Name Type
props NevoProps<T, E>
extractValue (element: HTMLInputElement) => T

Returns

undefined | (event: TargetedEvent<HTMLInputElement, Event>) => void

Defined in

lib/hooks/useInput.ts:4


useLog

useLog(title, props): void

Parameters

Name Type
title string
props Props

Returns

void

Defined in

lib/hooks/useLog.ts:6


useObject

useObject<T, E>(props): PropertyCallable<NonNullable<T>>

Takes an object and returns a function that generates the required props for handling an object property value.

Type parameters

Name Type
T extends undefined | object
E extends ErrorReportObject<NonNullable<T>> = ErrorReportObject<NonNullable<T>>

Parameters

Name Type Description
props NevoProps<T, E> The props holding the object value.

Returns

PropertyCallable<NonNullable<T>>

The property function that returns the props for a specific property name.

Defined in

lib/hooks/useObject.ts:13


useOption

useOption<T, K>(props, propertyName): OptionPropsAdapted<T, K>

Type parameters

Name Type
T T
K extends string

Parameters

Name Type Description
props NevoProps<T> Properties according to the Nevo pattern.
propertyName K

Returns

OptionPropsAdapted<T, K>

Defined in

lib/hooks/useOption.ts:10


usePrevious

usePrevious<T>(value): undefined | T

Returns the previous value.

Type parameters

Name
T

Parameters

Name Type Description
value T Value from which to get the previous value from.

Returns

undefined | T

The previous value.

Defined in

lib/hooks/usePrevious.ts:9


usePreviousArgument

usePreviousArgument<T, U>(callback): (value: T) => U

Returns a unary callback that calls the provided callback with both the current and previous value of the argument. Can be used for computations that require working with the previous value.

Type parameters

Name
T
U

Parameters

Name Type Description
callback (value: T, previousValue: undefined | T) => U The callback that receives both the current and previous value of the argument.

Returns

fn

A callback that receives the argument value and returns the result of the provided callback.

▸ (value): U

Parameters
Name Type
value T
Returns

U

Defined in

lib/hooks/usePreviousArgument.ts:9


usePreviousArgumentList

usePreviousArgumentList<T, U>(callback): (...current: T) => U

Returns a callback that calls the provided callback with both the current and previous value of the argument list.

Type parameters

Name Type
T extends any[]
U U

Parameters

Name Type Description
callback (current: T, previous: undefined | T) => U The callback that receives both the current and previous value of the argument list.

Returns

fn

A callback that receives the argument value list and returns the result of the provided callback.

▸ (...current): U

Parameters
Name Type
...current T
Returns

U

Defined in

lib/hooks/usePreviousArgumentList.ts:9


usePromise

usePromise<T>(promise?): PromiseState<T>

Returns a promise state object to track the provided promise. Ignores outdated promises or ones that resolve when the component got unmounted.

Type parameters

Name
T

Parameters

Name Type Description
promise? T | Promise<T> The promise to track.

Returns

PromiseState<T>

A promise state object

Defined in

lib/hooks/usePromise.ts:18


useRemove

useRemove(props): undefined | () => void

Parameters

Name Type
props Object
props.name string
props.onRemove? ValueRemover

Returns

undefined | () => void

Defined in

lib/hooks/useRemove.ts:4


useResilient

useResilient<T>(value, trigger?): T

Returns the provided value when trigger was truthy. By default, trigger is true when value is not undefined.

Type parameters

Name
T

Parameters

Name Type Description
value T The value to keep a non-undefined value of.
trigger boolean The trigger that sets the last value if it is truthy.

Returns

T

The last non-undefined version of the provided value, or undefined.

Defined in

lib/hooks/useResilient.ts:11


useSyncedProps

useSyncedProps<T>(props?): Pick<NevoProps<T>, "name" | "error" | "value"> & Required<Pick<NevoProps<T>, "onChange" | "onChangeError">>

Creates a local state of value and error values and syncs them with the parent props, if provided. Usefull if you need to handle a local state while ensuring that new values provided from the parent component are taken into consideration, or to let the parent know about value and error changes.

Type parameters

Name
T

Parameters

Name Type Description
props? NevoProps<T> Optional properties according to the Nevo pattern.

Returns

Pick<NevoProps<T>, "name" | "error" | "value"> & Required<Pick<NevoProps<T>, "onChange" | "onChangeError">>

Properties according to the Nevo pattern.

Defined in

lib/hooks/useSyncedProps.ts:11


useSyncedSignal

useSyncedSignal<T>(value): [T, (value: T) => void]

Type parameters

Name
T

Parameters

Name Type
value T

Returns

[T, (value: T) => void]

Defined in

lib/hooks/useSyncedSignal.ts:3


useSyncedState

useSyncedState<T>(props): [T, (value: T) => void]

Creates a state that is synced with its parent. If props.value changes, the internal state is also updated. Calls to onChangeState(value) trigger a call of props.onChange(state, props.name).

Type parameters

Name
T

Parameters

Name Type Description
props NevoProps<T> The NEVO props.

Returns

[T, (value: T) => void]

The [state, onChangeState] tuple.

Defined in

lib/hooks/useSyncedState.ts:12


useTransform

useTransform<T, U>(props, options): NevoProps<U>

Transforms the incoming value and the outgoing value passed to the onChange callback, and optionally the incoming error and the outgoing error passed to the onChangeError callback. If the incoming and outgoing error transforms are not provided, returned props will not contain error nor onChangeError.

Type parameters

Name
T
U

Parameters

Name Type Description
props NevoProps<T> The props holding the value and onChange callbacks.
options UseTransformOptions<T, U> Options for useTransform.

Returns

NevoProps<U>

Updated props.

Defined in

lib/hooks/useTransform.ts:17


useValidator

useValidator<T, N, E>(props, onValidate?): PromiseState<E | undefined>

Type parameters

Name Type
T T
N extends string
E extends ErrorReportValue

Parameters

Name Type
props NevoProps<T, E>
onValidate? ValueValidator<T, E>

Returns

PromiseState<E | undefined>

Defined in

lib/hooks/useValidator.ts:16

useValidator<T, N, E>(props, onValidate?): PromiseState<E | undefined>

Type parameters

Name Type
T extends object
N extends string
E extends ErrorReportObject<T>

Parameters

Name Type
props NevoProps<T, E>
onValidate? ValueValidator<T, E>

Returns

PromiseState<E | undefined>

Defined in

lib/hooks/useValidator.ts:20

useValidator<T, N, E>(props, onValidate?): PromiseState<E | undefined>

Type parameters

Name Type
T extends unknown[]
N extends string
E extends ErrorReportArray<T>

Parameters

Name Type
props NevoProps<T, E>
onValidate? ValueValidator<T, E>

Returns

PromiseState<E | undefined>

Defined in

lib/hooks/useValidator.ts:28


withoutNevoProps

withoutNevoProps<P>(props): Omit<P, NevoName>

Returns the properties without the ones according to the Nevo pattern.

Type parameters

Name Type
P extends object

Parameters

Name Type Description
props P Properties according to the Nevo pattern with extra properties.

Returns

Omit<P, NevoName>

The propterties without the ones according to the Nevo pattern.

Defined in

lib/tools/withoutNevoProps.ts:9