shyft
Version:
Model driven GraphQL API framework
44 lines (43 loc) • 1.33 kB
TypeScript
import { Entity } from '../entity/Entity';
import { Action } from '../action/Action';
import { StorageType } from '../storage/StorageType';
import { Permission } from '../permission/Permission';
import { ViewEntity } from '../entity/ViewEntity';
export declare type SchemaSetup = {
entities?: Entity[] | null;
defaultStorageType?: StorageType;
actions?: Action[];
defaultActionPermissions?: Permission;
permissionsMap?: PermissionsMap;
};
declare type EntityPermission = {
[key: string]: any;
};
declare type PermissionsMap = {
entities: EntityPermission;
};
export declare type EntityMap = {
[entityName: string]: Entity | ViewEntity;
};
declare type ActionMap = {
[actionName: string]: Action;
};
export declare class Schema {
private _entityMap;
private _actionMap;
private _isValidated;
private _userEntity;
defaultStorageType: StorageType;
permissionsMap: PermissionsMap | null;
defaultActionPermissions: any;
constructor(setup?: SchemaSetup);
addEntity(entity: any): void;
getUserEntity(throwIfMissing: any): any;
_lazyLoadMissingEntities(): void;
validate(): void;
getEntities(): EntityMap;
addAction(action: Action): void;
getActions(): ActionMap;
}
export declare const isSchema: (obj: unknown) => obj is Schema;
export {};