UNPKG

@tai-kun/surrealdb

Version:

The SurrealDB SDK for JavaScript

37 lines 1.54 kB
import type { Encoded, Formatter } from "@tai-kun/surrealdb/formatter"; import type { SlotLike } from "@tai-kun/surrealdb/types"; export interface SlotOptions<TValue = any> { readonly parse?: ((value: unknown) => TValue) | undefined; readonly formatter?: Formatter | undefined; readonly defaultValue?: TValue | Encoded<TValue>; } export default class Slot<TName extends string = any, TRequired extends boolean = any, TValue = any> implements SlotLike { readonly name: TName; readonly isRequired: TRequired; protected readonly fmt?: Formatter; readonly _parse: (value: unknown) => TValue; readonly defaultValue?: TValue | Encoded<TValue>; constructor(name: TName, isRequired: TRequired, options?: SlotOptions<TValue>); protected toOptions(): SlotOptions<TValue>; /** * @alias {@link type} */ as<TBind extends TValue>(): Slot<TName, true, TBind>; /** * @alias {@link type} */ as<TBind extends TValue>(parser: (value: unknown) => TBind): Slot<TName, true, TBind>; /** * @alias {@link as} */ type<TBind extends TValue>(): Slot<TName, true, TBind>; /** * @alias {@link as} */ type<TBind extends TValue>(parser: (value: unknown) => TBind): Slot<TName, true, TBind>; rename<const TName extends string>(name: TName): Slot<TName, TRequired, TValue>; default(defaultValue: TValue): Slot<TName, false, TValue>; optional(): Slot<TName, false, TValue>; required(): Slot<TName, true, TValue>; } //# sourceMappingURL=slot.d.ts.map