@platform/cell.typesystem
Version:
The 'strongly typed sheets' system of the CellOS.
59 lines (58 loc) • 1.92 kB
TypeScript
import { Observable, Subject } from 'rxjs';
import { t } from './common';
import { TypedSheetState } from './TypedSheetState';
export declare class TypedSheet<T = {}> implements t.ITypedSheet<T> {
static client: (client: t.IHttpClient) => {
load: <T_1 = {}>(ns: string | t.INsUri) => Promise<t.ITypedSheet<T_1>>;
};
static ctx(args: {
fetch: t.ISheetFetcher;
cache?: t.IMemoryCache;
event$?: Subject<t.TypedSheetEvent>;
dispose$?: Observable<{}>;
pool?: t.ISheetPool;
}): t.SheetCtx;
static load<T = {}>(args: {
fetch: t.ISheetFetcher;
ns: string | t.INsUri;
cache?: t.IMemoryCache;
event$?: Subject<t.TypedSheetEvent>;
pool?: t.ISheetPool;
}): Promise<t.ITypedSheet<T>>;
static create<T = {}>(args: {
fetch: t.ISheetFetcher;
implements: string | t.INsUri;
ns?: string | t.INsUri;
cache?: t.IMemoryCache;
event$?: Subject<t.TypedSheetEvent>;
pool?: t.ISheetPool;
}): Promise<t.ITypedSheet<T>>;
private constructor();
dispose(): void;
private readonly _ctx;
private readonly _errorList;
private readonly _dispose$;
private readonly _typeDefs;
private _types;
private _data;
readonly uri: t.INsUri;
readonly implements: t.INsUri;
readonly state: TypedSheetState;
readonly pool: t.ISheetPool;
readonly dispose$: Observable<{}>;
readonly event$: Observable<t.TypedSheetEvent>;
get isDisposed(): boolean;
get ok(): boolean;
get errors(): t.ITypeError[];
get types(): {
typename: string;
columns: t.IColumnTypeDef<t.IType>[];
}[];
toString(): string;
info<P extends t.INsProps = t.INsProps>(): Promise<{
exists: boolean;
ns: P;
}>;
data<D = T>(input: string | t.ITypedSheetDataArgs): t.ITypedSheetData<D>;
private throwIfDisposed;
}