UNPKG

@webda/core

Version:

Expose API with Lambda

62 lines (61 loc) 1.76 kB
import { CoreModel, CoreModelDefinition } from "../models/coremodel.js"; import { Service } from "../services/service.js"; export interface Mapper { modelAttribute: string; model: CoreModelDefinition<CoreModel>; attributes: string[]; attribute: string; } interface ModelMapperInfo { modelAttribute: string; model: CoreModelDefinition<CoreModel>; attributes: string[]; attribute: string; type: "LINK" | "LINKS_MAP" | "LINKS_ARRAY" | "LINKS_SIMPLE_ARRAY"; } /** * Mapper service * * Ensure each ModelMapped properties is in-sync with their respective model */ export declare class ModelMapper extends Service { mappers: { [key: string]: ModelMapperInfo[]; }; resolve(): this; /** * Get uuids from a ModelLinker * @param object * @param mapper * @returns */ getUuidsFromMapper(object: CoreModel, mapper: ModelMapperInfo): any[]; /** * Handle event * @param modelName * @param evt * @param type * @returns */ handleEvent(modelName: string, evt: any, type: "Store.Saved" | "Store.Deleted" | "Store.Updated" | "Store.PatchUpdated" | "Store.PartialUpdated"): Promise<any[]>; /** * Handle partial event to update a mapper * * @param modelName * @param evt * @param type * @returns */ handlePartialEvent(modelName: string, evt: any, type: "Store.Saved" | "Store.Deleted" | "Store.Updated" | "Store.PatchUpdated" | "Store.PartialUpdated"): Promise<any[]>; /** * Get a mapped object based on Mapper * * Copy attributes that are supposed to be copied * * @param model * @param mapper * @returns */ getMapped(model: any, mapper: Mapper): any; } export {};