{"version":3,"file":"parse-accept-language.cjs","sources":["../../../src/router/http/parse-accept-language.ts"],"sourcesContent":["/**\n * Parses the Accept-Language header value and returns an array of locales sorted by quality.\n *\n * @param headerValue Accept-Language header value.\n * @returns Array of locales sorted by quality.\n */\nexport const parseAcceptLanguage = (headerValue: string): string[] =>\n\theaderValue\n\t\t.split(',')\n\t\t.map((val) => {\n\t\t\tconst [lang, qual] = val.split(';') as [string, string | undefined];\n\t\t\tconst quality = parseFloat((qual ?? 'q=1').replace(/q *= */gi, ''));\n\n\t\t\treturn [lang.trim(), Number.isNaN(quality) ? 1 : quality] as [string, number];\n\t\t})\n\t\t.sort((a, b) => b[1] - a[1])\n\t\t.map(([locale]) => (locale === '*' || locale === '' ? [] : locale))\n\t\t.flat();\n"],"names":["parseAcceptLanguage","headerValue","val","lang","qual","quality","a","b","locale"],"mappings":"gFAMa,MAAAA,EAAuBC,GACnCA,EACE,MAAM,GAAG,EACT,IAAKC,GAAQ,CACb,KAAM,CAACC,EAAMC,CAAI,EAAIF,EAAI,MAAM,GAAG,EAC5BG,EAAU,YAAYD,GAAQ,OAAO,QAAQ,WAAY,EAAE,CAAC,EAE3D,MAAA,CAACD,EAAK,KAAK,EAAG,OAAO,MAAME,CAAO,EAAI,EAAIA,CAAO,CACzD,CAAC,EACA,KAAK,CAACC,EAAGC,IAAMA,EAAE,CAAC,EAAID,EAAE,CAAC,CAAC,EAC1B,IAAI,CAAC,CAACE,CAAM,IAAOA,IAAW,KAAOA,IAAW,GAAK,CAAA,EAAKA,CAAO,EACjE,KAAK"}