i18next-scanner
Advanced tools
Comparing version 2.4.1 to 2.4.2
@@ -21,2 +21,14 @@ 'use strict'; | ||
var _cloneDeep = require('clone-deep'); | ||
var _cloneDeep2 = _interopRequireDefault(_cloneDeep); | ||
var _deepmerge = require('deepmerge'); | ||
var _deepmerge2 = _interopRequireDefault(_deepmerge); | ||
var _ensureArray = require('ensure-array'); | ||
var _ensureArray2 = _interopRequireDefault(_ensureArray); | ||
var _esprima = require('esprima'); | ||
@@ -36,6 +48,10 @@ | ||
var _ensureArray = require('./ensure-array'); | ||
var _flattenObjectKeys = require('./flatten-object-keys'); | ||
var _ensureArray2 = _interopRequireDefault(_ensureArray); | ||
var _flattenObjectKeys2 = _interopRequireDefault(_flattenObjectKeys); | ||
var _omitEmptyObject = require('./omit-empty-object'); | ||
var _omitEmptyObject2 = _interopRequireDefault(_omitEmptyObject); | ||
var _jsxParser = require('./jsx-parser'); | ||
@@ -585,2 +601,4 @@ | ||
value: function get(key) { | ||
var _this3 = this; | ||
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
@@ -595,12 +613,30 @@ | ||
if (this.options.removeUnusedKeys) { | ||
resStore = this.resScan; | ||
// Merge two objects `resStore` and `resScan` deeply, returning a new merged object with the elements from both `resStore` and `resScan`. | ||
var resMerged = (0, _deepmerge2.default)(this.resStore, this.resScan); | ||
Object.keys(this.resStore).forEach(function (lng) { | ||
Object.keys(_this3.resStore[lng]).forEach(function (ns) { | ||
var resStoreKeys = (0, _flattenObjectKeys2.default)(_lodash2.default.get(_this3.resStore, [lng, ns], {})); | ||
var resScanKeys = (0, _flattenObjectKeys2.default)(_lodash2.default.get(_this3.resScan, [lng, ns], {})); | ||
var unusedKeys = _lodash2.default.differenceWith(resStoreKeys, resScanKeys, _lodash2.default.isEqual); | ||
for (var i = 0; i < unusedKeys.length; ++i) { | ||
_lodash2.default.unset(resMerged[lng][ns], unusedKeys[i]); | ||
} | ||
// Omit empty object | ||
resMerged[lng][ns] = (0, _omitEmptyObject2.default)(resMerged[lng][ns]); | ||
}); | ||
}); | ||
resStore = resMerged; | ||
} else { | ||
resStore = this.resStore; | ||
resStore = (0, _cloneDeep2.default)(this.resStore); | ||
} | ||
if (opts.sort) { | ||
// sort by key | ||
Object.keys(resStore).forEach(function (lng) { | ||
var namespaces = resStore[lng]; | ||
Object.keys(namespaces).forEach(function (ns) { | ||
// Deeply sort an object by its keys without mangling any arrays inside of it | ||
resStore[lng][ns] = (0, _sortobject2.default)(namespaces[ns]); | ||
@@ -660,3 +696,3 @@ }); | ||
value: function set(key) { | ||
var _this3 = this; | ||
var _this4 = this; | ||
@@ -720,8 +756,8 @@ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; | ||
lngs.forEach(function (lng) { | ||
var resLoad = _this3.resStore[lng] && _this3.resStore[lng][ns]; | ||
var resScan = _this3.resScan[lng] && _this3.resScan[lng][ns]; | ||
var resLoad = _this4.resStore[lng] && _this4.resStore[lng][ns]; | ||
var resScan = _this4.resScan[lng] && _this4.resScan[lng][ns]; | ||
if (!_lodash2.default.isPlainObject(resLoad)) { | ||
// Skip undefined namespace | ||
_this3.log('i18next-scanner: The namespace ' + _chalk2.default.yellow(JSON.stringify(ns)) + ' does not exist:', { key: key, options: options }); | ||
_this4.log('i18next-scanner: The namespace ' + _chalk2.default.yellow(JSON.stringify(ns)) + ' does not exist:', { key: key, options: options }); | ||
return; | ||
@@ -811,3 +847,3 @@ } | ||
} | ||
_this3.log('i18next-scanner: Added a new translation key { ' + _chalk2.default.yellow(JSON.stringify(resKey)) + ': ' + _chalk2.default.yellow(JSON.stringify(resLoad[resKey])) + ' } to ' + _chalk2.default.yellow(JSON.stringify(_this3.formatResourceLoadPath(lng, ns)))); | ||
_this4.log('i18next-scanner: Added a new translation key { ' + _chalk2.default.yellow(JSON.stringify(resKey)) + ': ' + _chalk2.default.yellow(JSON.stringify(resLoad[resKey])) + ' } to ' + _chalk2.default.yellow(JSON.stringify(_this4.formatResourceLoadPath(lng, ns)))); | ||
} else if (options.defaultValue) { | ||
@@ -819,3 +855,3 @@ if (!resLoad[resKey]) { | ||
// A default value has provided but it's different with the expected default | ||
_this3.log('i18next-scanner: The translation key ' + _chalk2.default.yellow(JSON.stringify(resKey)) + ' has a different default value, you may need to check the translation key of default language (' + defaultLng + ')'); | ||
_this4.log('i18next-scanner: The translation key ' + _chalk2.default.yellow(JSON.stringify(resKey)) + ' has a different default value, you may need to check the translation key of default language (' + defaultLng + ')'); | ||
} | ||
@@ -822,0 +858,0 @@ } |
{ | ||
"name": "i18next-scanner", | ||
"version": "2.4.1", | ||
"version": "2.4.2", | ||
"description": "Scan your code, extract translation keys/values, and merge them into i18n resource files.", | ||
@@ -51,3 +51,6 @@ "homepage": "https://github.com/i18next/i18next-scanner", | ||
"chalk": "^2.3.0", | ||
"clone-deep": "^3.0.1", | ||
"commander": "^2.13.0", | ||
"deepmerge": "^2.0.1", | ||
"ensure-array": "^1.0.0", | ||
"eol": "^0.9.1", | ||
@@ -57,4 +60,4 @@ "esprima": "^4.0.0", | ||
"htmlparser2": "^3.9.2", | ||
"lodash": "^4.17.4", | ||
"parse5": "^3.0.3", | ||
"lodash": "^4.0.0", | ||
"parse5": "^4.0.0", | ||
"sortobject": "^1.1.1", | ||
@@ -61,0 +64,0 @@ "through2": "^2.0.3", |
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
78399
13
1152
15
+ Addedclone-deep@^3.0.1
+ Addeddeepmerge@^2.0.1
+ Addedensure-array@^1.0.0
+ Addedclone-deep@3.0.1(transitive)
+ Addeddeepmerge@2.2.1(transitive)
+ Addedensure-array@1.0.0(transitive)
+ Addedfor-in@1.0.2(transitive)
+ Addedfor-own@1.0.0(transitive)
+ Addedis-extendable@1.0.1(transitive)
+ Addedis-plain-object@2.0.4(transitive)
+ Addedisobject@3.0.1(transitive)
+ Addedkind-of@6.0.3(transitive)
+ Addedmixin-object@3.0.0(transitive)
+ Addedparse5@4.0.0(transitive)
+ Addedshallow-clone@2.0.2(transitive)
- Removed@types/node@22.7.4(transitive)
- Removedparse5@3.0.3(transitive)
- Removedundici-types@6.19.8(transitive)
Updatedlodash@^4.0.0
Updatedparse5@^4.0.0