UNPKG

@player-ui/player

Version:

45 lines 2.27 kB
import { SyncHook, SyncWaterfallHook, SyncBailHook } from "tapable-ts"; import type { Logger } from "../../logger"; import type { BindingParser, BindingLike } from "../../binding"; import { BindingInstance } from "../../binding"; import type { BatchSetTransaction, Updates, DataModelOptions, DataModelWithParser, DataPipeline, DataModelMiddleware } from "../../data"; import { PipelinedDataModel } from "../../data"; import type { RawSetTransaction } from "../../types"; import { ReadOnlyDataController } from "./utils"; /** The orchestrator for player data */ export declare class DataController implements DataModelWithParser<DataModelOptions> { hooks: { resolve: SyncWaterfallHook<any[], Record<string, any>>; resolveDataStages: SyncWaterfallHook<[DataPipeline], Record<string, any>>; resolveDefaultValue: SyncBailHook<[BindingInstance], any, Record<string, any>>; onDelete: SyncHook<[any], Record<string, any>>; onSet: SyncHook<[BatchSetTransaction], Record<string, any>>; onGet: SyncHook<[any, any], Record<string, any>>; onUpdate: SyncHook<[Updates, DataModelOptions | undefined], Record<string, any>>; format: SyncWaterfallHook<[any, BindingInstance], Record<string, any>>; deformat: SyncWaterfallHook<[any, BindingInstance], Record<string, any>>; serialize: SyncWaterfallHook<[any], Record<string, any>>; }; private model?; private trash; private pathResolver; private baseMiddleware; private logger?; constructor(model: Record<any, unknown> | undefined, options: { /** A means of parsing a raw binding to a Binding object */ pathResolver: BindingParser; /** middleware to use. typically for validation */ middleware?: Array<DataModelMiddleware>; /** A logger to use */ logger?: Logger; }); getModel(): PipelinedDataModel; private resolveDataValue; set(transaction: RawSetTransaction, options?: DataModelOptions): Updates; private resolve; get(binding: BindingLike, options?: DataModelOptions): any; delete(binding: BindingLike, options?: DataModelOptions): void; serialize(): object; makeReadOnly(): ReadOnlyDataController; } //# sourceMappingURL=controller.d.ts.map