UNPKG

@looker/wholly-artifact

Version:
98 lines (97 loc) 4.37 kB
import type { IAPIMethods } from '@looker/sdk-rtl'; import type { ColumnHeaders, IRowModel, SheetValues } from './RowModel'; export declare const compareDates: (a: Date, b: Date) => number; export interface IMaker<T> { new (values?: any): T; } export interface IRowDelta<T extends IRowModel> { updates: T[]; deletes: T[]; creates: T[]; } export declare class TypedRows<T> { rows: T[]; constructor(rows: T[], Maker?: IMaker<T>); add(value: T): void; where(predicate: (value: T) => boolean): TypedRows<T>; select<U>(selector: (value: T) => U): TypedRows<U>; toArray(): T[]; static from<U>(values: U[]): TypedRows<U>; static create<U>(values?: U[]): TypedRows<U>; } export interface IWhollyArtifact<T extends IRowModel, P> { sdk: IAPIMethods; namespace: string; tableName: string; header: ColumnHeaders; displayHeader: ColumnHeaders; keyColumn: string; rows: T[]; index: Record<string, T>; nextRow: number; checkHeader(header: ColumnHeaders): boolean; displayable(columnName: string): boolean; values(model: T): SheetValues; allValues(): SheetValues; typeRow<T extends IRowModel>(values?: any): T; typeRows<T extends IRowModel>(rows: SheetValues): T[]; refresh<T extends IRowModel>(values?: any): Promise<T[]>; save<T extends IRowModel>(model: T, force?: boolean): Promise<T>; create<T extends IRowModel>(model: T): Promise<T>; update<T extends IRowModel>(model: T, force?: boolean): Promise<T>; delete<T extends IRowModel>(model: T, force?: boolean): Promise<boolean>; checkOutdated<T extends IRowModel>(model: T, source?: T): Promise<boolean>; find(value: any, columnName?: string): T | undefined; loadRows<T extends IRowModel>(rows: SheetValues): T[]; toObject(): P[]; fromObject<T extends IRowModel>(obj: P[]): T[]; getDelta<T extends IRowModel>(): IRowDelta<T>; mergePurge<T extends IRowModel>(tab: SheetValues, delta: IRowDelta<T>): SheetValues; prepareBatch<T extends IRowModel>(tab: SheetValues, delta: IRowDelta<T>, force?: boolean): boolean; createUpdateBatch<T extends IRowModel>(items: T[]): Promise<T[]>; deleteBatch<T extends IRowModel>(items: T[]): Promise<T[]>; batchUpdate<T extends IRowModel>(force?: boolean): Promise<T[]>; } export interface ITabTable { header: ColumnHeaders; rows: IRowModel[]; } export declare abstract class WhollyArtifact<T extends IRowModel, P> extends TypedRows<T> implements IWhollyArtifact<T, P> { readonly sdk: IAPIMethods; readonly table: ITabTable; readonly keyColumn: string; index: Record<string, T>; namespace: string; tableName: string; constructor(sdk: IAPIMethods, table: ITabTable, keyColumn?: string); loadRows<T extends IRowModel>(rows: SheetValues): T[]; refresh<T extends IRowModel>(values?: any): Promise<T[]>; abstract typeRow<T extends IRowModel>(values?: any): T; typeRows<T extends IRowModel>(rows: SheetValues): T[]; private static toAT; checkHeader(): boolean; get header(): ColumnHeaders; get nextRow(): number; private createIndex; values<T extends IRowModel>(model: T): SheetValues; allValues(): SheetValues; save<T extends IRowModel>(model: T, force?: boolean): Promise<T>; checkId<T extends IRowModel>(model: T): void; create<T extends IRowModel>(model: T): Promise<T>; update<T extends IRowModel>(model: T, _force?: boolean): Promise<T>; find(value: any, columnName?: string): T | undefined; private _displayHeader; get displayHeader(): ColumnHeaders; delete<T extends IRowModel>(model: T, force?: boolean): Promise<boolean>; displayable(columnName: string): boolean; checkOutdated<T extends IRowModel>(model: T, source?: T): Promise<boolean>; fromObject<T extends IRowModel>(obj: P[]): T[]; toObject(): P[]; batchUpdate<T extends IRowModel>(_force?: boolean): Promise<T[]>; getDelta<T extends IRowModel>(): IRowDelta<T>; mergePurge<T extends IRowModel>(values: SheetValues, delta: IRowDelta<T>): SheetValues; prepareBatch<T extends IRowModel>(values: SheetValues, delta: IRowDelta<T>, force?: boolean): boolean; createUpdateBatch<T extends IRowModel>(items: T[]): Promise<T[]>; private updateRowsFromIndex; deleteBatch<T extends IRowModel>(items: T[]): Promise<T[]>; }