diff options
| author | Shipwreckt <me@shipwreckt.co.uk> | 2025-10-31 20:02:14 +0000 |
|---|---|---|
| committer | Shipwreckt <me@shipwreckt.co.uk> | 2025-10-31 20:02:14 +0000 |
| commit | 7a52ddeba2a68388b544f529d2d92104420f77b0 (patch) | |
| tree | 15ddd47457a2cb4a96060747437d36474e4f6b4e /node_modules/iso-639-1/src/index.js | |
| parent | 53d6ae2b5568437afa5e4995580a3fb679b7b91b (diff) | |
Changed from static to 11ty!
Diffstat (limited to 'node_modules/iso-639-1/src/index.js')
| -rw-r--r-- | node_modules/iso-639-1/src/index.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/node_modules/iso-639-1/src/index.js b/node_modules/iso-639-1/src/index.js new file mode 100644 index 0000000..abfef8d --- /dev/null +++ b/node_modules/iso-639-1/src/index.js @@ -0,0 +1,59 @@ +const LANGUAGES_LIST = require('./data.js'); + +const LANGUAGES = {}; +const LANGUAGES_BY_NAME = {}; +const LANGUAGE_CODES = []; +const LANGUAGE_NAMES = []; +const LANGUAGE_NATIVE_NAMES = []; + +for (const code in LANGUAGES_LIST) { + const { name, nativeName } = LANGUAGES_LIST[code]; + LANGUAGES[code] = + LANGUAGES_BY_NAME[name.toLowerCase()] = + LANGUAGES_BY_NAME[nativeName.toLowerCase()] = + { code, name, nativeName }; + LANGUAGE_CODES.push(code); + LANGUAGE_NAMES.push(name); + LANGUAGE_NATIVE_NAMES.push(nativeName); +} + +module.exports = class ISO6391 { + static getLanguages(codes = []) { + return codes.map(code => + ISO6391.validate(code) + ? Object.assign({}, LANGUAGES[code]) + : { code, name: '', nativeName: '' } + ); + } + + static getName(code) { + return ISO6391.validate(code) ? LANGUAGES_LIST[code].name : ''; + } + + static getAllNames() { + return LANGUAGE_NAMES.slice(); + } + + static getNativeName(code) { + return ISO6391.validate(code) ? LANGUAGES_LIST[code].nativeName : ''; + } + + static getAllNativeNames() { + return LANGUAGE_NATIVE_NAMES.slice(); + } + + static getCode(name) { + name = name.toLowerCase(); + return LANGUAGES_BY_NAME.hasOwnProperty(name) + ? LANGUAGES_BY_NAME[name].code + : ''; + } + + static getAllCodes() { + return LANGUAGE_CODES.slice(); + } + + static validate(code) { + return LANGUAGES_LIST.hasOwnProperty(code); + } +} |
