/** Create a copy of an object by merging it with a subset of its properties. */
export function merge<T, K extends keyof T>(obj: T, subset: Pick<T, K>): T {
  const copy = Object.assign({}, obj);
  for (const k in subset) {
    if (subset[k]) {
      copy[k] = subset[k];
    }
  }
  return copy;
}