Comparing version 1.1.0 to 1.2.0
53
index.js
'use strict'; | ||
var childProcess = require('child_process'); | ||
var execFileSync = require('exec-file-sync'); | ||
var lcid = require('lcid'); | ||
var cache; | ||
function getEnvLocale() { | ||
var env = process.env; | ||
var ret = env.LC_ALL || env.LANGUAGE || env.LANG || env.LC_MESSAGES; | ||
cache = getLocale(ret); | ||
return ret; | ||
} | ||
function parseLocale(x) { | ||
var res = /(?:LC_ALL|LANG|LC_MESSAGES|LC_CTYPE|)="([^"]{2,})"/.exec(x); | ||
return res && res[1]; | ||
} | ||
function getLocale(str) { | ||
return str.replace(/[.:].*/, '') || 'en_US'; | ||
return (str && str.replace(/[.:].*/, '')) || 'en_US'; | ||
} | ||
module.exports = function (cb) { | ||
if (cache) { | ||
if (cache || getEnvLocale()) { | ||
setImmediate(cb, null, cache); | ||
@@ -16,11 +29,2 @@ return; | ||
var env = process.env; | ||
var locale = env.LC_ALL || env.LANGUAGE || env.LANG || env.LC_MESSAGES; | ||
if (locale) { | ||
cache = getLocale(locale); | ||
setImmediate(cb, null, cache); | ||
return; | ||
} | ||
var getAppleLocale = function () { | ||
@@ -56,3 +60,3 @@ childProcess.execFile('defaults', ['read', '-g', 'AppleLocale'], function (err, stdout) { | ||
var res = /(?:LC_ALL|LANG|LC_MESSAGES|LC_CTYPE|)="([^"]{2,})"/.exec(stdout); | ||
var res = parseLocale(stdout); | ||
@@ -64,3 +68,3 @@ if (!res && process.platform === 'darwin') { | ||
cache = getLocale(res && res[1]); | ||
cache = getLocale(res); | ||
cb(null, cache); | ||
@@ -70,1 +74,24 @@ }); | ||
}; | ||
module.exports.sync = function () { | ||
if (cache || getEnvLocale()) { | ||
return cache; | ||
} | ||
if (process.platform === 'win32') { | ||
var stdout = execFileSync('wmic', ['os', 'get', 'locale'], {encoding: 'utf8'}); | ||
var lcidCode = parseInt(stdout.replace('Locale', ''), 16); | ||
cache = lcid.from(lcidCode) || 'en_US'; | ||
return cache; | ||
} | ||
var res = parseLocale(execFileSync('locale', {encoding: 'utf8'})); | ||
if (!res && process.platform === 'darwin') { | ||
cache = execFileSync('defaults', ['read', '-g', 'AppleLocale'], {encoding: 'utf8'}).trim() || 'en_US'; | ||
return cache; | ||
} | ||
cache = getLocale(res); | ||
return cache; | ||
}; |
{ | ||
"name": "os-locale", | ||
"version": "1.1.0", | ||
"version": "1.2.0", | ||
"description": "Get the system locale", | ||
@@ -16,3 +16,3 @@ "license": "MIT", | ||
"scripts": { | ||
"test": "node test.js" | ||
"test": "xo && node test.js" | ||
}, | ||
@@ -37,7 +37,9 @@ "files": [ | ||
"dependencies": { | ||
"exec-file-sync": "^2.0.0", | ||
"lcid": "^1.0.0" | ||
}, | ||
"devDependencies": { | ||
"ava": "0.0.4" | ||
"ava": "0.0.4", | ||
"xo": "*" | ||
} | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
4406
77
2
2
+ Addedexec-file-sync@^2.0.0
+ Addedbuffer-from@1.1.2(transitive)
+ Addedconcat-stream@1.6.2(transitive)
+ Addedcore-util-is@1.0.3(transitive)
+ Addedexec-file-sync@2.0.2(transitive)
+ Addedinherits@2.0.4(transitive)
+ Addedis-obj@1.0.1(transitive)
+ Addedisarray@1.0.0(transitive)
+ Addedobject-assign@4.1.1(transitive)
+ Addedos-shim@0.1.3(transitive)
+ Addedprocess-nextick-args@2.0.1(transitive)
+ Addedreadable-stream@2.3.8(transitive)
+ Addedsafe-buffer@5.1.2(transitive)
+ Addedspawn-sync@1.0.15(transitive)
+ Addedstring_decoder@1.1.1(transitive)
+ Addedtypedarray@0.0.6(transitive)
+ Addedutil-deprecate@1.0.2(transitive)