mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
4f1cb53b29
Summary: - Add app/common/CommTypes.ts to define types shared by client and server. - Include @types/ws npm package Test Plan: Intended to have no changes in behavior Reviewers: paulfitz Reviewed By: paulfitz Differential Revision: https://phab.getgrist.com/D3467
17 lines
637 B
TypeScript
17 lines
637 B
TypeScript
import {parse as languageParser} from "accept-language-parser";
|
|
import {IncomingMessage} from 'http';
|
|
import {locales} from 'app/common/Locales';
|
|
|
|
/**
|
|
* Returns the locale from a request, falling back to `defaultLocale`
|
|
* if unable to determine the locale.
|
|
*/
|
|
export function localeFromRequest(req: IncomingMessage, defaultLocale: string = 'en-US') {
|
|
const language = languageParser(req.headers["accept-language"] as string)[0];
|
|
if (!language) { return defaultLocale; }
|
|
|
|
const locale = `${language.code}-${language.region}`;
|
|
const supports = locales.some(l => l.code === locale);
|
|
return supports ? locale : defaultLocale;
|
|
}
|