shyft
Version:
Model driven GraphQL API framework
89 lines (88 loc) • 3.02 kB
TypeScript
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 {};