UNPKG

shyft

Version:

Model driven GraphQL API framework

44 lines (43 loc) 1.33 kB
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 {};