{"version":3,"sources":["../src/formatStr.ts"],"sourcesContent":["import { parts } from \"./parts\"\nimport { escapeTokens } from \"./common\"\nimport type { Format, Part } from \"./types\"\n\n/**\n * Return the string format for a given format. For example:\n * ```js\n * formatStr({ date: 'long' }, 'en') // dddd, MMMM D, YYYY\n * ```\n * @param format - A format string or object.\n * @param locale - A locale or en by default.\n */\nexport function formatStr(\n  format: Format,\n  locale = \"en\",\n  escapeLiterals = false,\n  filterParts: (part: Part) => boolean = () => true\n): string {\n  return parts(format, locale)\n    .filter(filterParts)\n    .reduce(\n      (f, p) =>\n        (f +=\n          escapeLiterals && p.partName === \"literal\"\n            ? escapeTokens(p.token)\n            : p.token),\n      \"\"\n    )\n    .normalize(\"NFKC\")\n}\n"],"mappings":";AAAA,SAAS,aAAa;AACtB,SAAS,oBAAoB;AAWtB,SAAS,UACd,QACA,SAAS,MACT,iBAAiB,OACjB,cAAuC,MAAM,MACrC;AACR,SAAO,MAAM,QAAQ,MAAM,EACxB,OAAO,WAAW,EAClB;AAAA,IACC,CAAC,GAAG,MACD,KACC,kBAAkB,EAAE,aAAa,YAC7B,aAAa,EAAE,KAAK,IACpB,EAAE;AAAA,IACV;AAAA,EACF,EACC,UAAU,MAAM;AACrB;","names":[]}