r37r0m0d3l/vicis

View on GitHub
src/core/replace/replace.ts

Summary

Maintainability
A
1 hr
Test Coverage
import { IObject } from "../../interface/common/IObject";
import { IReplace } from "../../interface/config/IReplace";

import { objectIsEmpty } from "../../util/object/is/empty";

import { replaceConfig } from "./replaceConfig";
import { replaceData } from "./replaceData";

/**
 * @name replace
 * @throws TypeError
 * @param {Object} data
 * @param {Object.<string, *>=} replacePropertyValues
 * @returns {Object}
 */
export function replace(
  data: IObject,
  replacePropertyValues: IReplace = {},
): IObject {
  const config = replaceConfig(replacePropertyValues);
  if (objectIsEmpty(config)) {
    return data;
  }
  return replaceData(config, data);
}