{"version":3,"file":"object-mutators.mjs","names":[],"sources":["../../../../../../../@warlock.js/seal/src/mutators/object-mutators.ts"],"sourcesContent":["import { trim } from \"@mongez/reinforcements\";\r\nimport { isPlainObject } from \"@mongez/supportive-is\";\r\nimport type { Mutator } from \"../types\";\r\n\r\n/** Strip unknown keys from object */\r\nexport const stripUnknownMutator: Mutator = async (value, context) => {\r\n  const allowedKeys = [\r\n    ...(context?.ctx.schema ? Object.keys(context.ctx.schema) : []),\r\n    ...(context?.options.allowedKeys ?? []),\r\n  ];\r\n\r\n  const result: Record<string, any> = {};\r\n\r\n  for (const key in value) {\r\n    if (allowedKeys.includes(key)) {\r\n      result[key] = value[key];\r\n    }\r\n  }\r\n\r\n  return result;\r\n};\r\n\r\n/** Trim all string values in object */\r\nexport const objectTrimMutator: Mutator = async (value, context) => {\r\n  if (!isPlainObject(value)) return value;\r\n\r\n  const result: Record<string, any> = {};\r\n  const recursive = context?.options.recursive ?? false;\r\n\r\n  for (const key in value) {\r\n    const item = value[key];\r\n\r\n    if (recursive) {\r\n      if (Array.isArray(item)) {\r\n        result[key] = await Promise.all(\r\n          item.map(async (i: any) =>\r\n            typeof i === \"string\" ? trim(i) : await objectTrimMutator(i, context),\r\n          ),\r\n        );\r\n      } else if (isPlainObject(item)) {\r\n        result[key] = await objectTrimMutator(item, context);\r\n      } else {\r\n        result[key] = typeof item === \"string\" ? trim(item) : item;\r\n      }\r\n    } else {\r\n      result[key] = typeof item === \"string\" ? trim(item) : item;\r\n    }\r\n  }\r\n\r\n  return result;\r\n};\r\n\r\n/** Parse JSON string */\r\nexport const jsonMutator: Mutator = async (value) => {\r\n  try {\r\n    return JSON.parse(value);\r\n  } catch {\r\n    return value;\r\n  }\r\n};\r\n"],"mappings":";;;;;AAKA,MAAa,sBAA+B,OAAO,OAAO,YAAY;CACpE,MAAM,cAAc,CAClB,GAAI,SAAS,IAAI,SAAS,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAI,CAAC,GAC7D,GAAI,SAAS,QAAQ,eAAe,CAAC,CACvC;CAEA,MAAM,SAA8B,CAAC;CAErC,KAAK,MAAM,OAAO,OAChB,IAAI,YAAY,SAAS,GAAG,GAC1B,OAAO,OAAO,MAAM;CAIxB,OAAO;AACT;;AAGA,MAAa,oBAA6B,OAAO,OAAO,YAAY;CAClE,IAAI,CAAC,cAAc,KAAK,GAAG,OAAO;CAElC,MAAM,SAA8B,CAAC;CACrC,MAAM,YAAY,SAAS,QAAQ,aAAa;CAEhD,KAAK,MAAM,OAAO,OAAO;EACvB,MAAM,OAAO,MAAM;EAEnB,IAAI,WACF,IAAI,MAAM,QAAQ,IAAI,GACpB,OAAO,OAAO,MAAM,QAAQ,IAC1B,KAAK,IAAI,OAAO,MACd,OAAO,MAAM,WAAW,KAAK,CAAC,IAAI,MAAM,kBAAkB,GAAG,OAAO,CACtE,CACF;OACK,IAAI,cAAc,IAAI,GAC3B,OAAO,OAAO,MAAM,kBAAkB,MAAM,OAAO;OAEnD,OAAO,OAAO,OAAO,SAAS,WAAW,KAAK,IAAI,IAAI;OAGxD,OAAO,OAAO,OAAO,SAAS,WAAW,KAAK,IAAI,IAAI;CAE1D;CAEA,OAAO;AACT;;AAGA,MAAa,cAAuB,OAAO,UAAU;CACnD,IAAI;EACF,OAAO,KAAK,MAAM,KAAK;CACzB,QAAQ;EACN,OAAO;CACT;AACF"}