{"version":3,"sources":["../../src/utilities/formatErrors.ts"],"sourcesContent":["import type { ErrorResult } from '../config/types.js'\n\nimport { APIError } from '../errors/APIError.js'\nimport { ValidationError } from '../errors/ValidationError.js'\n\nexport const formatErrors = (incoming: { [key: string]: unknown } | APIError): ErrorResult => {\n  if (incoming) {\n    // Payload 'ValidationError' and 'APIError'\n    if ((incoming instanceof ValidationError || incoming instanceof APIError) && incoming.data) {\n      return {\n        errors: [\n          {\n            name: incoming.name,\n            data: incoming.data as Record<string, unknown>,\n            message: incoming.message,\n          },\n        ],\n      }\n    }\n\n    // Mongoose 'ValidationError': https://mongoosejs.com/docs/api/error.html#Error.ValidationError\n    if (\n      'name' in incoming &&\n      incoming.name === 'ValidationError' &&\n      'errors' in incoming &&\n      incoming.errors\n    ) {\n      return {\n        errors: Object.keys(incoming.errors).reduce(\n          (acc, key) => {\n            acc.push({\n              field: (incoming.errors as any)[key].path,\n              message: (incoming.errors as any)[key].message,\n            })\n            return acc\n          },\n          [] as { field: string; message: string }[],\n        ),\n      }\n    }\n\n    if (Array.isArray(incoming.message)) {\n      return {\n        errors: incoming.message,\n      }\n    }\n\n    if (incoming.name) {\n      return {\n        errors: [\n          {\n            message: incoming.message as string,\n          },\n        ],\n      }\n    }\n  }\n\n  return {\n    errors: [\n      {\n        message: 'An unknown error occurred.',\n      },\n    ],\n  }\n}\n"],"names":["APIError","ValidationError","formatErrors","incoming","data","errors","name","message","Object","keys","reduce","acc","key","push","field","path","Array","isArray"],"mappings":"AAEA,SAASA,QAAQ,QAAQ,wBAAuB;AAChD,SAASC,eAAe,QAAQ,+BAA8B;AAE9D,OAAO,MAAMC,eAAe,CAACC;IAC3B,IAAIA,UAAU;QACZ,2CAA2C;QAC3C,IAAI,AAACA,CAAAA,oBAAoBF,mBAAmBE,oBAAoBH,QAAO,KAAMG,SAASC,IAAI,EAAE;YAC1F,OAAO;gBACLC,QAAQ;oBACN;wBACEC,MAAMH,SAASG,IAAI;wBACnBF,MAAMD,SAASC,IAAI;wBACnBG,SAASJ,SAASI,OAAO;oBAC3B;iBACD;YACH;QACF;QAEA,+FAA+F;QAC/F,IACE,UAAUJ,YACVA,SAASG,IAAI,KAAK,qBAClB,YAAYH,YACZA,SAASE,MAAM,EACf;YACA,OAAO;gBACLA,QAAQG,OAAOC,IAAI,CAACN,SAASE,MAAM,EAAEK,MAAM,CACzC,CAACC,KAAKC;oBACJD,IAAIE,IAAI,CAAC;wBACPC,OAAO,AAACX,SAASE,MAAM,AAAQ,CAACO,IAAI,CAACG,IAAI;wBACzCR,SAAS,AAACJ,SAASE,MAAM,AAAQ,CAACO,IAAI,CAACL,OAAO;oBAChD;oBACA,OAAOI;gBACT,GACA,EAAE;YAEN;QACF;QAEA,IAAIK,MAAMC,OAAO,CAACd,SAASI,OAAO,GAAG;YACnC,OAAO;gBACLF,QAAQF,SAASI,OAAO;YAC1B;QACF;QAEA,IAAIJ,SAASG,IAAI,EAAE;YACjB,OAAO;gBACLD,QAAQ;oBACN;wBACEE,SAASJ,SAASI,OAAO;oBAC3B;iBACD;YACH;QACF;IACF;IAEA,OAAO;QACLF,QAAQ;YACN;gBACEE,SAAS;YACX;SACD;IACH;AACF,EAAC"}