export function deepClone<T>(obj: T) {
  return JSON.parse(JSON.stringify(obj));
}

export function ensure<T extends object>(
  obj: T,
  keys: Array<[keyof T][number]>,
) {
  return keys.every(
    (k) => obj[k] !== undefined && obj[k] !== null && obj[k] !== "",
  );
}