UNPKG

@martinmilo/verve

Version:

TypeScript domain modeling library with field-level authorization, business rule validation, and context-aware access control

29 lines 1.02 kB
import type { FieldMetadata, FieldOptions } from "./types"; import type { ModelInstance } from "../../model/core/types"; import { BOUND_FIELD_METADATA, BOUND_FIELD_OPTIONS } from "../../constants"; import { VerveErrorList } from "../../errors"; import { Field } from "./Field"; export interface BoundField<T> { get(): T; unsafeGet(): T | undefined; set(value: T): void; unset(): void; is(value: T): boolean; isEmpty(): boolean; isPresent(): boolean; isValid(): boolean; generate(): void; compute(): T; validate(): VerveErrorList; isReadable(): boolean; isWritable(): boolean; [BOUND_FIELD_METADATA]: FieldMetadata; [BOUND_FIELD_OPTIONS]: FieldOptions; } export declare abstract class BoundField<T> { metadata: FieldMetadata; options: FieldOptions; constructor(metadata: FieldMetadata, options?: FieldOptions); static toBoundField<T>(model: ModelInstance, fieldName: string, field: Field<T>): BoundField<T>; } //# sourceMappingURL=BoundField.d.ts.map