@node-red/util
Advanced tools
Comparing version 1.2.7 to 1.2.8
@@ -27,3 +27,3 @@ /** | ||
var path = require("path"); | ||
var fs = require("fs"); | ||
var fs = require("fs-extra"); | ||
@@ -86,32 +86,24 @@ var defaultLang = "en-US"; | ||
function readFile(lng, ns) { | ||
return new Promise((resolve, reject) => { | ||
if (resourceCache[ns] && resourceCache[ns][lng]) { | ||
resolve(resourceCache[ns][lng]); | ||
} else if (resourceMap[ns]) { | ||
var file = path.join(resourceMap[ns].basedir, lng, resourceMap[ns].file); | ||
fs.readFile(file, "utf8", function (err, content) { | ||
if (err) { | ||
reject(err); | ||
} else { | ||
try { | ||
resourceCache[ns] = resourceCache[ns] || {}; | ||
resourceCache[ns][lng] = JSON.parse(content.replace(/^\uFEFF/, '')); | ||
var baseLng = lng.split('-')[0]; | ||
if (baseLng !== lng && resourceCache[ns][baseLng]) { | ||
mergeCatalog(resourceCache[ns][baseLng], resourceCache[ns][lng]); | ||
} | ||
if (lng !== defaultLang) { | ||
mergeCatalog(resourceCache[ns][defaultLang], resourceCache[ns][lng]); | ||
} | ||
resolve(resourceCache[ns][lng]); | ||
} catch (e) { | ||
reject(e); | ||
} | ||
} | ||
}); | ||
} else { | ||
reject(new Error("Unrecognised namespace")); | ||
async function readFile(lng, ns) { | ||
if (/[^a-z\-]/i.test(lng)) { | ||
throw new Error("Invalid language: "+lng) | ||
} | ||
if (resourceCache[ns] && resourceCache[ns][lng]) { | ||
return resourceCache[ns][lng]; | ||
} else if (resourceMap[ns]) { | ||
const file = path.join(resourceMap[ns].basedir, lng, resourceMap[ns].file); | ||
const content = await fs.readFile(file, "utf8"); | ||
resourceCache[ns] = resourceCache[ns] || {}; | ||
resourceCache[ns][lng] = JSON.parse(content.replace(/^\uFEFF/, '')); | ||
var baseLng = lng.split('-')[0]; | ||
if (baseLng !== lng && resourceCache[ns][baseLng]) { | ||
mergeCatalog(resourceCache[ns][baseLng], resourceCache[ns][lng]); | ||
} | ||
}); | ||
if (lng !== defaultLang) { | ||
mergeCatalog(resourceCache[ns][defaultLang], resourceCache[ns][lng]); | ||
} | ||
return resourceCache[ns][lng]; | ||
} else { | ||
throw new Error("Unrecognised namespace"); | ||
} | ||
} | ||
@@ -187,2 +179,6 @@ | ||
lang = lang || defaultLang; | ||
if (/[^a-z\-]/i.test(lang)) { | ||
throw new Error("Invalid language: "+lng) | ||
} | ||
if (resourceCache.hasOwnProperty(namespace)) { | ||
@@ -189,0 +185,0 @@ result = resourceCache[namespace][lang]; |
{ | ||
"name": "@node-red/util", | ||
"version": "1.2.7", | ||
"version": "1.2.8", | ||
"license": "Apache-2.0", | ||
@@ -5,0 +5,0 @@ "repository": { |
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
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
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
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
55048
1311