Files
mixtape/zero.Backoffice.UI/app/utils/objects.ts
T
2021-12-06 15:06:38 +01:00

34 lines
661 B
TypeScript

import { find as _find, extend as _extend } from 'underscore';
export function setObjectValue(model: object, props: string[], value: any)
{
const clonedProps = [...props];
const prop = clonedProps.shift();
if (!model[prop])
{
model[prop] = {};
}
if (!clonedProps.length)
{
if (value && typeof value === 'object' && !Array.isArray(value))
{
model[prop] = { ...model[prop], ...value };
}
else
{
model[prop] = value;
}
return;
}
setObjectValue(model[prop], clonedProps, value);
};
export function extendObject(source: object, extendWith: object): object
{
return _extend(source, extendWith);
}