34 lines
661 B
TypeScript
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);
|
|
} |