oak-general-business/es/context/BackendRuntimeContext.d.ts

43 lines
2.1 KiB
TypeScript

/// <reference types="node" />
import { RuntimeContext } from './RuntimeContext';
import { EntityDict } from '../oak-app-domain';
import { SerializedData } from './FrontendRuntimeContext';
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/types/Entity';
import { BackendRuntimeContext as BRC } from 'oak-frontend-base';
import { AsyncRowStore } from 'oak-domain';
import { IncomingHttpHeaders } from 'http';
/**
* general数据结构要求的后台上下文
*/
export declare abstract class BackendRuntimeContext<ED extends EntityDict & BaseEntityDict> extends BRC<ED> implements RuntimeContext {
protected application?: Partial<ED['application']['Schema']>;
protected token?: Partial<ED['token']['Schema']>;
protected amIRoot?: boolean;
protected amIReallyRoot?: boolean;
protected rootMode?: boolean;
private temporaryUserId?;
private initializedMark;
constructor(store: AsyncRowStore<ED, BackendRuntimeContext<ED>>, data?: SerializedData, headers?: IncomingHttpHeaders);
refineOpRecords(): Promise<void>;
setTokenValue(tokenValue: string): Promise<void>;
setApplication(appId: string): Promise<void>;
/**
* 异步等待初始化完成
*/
protected initialized(): Promise<void>;
protected initialize(data?: SerializedData): Promise<void>;
getApplicationId(): ED["application"]["Schema"]["id"] | undefined;
getSystemId(): ED["application"]["Schema"]["systemId"] | undefined;
getApplication(): Partial<ED["application"]["Schema"]> | undefined;
openRootMode(): () => void;
getTokenValue(allowUnloggedIn?: boolean): "oak-root-token" | ED["token"]["Schema"]["id"] | undefined;
getToken(allowUnloggedIn?: boolean): Partial<ED["token"]["Schema"]> | undefined;
getCurrentUserId(allowUnloggedIn?: boolean): string;
setTemporaryUserId(userId: string | undefined): void;
protected getSerializedData(): SerializedData;
isRoot(): boolean;
isReallyRoot(): boolean;
sendMessage(data: ED['message']['CreateSingle']['data']): Promise<import("oak-domain").OperationResult<ED>>;
allowUserUpdate(): boolean;
}