shyft
Version:
Model driven GraphQL API framework
33 lines (32 loc) • 1.23 kB
TypeScript
import { ViewEntity } from '..';
import { Entity } from '../engine/entity/Entity';
interface Data {
[key: string]: unknown;
}
export interface RegistryEntityAttribute {
fieldName: string;
fieldNameI18n: string;
fieldNameI18nJson: string;
}
export interface RegistryEntityAttributes {
[key: string]: RegistryEntityAttribute;
}
export interface RegistryEntity {
entity: Entity | ViewEntity;
typeName: string;
typeNamePlural: string;
typeNamePascalCase: string;
typeNamePluralPascalCase: string;
attributes: RegistryEntityAttributes;
dataShaper: (data: Data) => Data;
dataSetShaper: (set: Data[]) => Data[];
reverseDataShaper: (data: Data) => Data;
}
export interface Registry {
[key: string]: RegistryEntity;
}
export declare const registry: Registry;
export declare const registerEntity: ({ entity, typeName, typeNamePlural, typeNamePascalCase, typeNamePluralPascalCase, attributes, dataShaper, dataSetShaper, reverseDataShaper, }: RegistryEntity) => void;
export declare const getRegisteredEntity: (entityName: string) => RegistryEntity;
export declare const getRegisteredEntityAttribute: (entityName: string, attributeName: string) => RegistryEntityAttribute;
export {};