diff --git a/fluent-langneg/src/accepted_languages.js b/fluent-langneg/src/accepted_languages.js new file mode 100644 index 000000000..b361a6caf --- /dev/null +++ b/fluent-langneg/src/accepted_languages.js @@ -0,0 +1,10 @@ + +export default function aceptedLanguages(string = '') { + if (typeof string !== 'string') { + throw new TypeError('Argument must be a string'); + } + const tokens = string.split(',').map(t => t.trim()); + return tokens.filter(t => t !== '').map(t => { + return t.split(';')[0]; + }); +} diff --git a/fluent-langneg/src/headers.js b/fluent-langneg/src/headers.js deleted file mode 100644 index 6d5b35dc4..000000000 --- a/fluent-langneg/src/headers.js +++ /dev/null @@ -1,8 +0,0 @@ - -export default function parseAcceptedLanguagesHeaderIntoArray(string = '') { - if (typeof string !== 'string') throw new TypeError('Argument must be a string'); - const tokens = string.split(',').map(t => t.trim()); - return tokens.filter(t => t !== '').map(t => { - return t.split(';')[0]; - }); -} diff --git a/fluent-langneg/src/index.js b/fluent-langneg/src/index.js index 335ba5bb6..7a9fdc2db 100644 --- a/fluent-langneg/src/index.js +++ b/fluent-langneg/src/index.js @@ -7,6 +7,7 @@ * */ +export { default as acceptedLanguages } from './accepted_languages'; import filterMatches from './matches'; function GetOption(options, property, type, values, fallback) { diff --git a/fluent-langneg/test/headers_test.js b/fluent-langneg/test/headers_test.js index b043f0222..4443f71a0 100644 --- a/fluent-langneg/test/headers_test.js +++ b/fluent-langneg/test/headers_test.js @@ -1,17 +1,17 @@ import assert from 'assert'; -import parseHeaderIntoArray from '../src/headers'; +import acceptedLanguages from '../src/accepted_languages'; suite('parse headers', () => { test('without quality values', () => { assert.deepStrictEqual( - parseHeaderIntoArray('en-US, fr, pl'), [ + acceptedLanguages('en-US, fr, pl'), [ 'en-US', 'fr', 'pl' ] ); assert.deepStrictEqual( - parseHeaderIntoArray('sr-Latn'), [ + acceptedLanguages('sr-Latn'), [ 'sr-Latn' ] ); @@ -19,7 +19,7 @@ suite('parse headers', () => { test('with quality values', () => { assert.deepStrictEqual( - parseHeaderIntoArray('fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5'), [ + acceptedLanguages('fr-CH, fr;q=0.9, en;q=0.8, de;q=0.7, *;q=0.5'), [ 'fr-CH', 'fr', 'en', @@ -39,7 +39,7 @@ suite('parse headers', () => { ]; args.forEach(arg => { - assert.throws(parseHeaderIntoArray.bind(null, arg), TypeError); + assert.throws(acceptedLanguages.bind(null, arg), TypeError); }); }); });