@perspective-dev/client
    Preparing search index...

    Handler interface that you implement to provide custom data sources.

    All methods will be called by the VirtualServer when handling protocol messages from Perspective clients. Methods can return values directly or return Promises for asynchronous operations (e.g., database queries). Optional methods fall back to defaults documented per-method.

    interface VirtualServerHandler {
        getFeatures?(): Features | Promise<Features>;
        getHostedTables(): | (string | VirtualHostedTable)[]
        | Promise<(string | VirtualHostedTable)[]>;
        makeTable?(
            tableId: string,
            data: string | Uint8Array<ArrayBufferLike>,
        ): void | Promise<void>;
        tableColumnsSize?(tableId: string): number | Promise<number>;
        tableMakePort?(): number | Promise<number>;
        tableMakeView(
            tableId: string,
            viewId: string,
            config: ViewConfigUpdate,
        ): void | Promise<void>;
        tableSchema(
            tableId: string,
        ): Record<string, ColumnType> | Promise<Record<string, ColumnType>>;
        tableSize(tableId: string): number | Promise<number>;
        tableValidateExpression?(
            tableId: string,
            expression: string,
        ): ColumnType | Promise<ColumnType>;
        viewColumnSize?(
            viewId: string,
            config: ViewConfig,
        ): number | Promise<number>;
        viewDelete(viewId: string): void | Promise<void>;
        viewGetData(
            viewId: string,
            config: ViewConfig,
            schema: Record<string, ColumnType>,
            viewport: ViewWindow,
            dataSlice: VirtualDataSlice,
        ): void | Promise<void>;
        viewGetMinMax?(
            viewId: string,
            columnName: string,
            config: ViewConfig,
        ): { max: Scalar; min: Scalar } | Promise<{ max: Scalar; min: Scalar }>;
        viewSchema?(
            viewId: string,
            config: ViewConfig,
        ): Record<string, ColumnType> | Promise<Record<string, ColumnType>>;
        viewSize?(viewId: string): number | Promise<number>;
    }
    Index

    Methods

    • Defaults to no optional features.

      Returns Features | Promise<Features>

    • Parameters

      • tableId: string
      • data: string | Uint8Array<ArrayBufferLike>

      Returns void | Promise<void>

    • Defaults to the length of tableSchema(tableId).

      Parameters

      • tableId: string

      Returns number | Promise<number>

    • Defaults to port 0.

      Returns number | Promise<number>

    • Parameters

      Returns void | Promise<void>

    • Parameters

      • tableId: string

      Returns Record<string, ColumnType> | Promise<Record<string, ColumnType>>

    • Parameters

      • tableId: string

      Returns number | Promise<number>

    • Required when getFeatures() reports expressions: true.

      Parameters

      • tableId: string
      • expression: string

      Returns ColumnType | Promise<ColumnType>

    • Defaults to the length of viewSchema(viewId, config).

      Parameters

      Returns number | Promise<number>

    • Parameters

      • viewId: string

      Returns void | Promise<void>

    • Parameters

      • viewId: string
      • columnName: string
      • config: ViewConfig

      Returns { max: Scalar; min: Scalar } | Promise<{ max: Scalar; min: Scalar }>

    • Defaults to tableSchema(viewId).

      Parameters

      Returns Record<string, ColumnType> | Promise<Record<string, ColumnType>>

    • Defaults to tableSize(viewId).

      Parameters

      • viewId: string

      Returns number | Promise<number>