packages/theme-builder/src/processors/js.js
function parseExpressions(obj, proto) {
  const parsedObj = Object.assign(Object.create(proto), obj);
  Object.keys(obj).forEach((key) => {
    const value = obj[key];
    const fn = isObject(value) ? parseExpressions : applyTransforms;
    try {
      parsedObj[key] = fn(value, parsedObj);
    } catch (err) {
      throwDescriptiveError({ err, key, value });
    }
  });

  return parsedObj;
}
function parseExpressions(obj, proto) {
  const parsedObj = Object.assign(Object.create(proto), obj);
  Object.keys(obj).forEach((key) => {
    const value = obj[key];
    const fn = isObject(value) ? parseExpressions : applyTransforms;
    try {
      parsedObj[key] = fn(value, parsedObj);
    } catch (err) {
      throwDescriptiveError({ err, key, value });
    }
  });

  return parsedObj;
}
function parseExpressions ( obj , proto ) { const parsedObj = Object . assign ( Object . create ( proto ) , obj ) ; Object . keys ( obj ) . forEach ( ( key ) => { const value = obj [ key ] ; const fn = isObject ( value ) ? parseExpressions : applyTransforms ; try { parsedObj [ key ] = fn ( value , parsedObj ) ; } catch ( err ) { throwDescriptiveError ( { err , key , value } ) ; } } ) ; return parsedObj ; }
This function will walk a object tree and apply transformations on it

@param {Object} obj
@param {Object} the parent object
This function will walk a object tree and apply transformations on it