Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

os-locale

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

os-locale - npm Package Compare versions

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": "*"
}
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc