{"version":3,"file":"transformers.mjs","names":[],"sources":["../src/transformers/defaults/defaults.transformer.ts","../src/transformers/lowercase/lowercase.transformer.ts","../src/transformers/omit/omit.transformer.ts","../src/transformers/parse-date/parse-date.transformer.ts","../src/transformers/pick/pick.transformer.ts","../src/transformers/set-now/set-now.transformer.ts","../src/transformers/trim/trim.transformer.ts"],"sourcesContent":["import _get from 'lodash/get.js'\nimport _set from 'lodash/set.js'\nimport type { DefaultsInput } from '../../types.js'\n\n/**\n * Sets default values on an item for fields that are `undefined`.\n * Values can be static or functions that return a value.\n * Supports dot.notation for nested fields.\n *\n * @example\n * ```ts\n * import { transformData, defaults } from 'feathers-utils/transformers'\n *\n * transformData(item => defaults(item, { role: 'user', createdAt: () => new Date() }))\n * ```\n *\n * @see https://utils.feathersjs.com/transformers/defaults.html\n */\nexport function defaults<T extends Record<string, any>>(\n  item: T,\n  defaultValues: DefaultsInput<NoInfer<T>>,\n): void {\n  const entries = Object.entries(defaultValues)\n\n  for (let i = 0, len = entries.length; i < len; i++) {\n    const [key, value] = entries[i]\n\n    if (_get(item, key) === undefined) {\n      _set(item, key, typeof value === 'function' ? value() : value)\n    }\n  }\n}\n","import _get from 'lodash/get.js'\nimport _set from 'lodash/set.js'\nimport type { MaybeArray } from '../../internal.utils.js'\nimport { toArray } from '../../internal.utils.js'\nimport { BadRequest } from '@feathersjs/errors'\nimport type { StringFieldKey } from '../../types.js'\n\n/**\n * Transforms the specified fields of an item to lowercase.\n *\n * @example\n * ```ts\n * import { transformData, lowercase } from 'feathers-utils/transformers'\n *\n * transformData(item => lowercase(item, 'email'))\n * ```\n *\n * @see https://utils.feathersjs.com/transformers/lowercase.html\n */\nexport function lowercase<T extends Record<string, any>>(\n  item: T,\n  fieldNames: MaybeArray<StringFieldKey<NoInfer<T>>>,\n): void {\n  const fieldNamesArr = toArray(fieldNames)\n\n  for (let i = 0, len = fieldNamesArr.length; i < len; i++) {\n    const fieldName = fieldNamesArr[i]\n    const value = _get(item, fieldName)\n\n    if (value == null) {\n      continue\n    }\n\n    if (typeof value !== 'string') {\n      throw new BadRequest(`Expected string (lowercase '${fieldName}')`)\n    }\n\n    _set(item, fieldName, value.toLowerCase())\n  }\n}\n","import _omit from 'lodash/omit.js'\nimport type { MaybeArray } from '../../internal.utils.js'\nimport { toArray } from '../../internal.utils.js'\nimport type { FieldKey } from '../../types.js'\n\n/**\n * Omit the specified fields from an item.\n *\n * @example\n * ```ts\n * import { transformData, omit } from 'feathers-utils/transformers'\n *\n * transformData(item => omit(item, 'email'))\n * ```\n *\n * @see https://utils.feathersjs.com/transformers/omit.html\n */\nexport function omit<T extends Record<string, any>>(\n  item: T,\n  fieldNames: MaybeArray<FieldKey<NoInfer<T>>>,\n): T {\n  return _omit(item, toArray(fieldNames)) as T\n}\n","import { BadRequest } from '@feathersjs/errors'\nimport { toArray, type MaybeArray } from '../../internal.utils.js'\nimport _get from 'lodash/get.js'\nimport _set from 'lodash/set.js'\nimport type { FieldKey } from '../../types.js'\n\n/**\n * Parses the specified fields of an item into Date objects.\n *\n * @example\n * ```ts\n * import { transformData, parseDate } from 'feathers-utils/transformers'\n *\n * transformData(item => parseDate(item, ['startDate', 'endDate']))\n * ```\n *\n * @see https://utils.feathersjs.com/transformers/parse-date.html\n */\nexport function parseDate<T extends Record<string, any>>(\n  item: T,\n  fieldNames: MaybeArray<FieldKey<NoInfer<T>>>,\n): void {\n  const fieldNamesArr = toArray(fieldNames)\n\n  for (let i = 0, len = fieldNamesArr.length; i < len; i++) {\n    const key = fieldNamesArr[i]\n    const value = _get(item, key)\n    if (value) {\n      const date = new Date(value)\n      if (Number.isNaN(date.getTime())) {\n        throw new BadRequest(`Expected valid date (parseDate '${key}')`)\n      }\n      _set(item, key, date)\n    }\n  }\n}\n","import _pick from 'lodash/pick.js'\nimport type { MaybeArray } from '../../internal.utils.js'\nimport { toArray } from '../../internal.utils.js'\nimport type { FieldKey } from '../../types.js'\n\n/**\n * Picks the specified fields from an item.\n *\n * @example\n * ```ts\n * import { transformData, pick } from 'feathers-utils/transformers'\n *\n * transformData(item => pick(item, 'email'))\n * ```\n *\n * @see https://utils.feathersjs.com/transformers/pick.html\n */\nexport function pick<T extends Record<string, any>>(\n  item: T,\n  fieldNames: MaybeArray<FieldKey<NoInfer<T>>>,\n): Partial<T> {\n  return _pick(item, toArray(fieldNames)) as Partial<T>\n}\n","import _set from 'lodash/set.js'\nimport type { MaybeArray } from '../../internal.utils.js'\nimport { toArray } from '../../internal.utils.js'\nimport type { FieldKey } from '../../types.js'\n\n/**\n * Sets the specified fields of an item to the current date and time.\n *\n * @example\n * ```ts\n * import { transformData, setNow } from 'feathers-utils/transformers'\n *\n * transformData(item => setNow(item, ['createdAt', 'updatedAt']))\n * ```\n *\n * @see https://utils.feathersjs.com/transformers/set-now.html\n */\nexport function setNow<T extends Record<string, any>>(\n  item: T,\n  fieldNames: MaybeArray<FieldKey<NoInfer<T>>>,\n): void {\n  const fieldNamesArr = toArray(fieldNames)\n  const now = new Date()\n\n  for (let i = 0, len = fieldNamesArr.length; i < len; i++) {\n    const fieldName = fieldNamesArr[i]\n    _set(item, fieldName, now)\n  }\n}\n","import { BadRequest } from '@feathersjs/errors'\nimport type { MaybeArray } from '../../internal.utils.js'\nimport { toArray } from '../../internal.utils.js'\nimport _get from 'lodash/get.js'\nimport _set from 'lodash/set.js'\nimport type { StringFieldKey } from '../../types.js'\n\n/**\n * Trims the specified fields of an item.\n *\n * @example\n * ```ts\n * import { transformData, trim } from 'feathers-utils/transformers'\n *\n * transformData(item => trim(item, 'password'))\n * ```\n *\n * @see https://utils.feathersjs.com/transformers/trim.html\n */\nexport function trim<T extends Record<string, any>>(\n  item: T,\n  fieldNames: MaybeArray<StringFieldKey<NoInfer<T>>>,\n): void {\n  const fieldNamesArr = toArray(fieldNames)\n\n  for (let i = 0, len = fieldNamesArr.length; i < len; i++) {\n    const fieldName = fieldNamesArr[i]\n    const value = _get(item, fieldName)\n\n    if (value == null) {\n      continue\n    }\n\n    if (typeof value !== 'string') {\n      throw new BadRequest(`Expected string (trim '${fieldName}')`)\n    }\n\n    _set(item, fieldName, value.trim())\n  }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAkBA,SAAgB,SACd,MACA,eACM;CACN,MAAM,UAAU,OAAO,QAAQ,aAAa;CAE5C,KAAK,IAAI,IAAI,GAAG,MAAM,QAAQ,QAAQ,IAAI,KAAK,KAAK;EAClD,MAAM,CAAC,KAAK,SAAS,QAAQ;EAE7B,IAAI,KAAK,MAAM,GAAG,MAAM,KAAA,GACtB,KAAK,MAAM,KAAK,OAAO,UAAU,aAAa,MAAM,IAAI,KAAK;CAEjE;AACF;;;;;;;;;;;;;;;ACZA,SAAgB,UACd,MACA,YACM;CACN,MAAM,gBAAgB,QAAQ,UAAU;CAExC,KAAK,IAAI,IAAI,GAAG,MAAM,cAAc,QAAQ,IAAI,KAAK,KAAK;EACxD,MAAM,YAAY,cAAc;EAChC,MAAM,QAAQ,KAAK,MAAM,SAAS;EAElC,IAAI,SAAS,MACX;EAGF,IAAI,OAAO,UAAU,UACnB,MAAM,IAAI,WAAW,+BAA+B,UAAU,GAAG;EAGnE,KAAK,MAAM,WAAW,MAAM,YAAY,CAAC;CAC3C;AACF;;;;;;;;;;;;;;;ACtBA,SAAgB,KACd,MACA,YACG;CACH,OAAO,MAAM,MAAM,QAAQ,UAAU,CAAC;AACxC;;;;;;;;;;;;;;;ACJA,SAAgB,UACd,MACA,YACM;CACN,MAAM,gBAAgB,QAAQ,UAAU;CAExC,KAAK,IAAI,IAAI,GAAG,MAAM,cAAc,QAAQ,IAAI,KAAK,KAAK;EACxD,MAAM,MAAM,cAAc;EAC1B,MAAM,QAAQ,KAAK,MAAM,GAAG;EAC5B,IAAI,OAAO;GACT,MAAM,OAAO,IAAI,KAAK,KAAK;GAC3B,IAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,GAC7B,MAAM,IAAI,WAAW,mCAAmC,IAAI,GAAG;GAEjE,KAAK,MAAM,KAAK,IAAI;EACtB;CACF;AACF;;;;;;;;;;;;;;;AClBA,SAAgB,KACd,MACA,YACY;CACZ,OAAO,MAAM,MAAM,QAAQ,UAAU,CAAC;AACxC;;;;;;;;;;;;;;;ACLA,SAAgB,OACd,MACA,YACM;CACN,MAAM,gBAAgB,QAAQ,UAAU;CACxC,MAAM,sBAAM,IAAI,KAAK;CAErB,KAAK,IAAI,IAAI,GAAG,MAAM,cAAc,QAAQ,IAAI,KAAK,KAAK;EACxD,MAAM,YAAY,cAAc;EAChC,KAAK,MAAM,WAAW,GAAG;CAC3B;AACF;;;;;;;;;;;;;;;ACTA,SAAgB,KACd,MACA,YACM;CACN,MAAM,gBAAgB,QAAQ,UAAU;CAExC,KAAK,IAAI,IAAI,GAAG,MAAM,cAAc,QAAQ,IAAI,KAAK,KAAK;EACxD,MAAM,YAAY,cAAc;EAChC,MAAM,QAAQ,KAAK,MAAM,SAAS;EAElC,IAAI,SAAS,MACX;EAGF,IAAI,OAAO,UAAU,UACnB,MAAM,IAAI,WAAW,0BAA0B,UAAU,GAAG;EAG9D,KAAK,MAAM,WAAW,MAAM,KAAK,CAAC;CACpC;AACF"}