tell-me-when
Version:
human relative date and time parser
1 lines • 2.91 kB
Source Map (JSON)
{"version":3,"file":"getGrammar.mjs","names":["GrammarNode","locales","grammarCache","Map","getGrammar","localeNames","getDefaultLocaleNames","key","JSON","stringify","grammar","get","set","getGrammarHelper","length","longestOf","map","name","defaultLocaleNames","locale","primaryLocale","Intl","DateTimeFormat","resolvedOptions","localeKeys","Object","keys","primary","find","k","startsWith","filter"],"sources":["../../src/util/getGrammar.ts"],"sourcesContent":["import { GrammarNode } from './GrammarNode'\nimport { locales, SupportedLocale } from '../locales'\n\nconst grammarCache: Map<string, GrammarNode> = new Map()\n\nexport function getGrammar({\n locales: localeNames = getDefaultLocaleNames(),\n}: { locales?: SupportedLocale[] } = {}) {\n const key = JSON.stringify(localeNames)\n let grammar = grammarCache.get(key)\n if (grammar) return grammar\n grammarCache.set(key, (grammar = getGrammarHelper({ localeNames })))\n return grammar\n}\n\nfunction getGrammarHelper({ localeNames }: { localeNames: SupportedLocale[] }) {\n if (localeNames.length === 1) {\n return locales[localeNames[0]]\n }\n return GrammarNode.longestOf(...localeNames.map((name) => locales[name]))\n}\n\nlet defaultLocaleNames: SupportedLocale[] | undefined\n\nfunction getDefaultLocaleNames(): SupportedLocale[] {\n if (defaultLocaleNames) return defaultLocaleNames\n\n const { locale: primaryLocale } = new Intl.DateTimeFormat().resolvedOptions()\n const localeKeys = Object.keys(locales) as SupportedLocale[]\n const primary = localeKeys.find((k) => primaryLocale.startsWith(k))\n return (defaultLocaleNames = [\n ...(primary ? [primary] : []),\n ...localeKeys.filter((k) => k !== primary),\n ])\n}\n"],"mappings":"AAAA,SAASA,WAAW;AACpB,SAASC,OAAO;AAEhB,MAAMC,YAAsC,GAAG,IAAIC,GAAG,CAAC,CAAC;AAExD,OAAO,SAASC,UAAUA,CAAC;EACzBH,OAAO,EAAEI,WAAW,GAAGC,qBAAqB,CAAC;AACd,CAAC,GAAG,CAAC,CAAC,EAAE;EACvC,MAAMC,GAAG,GAAGC,IAAI,CAACC,SAAS,CAACJ,WAAW,CAAC;EACvC,IAAIK,OAAO,GAAGR,YAAY,CAACS,GAAG,CAACJ,GAAG,CAAC;EACnC,IAAIG,OAAO,EAAE,OAAOA,OAAO;EAC3BR,YAAY,CAACU,GAAG,CAACL,GAAG,EAAGG,OAAO,GAAGG,gBAAgB,CAAC;IAAER;EAAY,CAAC,CAAE,CAAC;EACpE,OAAOK,OAAO;AAChB;AAEA,SAASG,gBAAgBA,CAAC;EAAER;AAAgD,CAAC,EAAE;EAC7E,IAAIA,WAAW,CAACS,MAAM,KAAK,CAAC,EAAE;IAC5B,OAAOb,OAAO,CAACI,WAAW,CAAC,CAAC,CAAC,CAAC;EAChC;EACA,OAAOL,WAAW,CAACe,SAAS,CAAC,GAAGV,WAAW,CAACW,GAAG,CAAEC,IAAI,IAAKhB,OAAO,CAACgB,IAAI,CAAC,CAAC,CAAC;AAC3E;AAEA,IAAIC,kBAAiD;AAErD,SAASZ,qBAAqBA,CAAA,EAAsB;EAClD,IAAIY,kBAAkB,EAAE,OAAOA,kBAAkB;EAEjD,MAAM;IAAEC,MAAM,EAAEC;EAAc,CAAC,GAAG,IAAIC,IAAI,CAACC,cAAc,CAAC,CAAC,CAACC,eAAe,CAAC,CAAC;EAC7E,MAAMC,UAAU,GAAGC,MAAM,CAACC,IAAI,CAACzB,OAAO,CAAsB;EAC5D,MAAM0B,OAAO,GAAGH,UAAU,CAACI,IAAI,CAAEC,CAAC,IAAKT,aAAa,CAACU,UAAU,CAACD,CAAC,CAAC,CAAC;EACnE,OAAQX,kBAAkB,GAAG,CAC3B,IAAIS,OAAO,GAAG,CAACA,OAAO,CAAC,GAAG,EAAE,CAAC,EAC7B,GAAGH,UAAU,CAACO,MAAM,CAAEF,CAAC,IAAKA,CAAC,KAAKF,OAAO,CAAC,CAC3C;AACH","ignoreList":[]}