aboutsummaryrefslogtreecommitdiff
path: root/node_modules/os-locale
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2017-08-14 05:01:11 +0200
committerFlorian Dold <florian.dold@gmail.com>2017-08-14 05:02:09 +0200
commit363723fc84f7b8477592e0105aeb331ec9a017af (patch)
tree29f92724f34131bac64d6a318dd7e30612e631c7 /node_modules/os-locale
parent5634e77ad96bfe1818f6b6ee70b7379652e5487f (diff)
downloadwallet-core-363723fc84f7b8477592e0105aeb331ec9a017af.tar.xz
node_modules
Diffstat (limited to 'node_modules/os-locale')
-rw-r--r--node_modules/os-locale/index.js160
-rw-r--r--node_modules/os-locale/package.json10
-rw-r--r--node_modules/os-locale/readme.md20
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)