UNPKG

shyft

Version:

Model driven GraphQL API framework

89 lines (88 loc) 3.02 kB
import { PermissionMap } from '../permission/Permission'; import { StorageType } from '../storage/StorageType'; import { Attribute, AttributesMap, AttributesSetupMap, AttributesMapGenerator } from '../attribute/Attribute'; import { PreFilterMap } from '../filter'; import { Context } from '../context/Context'; import { GraphQLResolveInfo } from 'graphql'; interface ViewEntityPreProcessorResponse { args?: { [key: string]: unknown; }; context?: Context; } export declare type ViewEntityPreProcessor = (params: { entity?: ViewEntity; source?: any; args?: { [key: string]: unknown; }; context?: Context; info?: GraphQLResolveInfo; }) => ViewEntityPreProcessorResponse | Promise<ViewEntityPreProcessorResponse>; export declare type ViewEntityPostProcessor = (params: { result?: { [key: string]: unknown; }; entity?: ViewEntity; source?: any; args?: { [key: string]: unknown; }; context?: Context; info?: GraphQLResolveInfo; }) => { [key: string]: unknown; }; export interface ViewEntitySetup { name: string; description: string; attributes?: AttributesSetupMap | AttributesMapGenerator; storageType?: StorageType; viewExpression: any; permissions?: PermissionMap; preProcessor?: ViewEntityPreProcessor; postProcessor?: ViewEntityPostProcessor; preFilters?: PreFilterMap | (() => PreFilterMap); meta?: any; } export declare class ViewEntity { name: string; storageTableName: string; description: string; storageType?: StorageType; viewExpression: any; permissions?: PermissionMap; preProcessor?: ViewEntityPreProcessor; postProcessor?: ViewEntityPostProcessor; preFilters?: PreFilterMap; meta?: any; private readonly _attributesMap; private _primaryAttribute; private _permissions; private _defaultPermissions; private _attributes; descriptionPermissionsFind: string | boolean; descriptionPermissionsRead: string | boolean; private _preFilters; isFallbackStorageType: any; findOne: (...arg: any[]) => any; find: (...args: any[]) => any; constructor(setup: ViewEntitySetup); _injectStorageTypeBySchema(storageType: StorageType): void; _exposeStorageAccess(): void; _injectDefaultPermissionsBySchema(defaultPermissions: any): void; getAttributes(): AttributesMap; _processAttribute(rawAttribute: any, attributeName: any): Attribute; _processAttributeMap(): {}; getPrimaryAttribute(): Attribute; referenceAttribute(attributeName: any): import("../attribute/Attribute").AttributeBase; _processPermissions(): PermissionMap | null; _generatePermissionDescriptions(): void; _processPreFilters(preFilters?: PreFilterMap): PreFilterMap; getPreFilters(): PreFilterMap; getPermissions(): PermissionMap; getStorageType(): StorageType; toString(): string; } export declare const isViewEntity: (obj: unknown) => obj is ViewEntity; export {};