import { EmptyValueService } from './empty-value.service'; import { ComponentTypeService } from './component-type.service'; import { JSONSchema } from '../interfaces'; export declare class RecordFixerService { private emptyValueService; private componentTypeService; constructor(emptyValueService: EmptyValueService, componentTypeService: ComponentTypeService); /** * Fixes given record according to given schema, in other words * changes it to match the format expected the by te json-editor * * @param rawRecord - json record to be fixed * @param schema - extended schema of rawRecord * @return - fixed record */ fixRecord(rawRecord: object, schema: JSONSchema): object; /** * Visits all parts of record recursivly, along with the subschema of the part * and apply required fixes. * * NOTE: the reason that parent and key are passed instead of the direct value * is to be able do some operations that needs the parent such as `delete`. * * TODO: add special case for arrays because fixes are the same for * all elements. * * @param key - field name or element index * @param parent - parent of the field/element * @param schema - schema of visited field/element */ private fix(key, parent, schema); /** * Deletes given field from the given object. * Used for deleting fields that aren't on the schema. * * TODO: replace this with only `delete` when logging is not necessary! */ private deleteField(object, field); }