import { IDataObject } from '../interfaces'; import { TDataValue, TTransformSingleValueFunction } from '../types'; import type { createConvertDataObject } from './convert-data-object'; import type { createTransformDataObject as createTransformDataObjectFunction } from './transform-data-object'; import type { createTransformDataValueFactory } from './transform-data-value-factory'; export const createTransformAndConvertDataObjectFactory = ( convertDataObject: ReturnType, createTransformDataValue: ReturnType, createTransformDataObject: typeof createTransformDataObjectFunction ) => ( transformSingleValue: TTransformSingleValueFunction ) => { const transformDataObject = createTransformDataObject(createTransformDataValue(transformSingleValue)); return (object: DataObject) => convertDataObject(transformDataObject(object)); };