renovate/lib/util/assign-keys.ts
2023-07-21 08:46:59 +00:00

18 lines
445 B
TypeScript

import is from '@sindresorhus/is';
/**
* Assigns non-nullish values from `right` to `left` for the given `keys`.
*/
export function assignKeys<
Left extends { [key in K]?: unknown },
Right extends { [key in K]?: Left[key] },
K extends keyof Right
>(left: Left, right: Right, keys: K[]): Left {
for (const key of keys) {
const val = right[key];
if (!is.nullOrUndefined(val)) {
left[key] = val;
}
}
return left;
}