适配context的改动
This commit is contained in:
parent
39c278fda4
commit
a266750e2b
|
|
@ -3,21 +3,21 @@ import { StorageSchema } from "oak-domain/lib/types/Storage";
|
|||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { Checker, CheckerType, TxnOption } from 'oak-domain/lib/types';
|
||||
import { TreeStore, TreeStoreOperateOption } from 'oak-memory-tree-store';
|
||||
import { SyncContext, SyncRowStore } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { FrontendRuntimeContext, SyncRowStore } from 'oak-domain/lib/store/SyncRowStore';
|
||||
interface CachStoreOperation extends TreeStoreOperateOption {
|
||||
checkerTypes?: CheckerType[];
|
||||
}
|
||||
export declare class CacheStore<ED extends EntityDict & BaseEntityDict, Cxt extends SyncContext<ED>> extends TreeStore<ED> implements SyncRowStore<ED, SyncContext<ED>> {
|
||||
export declare class CacheStore<ED extends EntityDict & BaseEntityDict, Cxt extends FrontendRuntimeContext<ED>> extends TreeStore<ED> implements SyncRowStore<ED, FrontendRuntimeContext<ED>> {
|
||||
private triggerExecutor;
|
||||
constructor(storageSchema: StorageSchema<ED>);
|
||||
aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], context: SyncContext<ED>, option: OP): AggregationResult<ED[T]['Schema']>;
|
||||
protected cascadeUpdate<T extends keyof ED, OP extends CachStoreOperation>(entity: T, operation: ED[T]['Operation'], context: SyncContext<ED>, option: OP): OperationResult<ED>;
|
||||
aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], context: FrontendRuntimeContext<ED>, option: OP): AggregationResult<ED[T]['Schema']>;
|
||||
protected cascadeUpdate<T extends keyof ED, OP extends CachStoreOperation>(entity: T, operation: ED[T]['Operation'], context: FrontendRuntimeContext<ED>, option: OP): OperationResult<ED>;
|
||||
operate<T extends keyof ED, OP extends CachStoreOperation>(entity: T, operation: ED[T]['Operation'], context: Cxt, option: OP): OperationResult<ED>;
|
||||
sync<Cxt extends SyncContext<ED>>(opRecords: Array<OpRecord<ED>>, context: Cxt): void;
|
||||
sync<Cxt extends FrontendRuntimeContext<ED>>(opRecords: Array<OpRecord<ED>>, context: Cxt): void;
|
||||
check<T extends keyof ED>(entity: T, operation: {
|
||||
action: ED[T]['Action'];
|
||||
action: ED[T]['Action'];FrontendRuntimeContext
|
||||
data?: ED[T]['Operation']['data'];
|
||||
filter?: ED[T]['Operation']['filter'];
|
||||
filter?: ED[T]['Operation']['filter'];FrontendRuntimeContext
|
||||
}, context: Cxt, checkerTypes?: CheckerType[]): void;
|
||||
select<T extends keyof ED, OP extends SelectOption, Cxt extends SyncContext<ED>>(entity: T, selection: ED[T]['Selection'], context: Cxt, option: OP): Partial<ED[T]["Schema"]>[];
|
||||
registerChecker<T extends keyof ED>(checker: Checker<ED, T, Cxt>): void;
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { EntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/types/Entity';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { SerializedData } from './FrontendRuntimeContext';
|
||||
import { BriefEnv } from 'oak-domain/lib/types/Environment';
|
||||
export declare abstract class BackendRuntimeContext<ED extends EntityDict & BaseEntityDict> extends AsyncContext<ED> {
|
||||
export declare abstract class BackendRuntimeContext<ED extends EntityDict & BaseEntityDict> extends BackendRuntimeContext<ED> {
|
||||
private subscriberId?;
|
||||
private be?;
|
||||
private ns?;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { EntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/types/Entity';
|
||||
import { SyncContext, SyncRowStore } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { FrontendRuntimeContext, SyncRowStore } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { Aspect } from 'oak-domain/lib/types';
|
||||
import { SubScriber } from '../features/subscriber';
|
||||
|
|
@ -17,7 +17,7 @@ export type SerializedData = {
|
|||
oakFrom?: string;
|
||||
};
|
||||
};
|
||||
export declare abstract class FrontendRuntimeContext<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends SyncContext<ED> {
|
||||
export declare abstract class FrontendRuntimeContext<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends FrontendRuntimeContext<ED> {
|
||||
subscriber: SubScriber<ED, Cxt, FrontendRuntimeContext<ED, Cxt, AD>, AD>;
|
||||
env: Environment;
|
||||
navigator: Navigator;
|
||||
|
|
|
|||
|
|
@ -2,14 +2,14 @@ import { AggregationResult, AuthDeduceRelationMap, EntityDict, OperationResult,
|
|||
import { TreeStore, TreeStoreOperateOption, TreeStoreSelectOption } from 'oak-memory-tree-store';
|
||||
import { StorageSchema, Trigger, Checker } from "oak-domain/lib/types";
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { AsyncContext, AsyncRowStore } from "oak-domain/lib/store/AsyncRowStore";
|
||||
import { BackendRuntimeContext, AsyncRowStore } from "oak-domain/lib/store/AsyncRowStore";
|
||||
interface DebugStoreOperateOption extends TreeStoreOperateOption {
|
||||
noLock?: true;
|
||||
}
|
||||
interface DebugStoreSelectOption extends TreeStoreSelectOption {
|
||||
noLock?: true;
|
||||
}
|
||||
export declare class DebugStore<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>> extends TreeStore<ED> implements AsyncRowStore<ED, Cxt> {
|
||||
export declare class DebugStore<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>> extends TreeStore<ED> implements AsyncRowStore<ED, Cxt> {
|
||||
private executor;
|
||||
private relationAuth;
|
||||
private dataLoaded;
|
||||
|
|
@ -23,7 +23,7 @@ export declare class DebugStore<ED extends EntityDict & BaseEntityDict, Cxt exte
|
|||
begin(option?: TxnOption): Promise<string>;
|
||||
commit(txnId: string): Promise<void>;
|
||||
rollback(txnId: string): Promise<void>;
|
||||
protected cascadeUpdateAsync<T extends keyof ED, OP extends DebugStoreOperateOption>(entity: T, operation: ED[T]['Operation'], context: AsyncContext<ED>, option: OP): Promise<OperationResult<ED>>;
|
||||
protected cascadeUpdateAsync<T extends keyof ED, OP extends DebugStoreOperateOption>(entity: T, operation: ED[T]['Operation'], context: BackendRuntimeContext<ED>, option: OP): Promise<OperationResult<ED>>;
|
||||
operate<T extends keyof ED, OP extends DebugStoreOperateOption>(entity: T, operation: ED[T]['Operation'], context: Cxt, option: OP): Promise<OperationResult<ED>>;
|
||||
select<T extends keyof ED, OP extends DebugStoreSelectOption>(entity: T, selection: ED[T]['Selection'], context: Cxt, option: OP): Promise<Partial<ED[T]["Schema"]>[]>;
|
||||
count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]["Selection"], "filter" | "count">, context: Cxt, option: OP): Promise<number>;
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import { CommonAspectDict } from 'oak-common-aspect';
|
|||
import { Feature } from '../types/Feature';
|
||||
import { CacheStore } from '../cacheStore/CacheStore';
|
||||
import { OakUserException } from 'oak-domain/lib/types/Exception';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { LocalStorage } from './localStorage';
|
||||
interface CacheSelectOption extends SelectOption {
|
||||
ignoreKeepFreshRule?: true;
|
||||
|
|
@ -18,7 +18,7 @@ type RefreshOption = {
|
|||
onlyReturnFresh?: boolean;
|
||||
};
|
||||
};
|
||||
export declare class Cache<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
export declare class Cache<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
cacheStore: CacheStore<ED, FrontCxt>;
|
||||
private aspectWrapper;
|
||||
private syncEventsCallbacks;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { EntityDict, Aspect } from 'oak-domain/lib/types';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { Cache } from './cache';
|
||||
import { Feature } from '../types/Feature';
|
||||
import { RelationAuth } from './relationAuth';
|
||||
|
|
@ -13,7 +13,7 @@ interface IMenu<ED extends EntityDict & BaseEntityDict, T extends keyof ED> {
|
|||
paths?: string[];
|
||||
url?: string;
|
||||
}
|
||||
export declare class ContextMenuFactory<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
export declare class ContextMenuFactory<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
cache: Cache<ED, Cxt, FrontCxt, AD>;
|
||||
menus?: IMenu<ED, keyof ED>[];
|
||||
relationAuth: RelationAuth<ED, Cxt, FrontCxt, AD>;
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ import { Feature } from "../types/Feature";
|
|||
import { EntityDict, Aspect, AspectWrapper } from 'oak-domain/lib/types';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare class Geo<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare class Geo<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
private aspectWrapper;
|
||||
constructor(aspectWrapper: AspectWrapper<ED, Cxt, AD>);
|
||||
searchPoi(value: string, areaCode?: string, typeCode?: string, indexFrom?: number, count?: number): Promise<{
|
||||
|
|
|
|||
|
|
@ -20,9 +20,9 @@ import { Style } from './style';
|
|||
import { SubScriber } from './subscriber';
|
||||
import { ContextMenuFactory } from './contextMenuFactory';
|
||||
import { Geo } from './geo';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare function initializeStep2<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>>(features: Pick<BasicFeatures<ED, Cxt, FrontCxt, AD>, 'localStorage' | 'environment' | 'message'>, aspectWrapper: AspectWrapper<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>, storageSchema: StorageSchema<ED>, frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt, checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>, authDeduceRelationMap: AuthDeduceRelationMap<ED>, colorDict: ColorDict<ED>, getFullDataFn: () => any, getSubscribePointFn: () => Promise<{
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare function initializeStep2<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>>(features: Pick<BasicFeatures<ED, Cxt, FrontCxt, AD>, 'localStorage' | 'environment' | 'message'>, aspectWrapper: AspectWrapper<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>, storageSchema: StorageSchema<ED>, frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt, checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>, authDeduceRelationMap: AuthDeduceRelationMap<ED>, colorDict: ColorDict<ED>, getFullDataFn: () => any, getSubscribePointFn: () => Promise<{
|
||||
url: string;
|
||||
path: string;
|
||||
}>, makeBridgeUrlFn?: (url: string, headers?: Record<string, string>) => string, selectFreeEntities?: (keyof ED)[], updateFreeDict?: {
|
||||
|
|
@ -47,7 +47,7 @@ export declare function initializeStep1(): {
|
|||
localStorage: LocalStorage;
|
||||
navigator: Navigator;
|
||||
};
|
||||
export type BasicFeatures<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>> = {
|
||||
export type BasicFeatures<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>> = {
|
||||
cache: Cache<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>;
|
||||
location: Location;
|
||||
runningTree: RunningTree<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>;
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@ import { EntityDict } from 'oak-domain/lib/types';
|
|||
import { Feature } from '../types/Feature';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { Cache } from './cache';
|
||||
import { LocalStorage } from './localStorage';
|
||||
import { Environment } from './environment';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { Scope, TranslateOptions } from 'i18n-js';
|
||||
export declare class Locales<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
export declare class Locales<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
static REFRESH_STALE_INTERVAL: number;
|
||||
private cache;
|
||||
private localStorage;
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ import { Feature } from "../types/Feature";
|
|||
import { EntityDict, Aspect, AspectWrapper } from 'oak-domain/lib/types';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { Sheet2JSONOpts } from "xlsx";
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { Sheet2JSONOpts } from "xlsx";BackendRuntimeContext
|
||||
export declare class Port<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
private aspectWrapper;
|
||||
constructor(aspectWrapper: AspectWrapper<ED, Cxt, AD>);
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@ import { EntityDict, Aspect, AuthDeduceRelationMap } from 'oak-domain/lib/types'
|
|||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { Feature } from '../types/Feature';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { Cache } from './cache';
|
||||
export declare class RelationAuth<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
export declare class RelationAuth<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
private cache;
|
||||
private baseRelationAuth;
|
||||
private authDeduceRelationMap;
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@ import { Cache } from './cache';
|
|||
import { Pagination } from '../types/Pagination';
|
||||
import { Feature } from '../types/Feature';
|
||||
import { ActionDef } from '../types/Page';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { RelationAuth } from './relationAuth';
|
||||
export declare const MODI_NEXT_PATH_SUFFIX = ":next";
|
||||
declare abstract class Node<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
declare abstract class Node<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
protected entity: T;
|
||||
protected schema: StorageSchema<ED>;
|
||||
protected projection?: ED[T]['Selection']['data'] | (() => ED[T]['Selection']['data']);
|
||||
|
|
@ -41,7 +41,7 @@ declare abstract class Node<ED extends EntityDict & BaseEntityDict, T extends ke
|
|||
setProjection(projection: ED[T]['Selection']['data']): void;
|
||||
protected judgeRelation(attr: string): string | 0 | 1 | string[] | 2 | -1;
|
||||
}
|
||||
declare class ListNode<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Node<ED, T, Cxt, FrontCxt, AD> {
|
||||
declare class ListNode<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Node<ED, T, Cxt, FrontCxt, AD> {
|
||||
private updates;
|
||||
protected children: Record<string, SingleNode<ED, T, Cxt, FrontCxt, AD>>;
|
||||
private filters;
|
||||
|
|
@ -49,7 +49,7 @@ declare class ListNode<ED extends EntityDict & BaseEntityDict, T extends keyof E
|
|||
private getTotal?;
|
||||
private pagination;
|
||||
private sr;
|
||||
private syncHandler;
|
||||
private syncHandler;BackendRuntimeContext
|
||||
setFiltersAndSortedApplied(): void;
|
||||
setLoading(loading: number): void;
|
||||
setUnloading(loading: number): void;
|
||||
|
|
@ -138,11 +138,11 @@ declare class ListNode<ED extends EntityDict & BaseEntityDict, T extends keyof E
|
|||
clean(): void;
|
||||
getIntrinsticFilters(): ED[T]["Selection"]["filter"] | undefined;
|
||||
}
|
||||
declare class SingleNode<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Node<ED, T, Cxt, FrontCxt, AD> {
|
||||
declare class SingleNode<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Node<ED, T, Cxt, FrontCxt, AD> {
|
||||
private id?;
|
||||
private sr;
|
||||
protected children: {
|
||||
[K: string]: SingleNode<ED, keyof ED, Cxt, FrontCxt, AD> | ListNode<ED, keyof ED, Cxt, FrontCxt, AD>;
|
||||
[K: string]: SingleNode<ED, keyof ED, Cxt, FrontCxt, AD> | ListNode<ED, keyof ED, Cxt, FrBackendRuntimeContext
|
||||
};
|
||||
private filters?;
|
||||
private operation?;
|
||||
|
|
@ -191,10 +191,10 @@ declare class SingleNode<ED extends EntityDict & BaseEntityDict, T extends keyof
|
|||
* @param childNode
|
||||
* @param disableOperation
|
||||
* @returns
|
||||
*/
|
||||
*/BackendRuntimeContext
|
||||
getParentFilter<T2 extends keyof ED>(childNode: ListNode<ED, keyof ED, Cxt, FrontCxt, AD>, ignoreNewParent?: boolean): ED[T2]['Selection']['filter'] | undefined;
|
||||
}
|
||||
declare class VirtualNode<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
declare class VirtualNode<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
private dirty;
|
||||
private executing;
|
||||
private loading;
|
||||
|
|
@ -235,13 +235,13 @@ export type CreateNodeOptions<ED extends EntityDict & BaseEntityDict, T extends
|
|||
sorters?: NamedSorterItem<ED, T>[];
|
||||
beforeExecute?: (operations: ED[T]['Operation'][]) => Promise<void>;
|
||||
afterExecute?: (operations: ED[T]['Operation'][]) => Promise<void>;
|
||||
id?: string;
|
||||
id?: string;BackendRuntimeContext
|
||||
actions?: ActionDef<ED, T>[] | (() => ActionDef<ED, T>[]);
|
||||
cascadeActions?: () => {
|
||||
[K in keyof ED[T]['Schema']]?: ActionDef<ED, keyof ED>[];
|
||||
};
|
||||
};
|
||||
export declare class RunningTree<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
export declare class RunningTree<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
private cache;
|
||||
private schema;
|
||||
private root;
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
import { EntityDict, Aspect, OpRecord } from 'oak-domain/lib/types';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { Cache } from './cache';
|
||||
import { Message } from './message';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { Feature } from '../types/Feature';
|
||||
type SubscribeEvent = 'connect' | 'disconnect';
|
||||
export declare class SubScriber<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
export declare class SubScriber<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
private cache;
|
||||
private message;
|
||||
private getSubscribePointFn;
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
|||
import { EntityDict } from 'oak-domain/lib/types/Entity';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { CacheStore } from './cacheStore/CacheStore';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { DebugStore } from './debugStore/DebugStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { InitializeOptions } from './types/Initialize';
|
||||
/**
|
||||
* @param storageSchema
|
||||
|
|
@ -20,7 +20,7 @@ import { InitializeOptions } from './types/Initialize';
|
|||
* @param actionDict
|
||||
* @returns
|
||||
*/
|
||||
export declare function initialize<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>>(storageSchema: StorageSchema<ED>, frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt, backendContextBuilder: (contextStr?: string) => (store: DebugStore<ED, Cxt>) => Promise<Cxt>, aspectDict: AD, triggers: Array<Trigger<ED, keyof ED, Cxt>>, checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>, watchers: Array<Watcher<ED, keyof ED, Cxt>>, timers: Array<Timer<ED, keyof ED, Cxt>>, startRoutines: Array<Routine<ED, keyof ED, Cxt>>, initialData: {
|
||||
export declare function initialize<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>>(storageSchema: StorageSchema<ED>, frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt, backendContextBuilder: (contextStr?: string) => (store: DebugStore<ED, Cxt>) => Promise<Cxt>, aspectDict: AD, triggers: Array<Trigger<ED, keyof ED, Cxt>>, checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>, watchers: Array<Watcher<ED, keyof ED, Cxt>>, timers: Array<Timer<ED, keyof ED, Cxt>>, startRoutines: Array<Routine<ED, keyof ED, Cxt>>, initialData: {
|
||||
[T in keyof ED]?: Array<ED[T]['OpSchema']>;
|
||||
}, option: InitializeOptions<ED, Cxt>): {
|
||||
features: {
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@ import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
|||
import { EntityDict } from 'oak-domain/lib/types/Entity';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { CacheStore } from './cacheStore/CacheStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { InitializeOptions } from './types/Initialize';
|
||||
/**
|
||||
* @param storageSchema
|
||||
|
|
@ -19,7 +19,7 @@ import { InitializeOptions } from './types/Initialize';
|
|||
* @param actionDict
|
||||
* @returns
|
||||
*/
|
||||
export declare function initialize<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>>(storageSchema: StorageSchema<ED>, frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt, connector: Connector<ED, FrontCxt>, checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>, option: InitializeOptions<ED, Cxt>): {
|
||||
export declare function initialize<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>>(storageSchema: StorageSchema<ED>, frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt, connector: Connector<ED, FrontCxt>, checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>, option: InitializeOptions<ED, Cxt>): {
|
||||
features: {
|
||||
location: import("./features/location").Location;
|
||||
environment: import("./features/environment").Environment;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,6 @@ import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
|||
import { BasicFeatures } from './features';
|
||||
import { Feature } from './types/Feature';
|
||||
import { DataOption, OakComponentOption } from './types/Page';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
export declare function createComponent<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends DataOption = {}, TProperty extends DataOption = {}, TMethod extends Record<string, Function> = {}>(option: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>, features: BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>> & FD): string;
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
export declare function createComponent<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends DataOption = {}, TProperty extends DataOption = {}, TMethod extends Record<string, Function> = {}>(option: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>, features: BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>> & FD): string;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,6 @@ import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
|||
import { BasicFeatures } from './features';
|
||||
import { Feature } from './types/Feature';
|
||||
import { DataOption, OakComponentOption } from './types/Page';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare function createComponent<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends Record<string, any> = {}, TProperty extends DataOption = {}, TMethod extends Record<string, Function> = {}>(option: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>, features: BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>> & FD): (props: any) => React.JSX.Element;
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare function createComponent<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends Record<string, any> = {}, TProperty extends DataOption = {}, TMethod extends Record<string, Function> = {}>(option: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>, features: BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>> & FD): (props: any) => React.JSX.Element;
|
||||
|
|
|
|||
|
|
@ -5,6 +5,6 @@ import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
|||
import { BasicFeatures } from './features';
|
||||
import { Feature } from './types/Feature';
|
||||
import { DataOption, OakComponentOption } from './types/Page';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare function createComponent<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends Record<string, any> = {}, TProperty extends DataOption = {}, TMethod extends Record<string, Function> = {}>(option: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>, features: BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>> & FD): React.ForwardRefExoticComponent<React.RefAttributes<unknown>>;
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare function createComponent<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends Record<string, any> = {}, TProperty extends DataOption = {}, TMethod extends Record<string, Function> = {}>(option: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>, features: BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>> & FD): React.ForwardRefExoticComponent<React.RefAttributes<unknown>>;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { ActionDictOfEntityDict, ColorDict, Importation, Exportation, AttrUpdateMatrix } from 'oak-domain/lib/types';
|
||||
import { AuthDeduceRelationMap, EntityDict } from 'oak-domain/lib/types/Entity';
|
||||
export type InitializeOptions<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>> = {
|
||||
export type InitializeOptions<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>> = {
|
||||
actionDict: ActionDictOfEntityDict<ED>;
|
||||
attrUpdateMatrix?: AttrUpdateMatrix<ED>;
|
||||
authDeduceRelationMap: AuthDeduceRelationMap<ED>;
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ import { BasicFeatures } from "../features";
|
|||
import { NamedFilterItem, NamedSorterItem } from './NamedCondition';
|
||||
import { NotificationProps } from './Notification';
|
||||
import { MessageProps } from './Message';
|
||||
import { AsyncContext } from "oak-domain/lib/store/AsyncRowStore";
|
||||
import { SyncContext } from "oak-domain/lib/store/SyncRowStore";
|
||||
import { BackendRuntimeContext } from "oak-domain/lib/store/AsyncRowStore";
|
||||
import { FrontendRuntimeContext } from "oak-domain/lib/store/SyncRowStore";
|
||||
import React from "react";
|
||||
export type DataOption = WechatMiniprogram.Component.DataOption;
|
||||
export type MethodOption = WechatMiniprogram.Component.MethodOption;
|
||||
|
|
@ -30,13 +30,13 @@ export type RowWithActions<ED extends EntityDict & BaseEntityDict, T extends key
|
|||
[K in keyof ED[T]['Schema']]?: ActionDef<ED, keyof ED>[];
|
||||
};
|
||||
};
|
||||
type FeatureDef<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends DataOption, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> = (keyof (FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>)) | {
|
||||
feature: keyof (FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>);
|
||||
type FeatureDef<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends DataOption, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> = (keyof (FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>)) | {
|
||||
feature: keyof (FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>);BackendRuntimeContext
|
||||
behavior?: 'reRender' | 'refresh';
|
||||
callback?: (this: ComponentPublicThisType<ED, T, Cxt, FrontCxt, AD, FD, FormedData, IsList, TData, TProperty, TMethod, EMethod>) => void;
|
||||
};
|
||||
interface ComponentOption<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends DataOption, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> {
|
||||
isList?: IsList;
|
||||
interface ComponentOption<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends DataOption, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> {
|
||||
isList?: IsList;BackendRuntimeContext
|
||||
getTotal?: {
|
||||
max: number;
|
||||
deviceWidth?: 'pc' | 'mobile' | 'all';
|
||||
|
|
@ -81,22 +81,22 @@ export type ReactComponentProps<ED extends EntityDict & BaseEntityDict, T extend
|
|||
style?: Record<string, any>;
|
||||
};
|
||||
export type ComponentData<ED extends EntityDict & BaseEntityDict, T extends keyof ED, FormedData extends DataOption, TData extends DataOption> = TData & FormedData & OakComponentData<ED, T>;
|
||||
export type ComponentPublicThisType<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, IsList extends boolean, TData extends Record<string, any> = {}, TProperty extends DataOption = {}, TMethod extends MethodOption = {}, EMethod extends Record<string, Function> = {}> = {
|
||||
features: FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>;
|
||||
export type ComponentPublicThisType<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, IsList extends boolean, TData extends Record<string, any> = {}, TProperty extends DataOption = {}, TMethod extends MethodOption = {}, EMethod extends Record<string, Function> = {}> = {
|
||||
features: FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>;BackendRuntimeContext
|
||||
state: ComponentData<ED, T, FormedData, TData>;
|
||||
props: Readonly<ComponentProps<ED, T, TProperty>>;
|
||||
setState: (data: Partial<ComponentData<ED, T, FormedData, TData>>, callback?: () => void) => void;
|
||||
triggerEvent: <DetailType = any>(name: string, detail?: DetailType, options?: WechatMiniprogram.Component.TriggerEventOption) => void;
|
||||
} & TMethod & EMethod & OakCommonComponentMethods<ED, T> & OakListComponentMethods<ED, T> & OakSingleComponentMethods<ED, T>;
|
||||
export type ComponentFullThisType<ED extends EntityDict & BaseEntityDict, T extends keyof ED, IsList extends boolean, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>> = {
|
||||
features: BasicFeatures<ED, Cxt, FrontCxt, CommonAspectDict<ED, Cxt>>;
|
||||
export type ComponentFullThisType<ED extends EntityDict & BaseEntityDict, T extends keyof ED, IsList extends boolean, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>> = {
|
||||
features: BasicFeatures<ED, Cxt, FrontCxt, CommonAspectDict<ED, Cxt>>;BackendRuntimeContext
|
||||
state: OakComponentData<ED, T>;
|
||||
props: ComponentProps<ED, T, {}>;
|
||||
setState: (data: Partial<OakComponentData<ED, T>>, callback?: () => void) => void;
|
||||
triggerEvent: <DetailType = any>(name: string, detail?: DetailType, options?: WechatMiniprogram.Component.TriggerEventOption) => void;
|
||||
} & OakCommonComponentMethods<ED, T> & OakListComponentMethods<ED, T> & OakSingleComponentMethods<ED, T>;
|
||||
export type OakComponentOption<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends Record<string, any>, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> = ComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod, EMethod> & Partial<{
|
||||
lifetimes: {
|
||||
export type OakComponentOption<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends Record<string, any>, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> = ComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod, EMethod> & Partial<{
|
||||
lifetimes: {BackendRuntimeContext
|
||||
created?(): void;
|
||||
attached?(): void;
|
||||
ready?(): void;
|
||||
|
|
@ -247,10 +247,10 @@ export type OakComponentData<ED extends EntityDict & BaseEntityDict, T extends k
|
|||
oakLng: string;
|
||||
oakDefaultLng: string;
|
||||
};
|
||||
type OakListComoponetData<ED extends EntityDict & BaseEntityDict, T extends keyof ED> = {
|
||||
type OakListComoponetData<ED extends EntityDict & BaseEntityDict, T extends keyofBackendRuntimeContext
|
||||
oakPagination?: Pagination;
|
||||
};
|
||||
export type MakeOakComponent<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>> = <IsList extends boolean, T extends keyof ED, FormedData extends DataOption, TData extends DataOption, TProperty extends DataOption, TMethod extends MethodOption>(options: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>) => (props: ReactComponentProps<ED, T, IsList, TProperty>) => React.ReactElement;
|
||||
export type MakeOakComponent<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>> = <IsList extends boolean, T extends keyof ED, FormedData extends DataOption, TData extends DataOption, TProperty extends DataOption, TMethod extends MethodOption>(options: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>) => (props: ReactComponentProps<ED, T, IsList, TProperty>) => React.ReactElement;
|
||||
export type WebComponentCommonMethodNames = 'setNotification' | 'setMessage' | 'navigateTo' | 'navigateBack' | 'redirectTo' | 'clean' | 't' | 'execute' | 'refresh' | 'aggregate' | 'checkOperation' | 'isDirty';
|
||||
export type WebComponentListMethodNames = 'loadMore' | 'setFilters' | 'addNamedFilter' | 'removeNamedFilter' | 'removeNamedFilterByName' | 'setNamedSorters' | 'addNamedSorter' | 'removeNamedSorter' | 'removeNamedSorterByName' | 'setPageSize' | 'setCurrentPage' | 'addItem' | 'addItems' | 'removeItem' | 'removeItems' | 'updateItem' | 'resetItem' | 'recoverItem' | 'recoverItems';
|
||||
export type WebComponentSingleMethodNames = 'update' | 'remove' | 'create' | 'isCreation' | 'getId' | 'setId';
|
||||
|
|
|
|||
|
|
@ -3,25 +3,25 @@ import { StorageSchema } from "oak-domain/lib/types/Storage";
|
|||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { Checker, CheckerType, TxnOption } from 'oak-domain/lib/types';
|
||||
import { TreeStore, TreeStoreOperateOption } from 'oak-memory-tree-store';
|
||||
import { SyncContext, SyncRowStore } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { FrontendRuntimeContext, SyncRowStore } from 'oak-domain/lib/store/SyncRowStore';
|
||||
interface CachStoreOperation extends TreeStoreOperateOption {
|
||||
checkerTypes?: CheckerType[];
|
||||
}
|
||||
export declare class CacheStore<ED extends EntityDict & BaseEntityDict, Cxt extends SyncContext<ED>> extends TreeStore<ED> implements SyncRowStore<ED, SyncContext<ED>> {
|
||||
export declare class CacheStore<ED extends EntityDict & BaseEntityDict, Cxt extends FrontendRuntimeContext<ED>> extends TreeStore<ED> implements SyncRowStore<ED, FrontendRuntimeContext<ED>> {
|
||||
private triggerExecutor;
|
||||
constructor(storageSchema: StorageSchema<ED>);
|
||||
aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], context: SyncContext<ED>, option: OP): AggregationResult<ED[T]['Schema']>;
|
||||
protected cascadeUpdate<T extends keyof ED, OP extends CachStoreOperation>(entity: T, operation: ED[T]['Operation'], context: SyncContext<ED>, option: OP): OperationResult<ED>;
|
||||
aggregate<T extends keyof ED, OP extends SelectOption>(entity: T, aggregation: ED[T]['Aggregation'], context: FrontendRuntimeContext<ED>, option: OP): AggregationResult<ED[T]['Schema']>;
|
||||
protected cascadeUpdate<T extends keyof ED, OP extends CachStoreOperation>(entity: T, operation: ED[T]['Operation'], context: FrontendRuntimeContext<ED>, option: OP): OperationResult<ED>;
|
||||
operate<T extends keyof ED, OP extends CachStoreOperation>(entity: T, operation: ED[T]['Operation'], context: Cxt, option: OP): OperationResult<ED>;
|
||||
sync<Cxt extends SyncContext<ED>>(opRecords: Array<OpRecord<ED>>, context: Cxt): void;
|
||||
sync<Cxt extends FrontendRuntimeContext<ED>>(opRecords: Array<OpRecord<ED>>, context: Cxt): void;
|
||||
check<T extends keyof ED>(entity: T, operation: {
|
||||
action: ED[T]['Action'];
|
||||
data?: ED[T]['Operation']['data'];
|
||||
filter?: ED[T]['Operation']['filter'];
|
||||
}, context: Cxt, checkerTypes?: CheckerType[]): void;
|
||||
select<T extends keyof ED, OP extends SelectOption, Cxt extends SyncContext<ED>>(entity: T, selection: ED[T]['Selection'], context: Cxt, option: OP): Partial<ED[T]["Schema"]>[];
|
||||
select<T extends keyof ED, OP extends SelectOption, Cxt extends FrontendRuntimeContext<ED>>(entity: T, selection: ED[T]['Selection'], context: Cxt, option: OP): Partial<ED[T]["Schema"]>[];
|
||||
registerChecker<T extends keyof ED>(checker: Checker<ED, T, Cxt>): void;
|
||||
count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, context: SyncContext<ED>, option: OP): number;
|
||||
count<T extends keyof ED, OP extends SelectOption>(entity: T, selection: Pick<ED[T]['Selection'], 'filter' | 'count'>, context: FrontendRuntimeContext<ED>, option: OP): number;
|
||||
begin(option?: TxnOption): string;
|
||||
commit(txnId: string): void;
|
||||
rollback(txnId: string): void;
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
import { EntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/types/Entity';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { SerializedData } from './FrontendRuntimeContext';
|
||||
import { BriefEnv } from 'oak-domain/lib/types/Environment';
|
||||
export declare abstract class BackendRuntimeContext<ED extends EntityDict & BaseEntityDict> extends AsyncContext<ED> {
|
||||
export declare abstract class BackendRuntimeContext<ED extends EntityDict & BaseEntityDict> extends BackendRuntimeContext<ED> {
|
||||
private subscriberId?;
|
||||
private be?;
|
||||
private ns?;
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
import { EntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/types/Entity';
|
||||
import { SyncContext, SyncRowStore } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { FrontendRuntimeContext, SyncRowStore } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { Aspect } from 'oak-domain/lib/types';
|
||||
import { SubScriber } from '../features/subscriber';
|
||||
|
|
@ -17,7 +17,7 @@ export type SerializedData = {
|
|||
oakFrom?: string;
|
||||
};
|
||||
};
|
||||
export declare abstract class FrontendRuntimeContext<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends SyncContext<ED> {
|
||||
export declare abstract class FrontendRuntimeContext<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends FrontendRuntimeContext<ED> {
|
||||
subscriber: SubScriber<ED, Cxt, FrontendRuntimeContext<ED, Cxt, AD>, AD>;
|
||||
env: Environment;
|
||||
navigator: Navigator;
|
||||
|
|
|
|||
|
|
@ -4,8 +4,8 @@ import { CommonAspectDict } from 'oak-common-aspect';
|
|||
import { Feature } from '../types/Feature';
|
||||
import { CacheStore } from '../cacheStore/CacheStore';
|
||||
import { OakUserException } from 'oak-domain/lib/types/Exception';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { LocalStorage } from './localStorage';
|
||||
interface CacheSelectOption extends SelectOption {
|
||||
ignoreKeepFreshRule?: true;
|
||||
|
|
@ -18,7 +18,7 @@ type RefreshOption = {
|
|||
onlyReturnFresh?: boolean;
|
||||
};
|
||||
};
|
||||
export declare class Cache<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
export declare class Cache<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
cacheStore: CacheStore<ED, FrontCxt>;
|
||||
private aspectWrapper;
|
||||
private syncEventsCallbacks;
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { EntityDict, Aspect } from 'oak-domain/lib/types';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { Cache } from './cache';
|
||||
import { Feature } from '../types/Feature';
|
||||
import { RelationAuth } from './relationAuth';
|
||||
|
|
@ -13,7 +13,7 @@ interface IMenu<ED extends EntityDict & BaseEntityDict, T extends keyof ED> {
|
|||
paths?: string[];
|
||||
url?: string;
|
||||
}
|
||||
export declare class ContextMenuFactory<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
export declare class ContextMenuFactory<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
cache: Cache<ED, Cxt, FrontCxt, AD>;
|
||||
menus?: IMenu<ED, keyof ED>[];
|
||||
relationAuth: RelationAuth<ED, Cxt, FrontCxt, AD>;
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ import { Feature } from "../types/Feature";
|
|||
import { EntityDict, Aspect, AspectWrapper } from 'oak-domain/lib/types';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare class Geo<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare class Geo<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
private aspectWrapper;
|
||||
constructor(aspectWrapper: AspectWrapper<ED, Cxt, AD>);
|
||||
searchPoi(value: string, areaCode?: string, typeCode?: string, indexFrom?: number, count?: number): Promise<{
|
||||
|
|
|
|||
|
|
@ -20,9 +20,9 @@ import { Style } from './style';
|
|||
import { SubScriber } from './subscriber';
|
||||
import { ContextMenuFactory } from './contextMenuFactory';
|
||||
import { Geo } from './geo';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare function initializeStep2<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>>(features: Pick<BasicFeatures<ED, Cxt, FrontCxt, AD>, 'localStorage' | 'environment' | 'message'>, aspectWrapper: AspectWrapper<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>, storageSchema: StorageSchema<ED>, frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt, checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>, authDeduceRelationMap: AuthDeduceRelationMap<ED>, colorDict: ColorDict<ED>, getFullDataFn: () => any, getSubscribePointFn: () => Promise<{
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
export declare function initializeStep2<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>>(features: Pick<BasicFeatures<ED, Cxt, FrontCxt, AD>, 'localStorage' | 'environment' | 'message'>, aspectWrapper: AspectWrapper<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>, storageSchema: StorageSchema<ED>, frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt, checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>, authDeduceRelationMap: AuthDeduceRelationMap<ED>, colorDict: ColorDict<ED>, getFullDataFn: () => any, getSubscribePointFn: () => Promise<{
|
||||
url: string;
|
||||
path: string;
|
||||
}>, makeBridgeUrlFn?: (url: string, headers?: Record<string, string>) => string, selectFreeEntities?: (keyof ED)[], updateFreeDict?: {
|
||||
|
|
@ -47,7 +47,7 @@ export declare function initializeStep1(): {
|
|||
localStorage: LocalStorage;
|
||||
navigator: Navigator;
|
||||
};
|
||||
export type BasicFeatures<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>> = {
|
||||
export type BasicFeatures<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>> = {
|
||||
cache: Cache<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>;
|
||||
location: Location;
|
||||
runningTree: RunningTree<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>;
|
||||
|
|
|
|||
|
|
@ -2,13 +2,13 @@ import { EntityDict } from 'oak-domain/lib/types';
|
|||
import { Feature } from '../types/Feature';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { Cache } from './cache';
|
||||
import { LocalStorage } from './localStorage';
|
||||
import { Environment } from './environment';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { Scope, TranslateOptions } from 'i18n-js';
|
||||
export declare class Locales<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
export declare class Locales<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
static REFRESH_STALE_INTERVAL: number;
|
||||
private cache;
|
||||
private localStorage;
|
||||
|
|
|
|||
|
|
@ -2,8 +2,8 @@ import { Feature } from "../types/Feature";
|
|||
import { EntityDict, Aspect, AspectWrapper } from 'oak-domain/lib/types';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { Sheet2JSONOpts } from "xlsx";
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { Sheet2JSONOpts } from "xlsx";BackendRuntimeContext
|
||||
export declare class Port<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
private aspectWrapper;
|
||||
constructor(aspectWrapper: AspectWrapper<ED, Cxt, AD>);
|
||||
|
|
|
|||
|
|
@ -2,10 +2,10 @@ import { EntityDict, Aspect, AuthDeduceRelationMap } from 'oak-domain/lib/types'
|
|||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { Feature } from '../types/Feature';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { Cache } from './cache';
|
||||
export declare class RelationAuth<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
export declare class RelationAuth<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
private cache;
|
||||
private baseRelationAuth;
|
||||
private authDeduceRelationMap;
|
||||
|
|
|
|||
|
|
@ -6,11 +6,11 @@ import { Cache } from './cache';
|
|||
import { Pagination } from '../types/Pagination';
|
||||
import { Feature } from '../types/Feature';
|
||||
import { ActionDef } from '../types/Page';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { RelationAuth } from './relationAuth';
|
||||
export declare const MODI_NEXT_PATH_SUFFIX = ":next";
|
||||
declare abstract class Node<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
declare abstract class Node<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
protected entity: T;
|
||||
protected schema: StorageSchema<ED>;
|
||||
protected projection?: ED[T]['Selection']['data'] | (() => ED[T]['Selection']['data']);
|
||||
|
|
@ -41,8 +41,8 @@ declare abstract class Node<ED extends EntityDict & BaseEntityDict, T extends ke
|
|||
setProjection(projection: ED[T]['Selection']['data']): void;
|
||||
protected judgeRelation(attr: string): string | 0 | 1 | string[] | 2 | -1;
|
||||
}
|
||||
declare class ListNode<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Node<ED, T, Cxt, FrontCxt, AD> {
|
||||
private updates;
|
||||
declare class ListNode<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Node<ED, T, Cxt, FrontCxt, AD> {
|
||||
private updates;BackendRuntimeContext
|
||||
protected children: Record<string, SingleNode<ED, T, Cxt, FrontCxt, AD>>;
|
||||
private filters;
|
||||
private sorters;
|
||||
|
|
@ -135,10 +135,10 @@ declare class ListNode<ED extends EntityDict & BaseEntityDict, T extends keyof E
|
|||
refresh(pageNumber?: number, append?: boolean): Promise<void>;
|
||||
loadMore(): Promise<void>;
|
||||
setCurrentPage(currentPage: number, append?: boolean): void;
|
||||
clean(): void;
|
||||
clean(): void;BackendRuntimeContext
|
||||
getIntrinsticFilters(): ED[T]["Selection"]["filter"] | undefined;
|
||||
}
|
||||
declare class SingleNode<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Node<ED, T, Cxt, FrontCxt, AD> {
|
||||
declare class SingleNode<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Node<ED, T, Cxt, FrontCxt, AD> {
|
||||
private id?;
|
||||
private sr;
|
||||
protected children: {
|
||||
|
|
@ -191,10 +191,10 @@ declare class SingleNode<ED extends EntityDict & BaseEntityDict, T extends keyof
|
|||
* @param childNode
|
||||
* @param disableOperation
|
||||
* @returns
|
||||
*/
|
||||
*/BackendRuntimeContext
|
||||
getParentFilter<T2 extends keyof ED>(childNode: ListNode<ED, keyof ED, Cxt, FrontCxt, AD>, ignoreNewParent?: boolean): ED[T2]['Selection']['filter'] | undefined;
|
||||
}
|
||||
declare class VirtualNode<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
declare class VirtualNode<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
private dirty;
|
||||
private executing;
|
||||
private loading;
|
||||
|
|
@ -238,10 +238,10 @@ export type CreateNodeOptions<ED extends EntityDict & BaseEntityDict, T extends
|
|||
id?: string;
|
||||
actions?: ActionDef<ED, T>[] | (() => ActionDef<ED, T>[]);
|
||||
cascadeActions?: () => {
|
||||
[K in keyof ED[T]['Schema']]?: ActionDef<ED, keyof ED>[];
|
||||
[K in keyof ED[T]['Schema']]?: ActionDef<ED, keyof ED>[];BackendRuntimeContext
|
||||
};
|
||||
};
|
||||
export declare class RunningTree<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
export declare class RunningTree<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt>> extends Feature {
|
||||
private cache;
|
||||
private schema;
|
||||
private root;
|
||||
|
|
|
|||
|
|
@ -1,13 +1,13 @@
|
|||
import { EntityDict, Aspect, OpRecord } from 'oak-domain/lib/types';
|
||||
import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { BackendRuntimeContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { Cache } from './cache';
|
||||
import { Message } from './message';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { FrontendRuntimeContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { Feature } from '../types/Feature';
|
||||
type SubscribeEvent = 'connect' | 'disconnect';
|
||||
export declare class SubScriber<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
export declare class SubScriber<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends CommonAspectDict<ED, Cxt> & Record<string, Aspect<ED, Cxt>>> extends Feature {
|
||||
private cache;
|
||||
private message;
|
||||
private getSubscribePointFn;
|
||||
|
|
|
|||
|
|
@ -9,8 +9,8 @@ import { BasicFeatures } from "../features";
|
|||
import { NamedFilterItem, NamedSorterItem } from './NamedCondition';
|
||||
import { NotificationProps } from './Notification';
|
||||
import { MessageProps } from './Message';
|
||||
import { AsyncContext } from "oak-domain/lib/store/AsyncRowStore";
|
||||
import { SyncContext } from "oak-domain/lib/store/SyncRowStore";
|
||||
import { BackendRuntimeContext } from "oak-domain/lib/store/AsyncRowStore";
|
||||
import { FrontendRuntimeContext } from "oak-domain/lib/store/SyncRowStore";
|
||||
import React from "react";
|
||||
export type DataOption = WechatMiniprogram.Component.DataOption;
|
||||
export type MethodOption = WechatMiniprogram.Component.MethodOption;
|
||||
|
|
@ -30,12 +30,12 @@ export type RowWithActions<ED extends EntityDict & BaseEntityDict, T extends key
|
|||
[K in keyof ED[T]['Schema']]?: ActionDef<ED, keyof ED>[];
|
||||
};
|
||||
};
|
||||
type FeatureDef<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends DataOption, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> = (keyof (FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>)) | {
|
||||
type FeatureDef<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends DataOption, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> = (keyof (FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>)) | {
|
||||
feature: keyof (FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>);
|
||||
behavior?: 'reRender' | 'refresh';
|
||||
callback?: (this: ComponentPublicThisType<ED, T, Cxt, FrontCxt, AD, FD, FormedData, IsList, TData, TProperty, TMethod, EMethod>) => void;
|
||||
};
|
||||
interface ComponentOption<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends DataOption, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> {
|
||||
interface ComponentOption<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends DataOption, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> {
|
||||
isList?: IsList;
|
||||
getTotal?: {
|
||||
max: number;
|
||||
|
|
@ -81,21 +81,21 @@ export type ReactComponentProps<ED extends EntityDict & BaseEntityDict, T extend
|
|||
style?: Record<string, any>;
|
||||
};
|
||||
export type ComponentData<ED extends EntityDict & BaseEntityDict, T extends keyof ED, FormedData extends DataOption, TData extends DataOption> = TData & FormedData & OakComponentData<ED, T>;
|
||||
export type ComponentPublicThisType<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, IsList extends boolean, TData extends Record<string, any> = {}, TProperty extends DataOption = {}, TMethod extends MethodOption = {}, EMethod extends Record<string, Function> = {}> = {
|
||||
export type ComponentPublicThisType<ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, IsList extends boolean, TData extends Record<string, any> = {}, TProperty extends DataOption = {}, TMethod extends MethodOption = {}, EMethod extends Record<string, Function> = {}> = {
|
||||
features: FD & BasicFeatures<ED, Cxt, FrontCxt, AD & CommonAspectDict<ED, Cxt>>;
|
||||
state: ComponentData<ED, T, FormedData, TData>;
|
||||
props: Readonly<ComponentProps<ED, T, TProperty>>;
|
||||
setState: (data: Partial<ComponentData<ED, T, FormedData, TData>>, callback?: () => void) => void;
|
||||
triggerEvent: <DetailType = any>(name: string, detail?: DetailType, options?: WechatMiniprogram.Component.TriggerEventOption) => void;
|
||||
} & TMethod & EMethod & OakCommonComponentMethods<ED, T> & OakListComponentMethods<ED, T> & OakSingleComponentMethods<ED, T>;
|
||||
export type ComponentFullThisType<ED extends EntityDict & BaseEntityDict, T extends keyof ED, IsList extends boolean, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>> = {
|
||||
export type ComponentFullThisType<ED extends EntityDict & BaseEntityDict, T extends keyof ED, IsList extends boolean, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>> = {
|
||||
features: BasicFeatures<ED, Cxt, FrontCxt, CommonAspectDict<ED, Cxt>>;
|
||||
state: OakComponentData<ED, T>;
|
||||
props: ComponentProps<ED, T, {}>;
|
||||
setState: (data: Partial<OakComponentData<ED, T>>, callback?: () => void) => void;
|
||||
triggerEvent: <DetailType = any>(name: string, detail?: DetailType, options?: WechatMiniprogram.Component.TriggerEventOption) => void;
|
||||
} & OakCommonComponentMethods<ED, T> & OakListComponentMethods<ED, T> & OakSingleComponentMethods<ED, T>;
|
||||
export type OakComponentOption<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends Record<string, any>, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> = ComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod, EMethod> & Partial<{
|
||||
export type OakComponentOption<IsList extends boolean, ED extends EntityDict & BaseEntityDict, T extends keyof ED, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>, FormedData extends Record<string, any>, TData extends Record<string, any>, TProperty extends DataOption, TMethod extends Record<string, Function>, EMethod extends Record<string, Function> = {}> = ComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod, EMethod> & Partial<{
|
||||
lifetimes: {
|
||||
created?(): void;
|
||||
attached?(): void;
|
||||
|
|
@ -250,7 +250,7 @@ export type OakComponentData<ED extends EntityDict & BaseEntityDict, T extends k
|
|||
type OakListComoponetData<ED extends EntityDict & BaseEntityDict, T extends keyof ED> = {
|
||||
oakPagination?: Pagination;
|
||||
};
|
||||
export type MakeOakComponent<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>, FrontCxt extends SyncContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>> = <IsList extends boolean, T extends keyof ED, FormedData extends DataOption, TData extends DataOption, TProperty extends DataOption, TMethod extends MethodOption>(options: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>) => (props: ReactComponentProps<ED, T, IsList, TProperty>) => React.ReactElement;
|
||||
export type MakeOakComponent<ED extends EntityDict & BaseEntityDict, Cxt extends BackendRuntimeContext<ED>, FrontCxt extends FrontendRuntimeContext<ED>, AD extends Record<string, Aspect<ED, Cxt>>, FD extends Record<string, Feature>> = <IsList extends boolean, T extends keyof ED, FormedData extends DataOption, TData extends DataOption, TProperty extends DataOption, TMethod extends MethodOption>(options: OakComponentOption<IsList, ED, T, Cxt, FrontCxt, AD, FD, FormedData, TData, TProperty, TMethod>) => (props: ReactComponentProps<ED, T, IsList, TProperty>) => React.ReactElement;
|
||||
export type WebComponentCommonMethodNames = 'setNotification' | 'setMessage' | 'navigateTo' | 'navigateBack' | 'redirectTo' | 'clean' | 't' | 'execute' | 'refresh' | 'aggregate' | 'checkOperation' | 'isDirty';
|
||||
export type WebComponentListMethodNames = 'loadMore' | 'setFilters' | 'addNamedFilter' | 'removeNamedFilter' | 'removeNamedFilterByName' | 'setNamedSorters' | 'addNamedSorter' | 'removeNamedSorter' | 'removeNamedSorterByName' | 'setPageSize' | 'setCurrentPage' | 'addItem' | 'addItems' | 'removeItem' | 'removeItems' | 'updateItem' | 'resetItem' | 'recoverItem' | 'recoverItems';
|
||||
export type WebComponentSingleMethodNames = 'update' | 'remove' | 'create' | 'isCreation' | 'getId' | 'setId';
|
||||
|
|
|
|||
|
|
@ -35,7 +35,7 @@ export abstract class BackendRuntimeContext<ED extends EntityDict & BaseEntityDi
|
|||
}
|
||||
}
|
||||
|
||||
async initialize(data?: SerializedData, later?: boolean) {
|
||||
async initialize(data?: SerializedData) {
|
||||
if (data?.sid) {
|
||||
this.subscriberId = data.sid;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ export class DebugStore<ED extends EntityDict & BaseEntityDict, Cxt extends Asyn
|
|||
|
||||
constructor(
|
||||
storageSchema: StorageSchema<ED>,
|
||||
contextBuilder: (cxtString?: string) => (store: DebugStore<ED, Cxt>) => Promise<Cxt>,
|
||||
contextBuilder: (store: DebugStore<ED, Cxt>) => Promise<Cxt>,
|
||||
authDeduceRelationMap: AuthDeduceRelationMap<ED>,
|
||||
selectFreeEntities?: (keyof ED)[],
|
||||
updateFreeDict?: {
|
||||
|
|
@ -38,7 +38,7 @@ export class DebugStore<ED extends EntityDict & BaseEntityDict, Cxt extends Asyn
|
|||
this.dataLoadedLockUnlocker = () => resolve();
|
||||
}
|
||||
);
|
||||
this.executor = new TriggerExecutor((cxtString) => contextBuilder(cxtString)(this));
|
||||
this.executor = new TriggerExecutor(contextBuilder(this));
|
||||
this.relationAuth = new RelationAuth(storageSchema, authDeduceRelationMap, selectFreeEntities, updateFreeDict);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ async function execWatcher<ED extends EntityDict & BaseEntityDict, Cxt extends A
|
|||
context: Cxt
|
||||
) {
|
||||
await context.begin();
|
||||
await context.initialize();
|
||||
try {
|
||||
if (watcher.hasOwnProperty('actionData')) {
|
||||
const { entity, action, filter, actionData } = <BBWatcher<ED, keyof ED>>watcher;
|
||||
|
|
@ -109,13 +110,13 @@ async function execWatcher<ED extends EntityDict & BaseEntityDict, Cxt extends A
|
|||
* @param watchers
|
||||
*/
|
||||
function initializeWatchers<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>>(
|
||||
store: DebugStore<ED, Cxt>, contextBuilder: (cxtString?: string) => (store: DebugStore<ED, Cxt>) => Promise<Cxt>, watchers: Array<Watcher<ED, keyof ED, Cxt>>) {
|
||||
store: DebugStore<ED, Cxt>, contextBuilder: (store: DebugStore<ED, Cxt>) => Promise<Cxt>, watchers: Array<Watcher<ED, keyof ED, Cxt>>) {
|
||||
|
||||
let count = 0;
|
||||
async function doWatchers() {
|
||||
count++;
|
||||
const start = Date.now();
|
||||
const context = await contextBuilder()(store);
|
||||
const context = await contextBuilder(store);
|
||||
for (const w of watchers) {
|
||||
try {
|
||||
const result = await execWatcher(store, w, context);
|
||||
|
|
@ -135,7 +136,7 @@ function initializeWatchers<ED extends EntityDict & BaseEntityDict, Cxt extends
|
|||
}
|
||||
|
||||
function initializeTimers<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>>(
|
||||
store: DebugStore<ED, Cxt>, contextBuilder: (cxtString?: string) => (store: DebugStore<ED, Cxt>) => Promise<Cxt>, timers: Array<Timer<ED, keyof ED, Cxt>>
|
||||
store: DebugStore<ED, Cxt>, contextBuilder: (store: DebugStore<ED, Cxt>) => Promise<Cxt>, timers: Array<Timer<ED, keyof ED, Cxt>>
|
||||
) {
|
||||
if (process.env.OAK_PLATFORM === 'wechatMp') {
|
||||
const { platform } = wx.getSystemInfoSync();
|
||||
|
|
@ -148,7 +149,7 @@ function initializeTimers<ED extends EntityDict & BaseEntityDict, Cxt extends As
|
|||
const { cron, name } = timer;
|
||||
scheduleJob(name, cron, async (date) => {
|
||||
const start = Date.now();
|
||||
const context = await contextBuilder()(store);
|
||||
const context = await contextBuilder(store);
|
||||
console.log(`定时器【${name}】开始执行,时间是【${date.toLocaleTimeString()}】`);
|
||||
try {
|
||||
let result = {};
|
||||
|
|
@ -169,12 +170,12 @@ function initializeTimers<ED extends EntityDict & BaseEntityDict, Cxt extends As
|
|||
}
|
||||
|
||||
async function doRoutines<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>>(
|
||||
store: DebugStore<ED, Cxt>, contextBuilder: (cxtString?: string) => (store: DebugStore<ED, Cxt>) => Promise<Cxt>, routines: Array<Routine<ED, keyof ED, Cxt>>
|
||||
store: DebugStore<ED, Cxt>, contextBuilder: (store: DebugStore<ED, Cxt>) => Promise<Cxt>, routines: Array<Routine<ED, keyof ED, Cxt>>
|
||||
) {
|
||||
for (const routine of routines) {
|
||||
if (routine.hasOwnProperty('entity')) {
|
||||
const { name } = routine;
|
||||
const context = await contextBuilder()(store);
|
||||
const context = await contextBuilder(store);
|
||||
const start = Date.now();
|
||||
try {
|
||||
const result = execWatcher(store, routine as Watcher<ED, keyof ED, Cxt>, context);
|
||||
|
|
@ -186,7 +187,7 @@ async function doRoutines<ED extends EntityDict & BaseEntityDict, Cxt extends As
|
|||
}
|
||||
else {
|
||||
const { name, routine: routineFn } = routine as FreeRoutine<ED, Cxt>;
|
||||
const context = await contextBuilder()(store);
|
||||
const context = await contextBuilder(store);
|
||||
|
||||
const start = Date.now();
|
||||
await context.begin();
|
||||
|
|
@ -205,7 +206,7 @@ async function doRoutines<ED extends EntityDict & BaseEntityDict, Cxt extends As
|
|||
|
||||
export function createDebugStore<ED extends EntityDict & BaseEntityDict, Cxt extends AsyncContext<ED>>(
|
||||
storageSchema: StorageSchema<ED>,
|
||||
contextBuilder: (cxtString?: string) => (store: DebugStore<ED, Cxt>) => Promise<Cxt>,
|
||||
contextBuilder: (store: DebugStore<ED, Cxt>) => Promise<Cxt>,
|
||||
triggers: Array<Trigger<ED, keyof ED, Cxt>>,
|
||||
checkers: Array<Checker<ED, keyof ED, Cxt>>,
|
||||
watchers: Array<Watcher<ED, keyof ED, Cxt>>,
|
||||
|
|
|
|||
|
|
@ -55,7 +55,7 @@ export class Cache<
|
|||
constructor(
|
||||
storageSchema: StorageSchema<ED>,
|
||||
aspectWrapper: AspectWrapper<ED, Cxt, AD>,
|
||||
frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt,
|
||||
frontendContextBuilder: (store: CacheStore<ED, FrontCxt>) => FrontCxt,
|
||||
checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>,
|
||||
getFullData: () => any,
|
||||
localStorage: LocalStorage,
|
||||
|
|
@ -68,7 +68,7 @@ export class Cache<
|
|||
this.syncEventsCallbacks = [];
|
||||
|
||||
this.cacheStore = new CacheStore(storageSchema);
|
||||
this.contextBuilder = () => frontendContextBuilder()(this.cacheStore);
|
||||
this.contextBuilder = () => frontendContextBuilder(this.cacheStore);
|
||||
this.savedEntities = ['actionAuth', 'i18n', 'path', ...(savedEntities || [])];
|
||||
this.keepFreshPeriod = keepFreshPeriod || DEFAULT_KEEP_FRESH_PERIOD;
|
||||
this.localStorage = localStorage;
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ export function initializeStep2<
|
|||
features: Pick<BasicFeatures<ED, Cxt, FrontCxt, AD>, 'localStorage' | 'environment' | 'message'>,
|
||||
aspectWrapper: AspectWrapper<ED, Cxt, AD & CommonAspectDict<ED, Cxt>>,
|
||||
storageSchema: StorageSchema<ED>,
|
||||
frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt,
|
||||
frontendContextBuilder: (store: CacheStore<ED, FrontCxt>) => FrontCxt,
|
||||
checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>,
|
||||
authDeduceRelationMap: AuthDeduceRelationMap<ED>,
|
||||
colorDict: ColorDict<ED>,
|
||||
|
|
|
|||
|
|
@ -19,9 +19,9 @@ import { cloneDeep, intersection } from 'oak-domain/lib/utils/lodash';
|
|||
import commonAspectDict from 'oak-common-aspect';
|
||||
import { CommonAspectDict, registerPorts } from 'oak-common-aspect';
|
||||
import { CacheStore } from './cacheStore/CacheStore';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { DebugStore } from './debugStore/DebugStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { FrontendRuntimeContext } from './context/FrontendRuntimeContext';
|
||||
import { BackendRuntimeContext } from './context/BackendRuntimeContext';
|
||||
import { InitializeOptions } from './types/Initialize';
|
||||
|
||||
/**
|
||||
|
|
@ -39,13 +39,13 @@ import { InitializeOptions } from './types/Initialize';
|
|||
*/
|
||||
export function initialize<
|
||||
ED extends EntityDict & BaseEntityDict,
|
||||
Cxt extends AsyncContext<ED>,
|
||||
FrontCxt extends SyncContext<ED>,
|
||||
Cxt extends BackendRuntimeContext<ED>,
|
||||
FrontCxt extends FrontendRuntimeContext<ED>,
|
||||
AD extends Record<string, Aspect<ED, Cxt>>,
|
||||
>(
|
||||
storageSchema: StorageSchema<ED>,
|
||||
frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt,
|
||||
backendContextBuilder: (contextStr?: string) => (store: DebugStore<ED, Cxt>) => Promise<Cxt>,
|
||||
frontendContextBuilder: (store: CacheStore<ED, FrontCxt>) => FrontCxt,
|
||||
backendContextBuilder: (store: DebugStore<ED, Cxt>) => Promise<Cxt>,
|
||||
aspectDict: AD,
|
||||
triggers: Array<Trigger<ED, keyof ED, Cxt>>,
|
||||
checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>,
|
||||
|
|
|
|||
|
|
@ -12,8 +12,8 @@ import { initializeStep1 as initBasicFeaturesStep1, initializeStep2 as initBasic
|
|||
import { makeIntrinsicCheckers } from 'oak-domain/lib/store/IntrinsicCheckers';
|
||||
import { CommonAspectDict } from 'oak-common-aspect';
|
||||
import { CacheStore } from './cacheStore/CacheStore';
|
||||
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
|
||||
import { SyncContext } from 'oak-domain/lib/store/SyncRowStore';
|
||||
import { FrontendRuntimeContext } from './context/FrontendRuntimeContext';
|
||||
import { BackendRuntimeContext } from './context/BackendRuntimeContext';
|
||||
import { InitializeOptions } from './types/Initialize';
|
||||
|
||||
/**
|
||||
|
|
@ -31,12 +31,12 @@ import { InitializeOptions } from './types/Initialize';
|
|||
*/
|
||||
export function initialize<
|
||||
ED extends EntityDict & BaseEntityDict,
|
||||
Cxt extends AsyncContext<ED>,
|
||||
FrontCxt extends SyncContext<ED>,
|
||||
Cxt extends BackendRuntimeContext<ED>,
|
||||
FrontCxt extends FrontendRuntimeContext<ED>,
|
||||
AD extends Record<string, Aspect<ED, Cxt>>
|
||||
>(
|
||||
storageSchema: StorageSchema<ED>,
|
||||
frontendContextBuilder: () => (store: CacheStore<ED, FrontCxt>) => FrontCxt,
|
||||
frontendContextBuilder: (store: CacheStore<ED, FrontCxt>) => FrontCxt,
|
||||
connector: Connector<ED, FrontCxt>,
|
||||
checkers: Array<Checker<ED, keyof ED, FrontCxt | Cxt>>,
|
||||
option: InitializeOptions<ED, Cxt>
|
||||
|
|
|
|||
Loading…
Reference in New Issue