@player-ui/player
Version:
45 lines • 2.27 kB
TypeScript
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