diff options
author | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:01:11 +0200 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2017-08-14 05:02:09 +0200 |
commit | 363723fc84f7b8477592e0105aeb331ec9a017af (patch) | |
tree | 29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/os-locale | |
parent | 5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff) | |
download | wallet-core-363723fc84f7b8477592e0105aeb331ec9a017af.tar.xz |
node_modules
Diffstat (limited to 'node_modules/os-locale')
-rw-r--r-- | node_modules/os-locale/index.js | 160 | ||||
-rw-r--r-- | node_modules/os-locale/package.json | 10 | ||||
-rw-r--r-- | node_modules/os-locale/readme.md | 20 |
3 files changed, 86 insertions, 104 deletions
diff --git a/node_modules/os-locale/index.js b/node_modules/os-locale/index.js index 2c8a0065d..1ada7a494 100644 --- a/node_modules/os-locale/index.js +++ b/node_modules/os-locale/index.js @@ -1,127 +1,101 @@ 'use strict'; -var childProcess = require('child_process'); -var execFileSync = childProcess.execFileSync; -var lcid = require('lcid'); -var defaultOpts = {spawn: true}; -var cache; - -function fallback() { - cache = 'en_US'; - return cache; -} +const execa = require('execa'); +const lcid = require('lcid'); +const mem = require('mem'); + +const defaultOpts = {spawn: true}; +const defaultLocale = 'en_US'; function getEnvLocale(env) { env = env || process.env; - var ret = env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE; - cache = getLocale(ret); - return ret; + return env.LC_ALL || env.LC_MESSAGES || env.LANG || env.LANGUAGE; } function parseLocale(x) { - var env = x.split('\n').reduce(function (env, def) { + const env = x.split('\n').reduce((env, def) => { def = def.split('='); - env[def[0]] = def[1]; + env[def[0]] = def[1].replace(/^"|"$/g, ''); return env; }, {}); return getEnvLocale(env); } function getLocale(str) { - return (str && str.replace(/[.:].*/, '')) || fallback(); + return (str && str.replace(/[.:].*/, '')); } -module.exports = function (opts, cb) { - if (typeof opts === 'function') { - cb = opts; - opts = defaultOpts; - } else { - opts = opts || defaultOpts; - } +function getAppleLocale() { + return execa.stdout('defaults', ['read', '-g', 'AppleLocale']); +} + +function getAppleLocaleSync() { + return execa.sync('defaults', ['read', '-g', 'AppleLocale']).stdout; +} - if (cache || getEnvLocale() || opts.spawn === false) { - setImmediate(cb, null, cache); - return; +function getUnixLocale() { + if (process.platform === 'darwin') { + return getAppleLocale(); } - var getAppleLocale = function () { - childProcess.execFile('defaults', ['read', '-g', 'AppleLocale'], function (err, stdout) { - if (err) { - fallback(); - return; - } + return execa.stdout('locale') + .then(stdout => getLocale(parseLocale(stdout))); +} - cache = stdout.trim() || fallback(); - cb(null, cache); - }); - }; +function getUnixLocaleSync() { + if (process.platform === 'darwin') { + return getAppleLocaleSync(); + } - if (process.platform === 'win32') { - childProcess.execFile('wmic', ['os', 'get', 'locale'], function (err, stdout) { - if (err) { - fallback(); - return; - } + return getLocale(parseLocale(execa.sync('locale').stdout)); +} - var lcidCode = parseInt(stdout.replace('Locale', ''), 16); - cache = lcid.from(lcidCode) || fallback(); - cb(null, cache); +function getWinLocale() { + return execa.stdout('wmic', ['os', 'get', 'locale']) + .then(stdout => { + const lcidCode = parseInt(stdout.replace('Locale', ''), 16); + return lcid.from(lcidCode); }); - } else { - childProcess.execFile('locale', function (err, stdout) { - if (err) { - fallback(); - return; - } - - var res = parseLocale(stdout); - - if (!res && process.platform === 'darwin') { - getAppleLocale(); - return; - } +} - cache = getLocale(res); - cb(null, cache); - }); - } -}; +function getWinLocaleSync() { + const stdout = execa.sync('wmic', ['os', 'get', 'locale']).stdout; + const lcidCode = parseInt(stdout.replace('Locale', ''), 16); + return lcid.from(lcidCode); +} -module.exports.sync = function (opts) { +module.exports = mem(opts => { opts = opts || defaultOpts; + const envLocale = getEnvLocale(); + let thenable; - if (cache || getEnvLocale() || !execFileSync || opts.spawn === false) { - return cache; - } - - if (process.platform === 'win32') { - var stdout; - - try { - stdout = execFileSync('wmic', ['os', 'get', 'locale'], {encoding: 'utf8'}); - } catch (err) { - return fallback(); - } - - var lcidCode = parseInt(stdout.replace('Locale', ''), 16); - cache = lcid.from(lcidCode) || fallback(); - return cache; + if (envLocale || opts.spawn === false) { + thenable = Promise.resolve(getLocale(envLocale)); + } else if (process.platform === 'win32') { + thenable = getWinLocale(); + } else { + thenable = getUnixLocale(); } - var res; + return thenable.then(locale => locale || defaultLocale) + .catch(() => defaultLocale); +}); - try { - res = parseLocale(execFileSync('locale', {encoding: 'utf8'})); - } catch (err) {} +module.exports.sync = mem(opts => { + opts = opts || defaultOpts; + const envLocale = getEnvLocale(); + let res; - if (!res && process.platform === 'darwin') { + if (envLocale || opts.spawn === false) { + res = getLocale(envLocale); + } else { try { - cache = execFileSync('defaults', ['read', '-g', 'AppleLocale'], {encoding: 'utf8'}).trim() || fallback(); - return cache; - } catch (err) { - return fallback(); - } + if (process.platform === 'win32') { + res = getWinLocaleSync(); + } else { + res = getUnixLocaleSync(); + } + } catch (err) {} } - cache = getLocale(res); - return cache; -}; + return res || defaultLocale; +}); diff --git a/node_modules/os-locale/package.json b/node_modules/os-locale/package.json index 934f57239..84c095333 100644 --- a/node_modules/os-locale/package.json +++ b/node_modules/os-locale/package.json @@ -1,6 +1,6 @@ { "name": "os-locale", - "version": "1.4.0", + "version": "2.1.0", "description": "Get the system locale", "license": "MIT", "repository": "sindresorhus/os-locale", @@ -10,7 +10,7 @@ "url": "sindresorhus.com" }, "engines": { - "node": ">=0.10.0" + "node": ">=4" }, "scripts": { "test": "xo && ava" @@ -33,11 +33,13 @@ "region" ], "dependencies": { - "lcid": "^1.0.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" }, "devDependencies": { "ava": "*", - "require-uncached": "^1.0.2", + "import-fresh": "^2.0.0", "xo": "*" } } diff --git a/node_modules/os-locale/readme.md b/node_modules/os-locale/readme.md index b80a0bd0b..7c80d3358 100644 --- a/node_modules/os-locale/readme.md +++ b/node_modules/os-locale/readme.md @@ -1,6 +1,6 @@ # os-locale [![Build Status](https://travis-ci.org/sindresorhus/os-locale.svg?branch=master)](https://travis-ci.org/sindresorhus/os-locale) -> Get the system [locale](http://en.wikipedia.org/wiki/Locale) +> Get the system [locale](https://en.wikipedia.org/wiki/Locale_(computer_software)) Useful for localizing your module or app. @@ -17,9 +17,9 @@ $ npm install --save os-locale ## Usage ```js -var osLocale = require('os-locale'); +const osLocale = require('os-locale'); -osLocale(function (err, locale) { +osLocale().then(locale => { console.log(locale); //=> 'en_US' }); @@ -28,15 +28,21 @@ osLocale(function (err, locale) { ## API -### osLocale([options], callback(error, locale)) +### osLocale([options]) + +Returns a `Promise` for the locale. ### osLocale.sync([options]) Returns the locale. -#### options.spawn +#### options + +Type: `Object` + +##### spawn -Type: `boolean` +Type: `boolean`<br> Default: `true` Set to `false` to avoid spawning subprocesses and instead only resolve the locale from environment variables. @@ -44,4 +50,4 @@ Set to `false` to avoid spawning subprocesses and instead only resolve the local ## License -MIT © [Sindre Sorhus](http://sindresorhus.com) +MIT © [Sindre Sorhus](https://sindresorhus.com) |