0.1.4Updated 6 months ago
export const StripObject = <
  T extends Record<string, any> = any,
  U extends Record<string, any> = Partial<{[P in keyof T]: ''}>
>(object: T, fields_to_break: U) => {
  const fields: string[] = [];
  const placeholders: string[] = [];
  const values: any[] = [];

  for(const field of Object.keys(fields_to_break)) {
    if(object[field] !== undefined) {
      fields.push(field as string);
      values.push(object[field]);
      placeholders.push(`$${fields.length}`);
    }
  }

  return {
    fields: fields.join(', '),
    placeholders: placeholders.join(', '),
    values,
  }
}