@martinmilo/verve
Version:
TypeScript domain modeling library with field-level authorization, business rule validation, and context-aware access control
29 lines • 1.02 kB
TypeScript
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