@looker/wholly-artifact
Version:
Looker Artifact API as a Table SDK
98 lines (97 loc) • 4.37 kB
TypeScript
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[]>;
}