Socket
Socket
Sign inDemoInstall

i18next-scanner

Package Overview
Dependencies
Maintainers
1
Versions
92
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

i18next-scanner - npm Package Compare versions

Comparing version 1.9.1 to 1.9.2

lib/ensure-array.js

16

lib/index.js
'use strict';
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _fs = require('fs');

@@ -15,2 +11,10 @@

var _get = require('lodash/get');
var _get2 = _interopRequireDefault(_get);
var _includes = require('lodash/includes');
var _includes2 = _interopRequireDefault(_includes);
var _vinyl = require('vinyl');

@@ -37,3 +41,3 @@

if (_lodash2.default.isObject(options.attr) && _lodash2.default.includes(options.attr.extensions, extname)) {
if ((0, _includes2.default)((0, _get2.default)(options, 'attr.extensions'), extname)) {
// Parse attribute (e.g. data-i18n="key")

@@ -43,3 +47,3 @@ parser.parseAttrFromString(content);

if (_lodash2.default.isObject(options.func) && _lodash2.default.includes(options.func.extensions, extname)) {
if ((0, _includes2.default)((0, _get2.default)(options, 'func.extensions'), extname)) {
// Parse translation function (e.g. i18next.t('key'))

@@ -46,0 +50,0 @@ parser.parseFuncFromString(content);

@@ -7,9 +7,7 @@ 'use strict';

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* eslint no-console: 0 */
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _fs = require('fs');

@@ -19,4 +17,64 @@

var _isArray = require('lodash/isArray');
var _isArray2 = _interopRequireDefault(_isArray);
var _isFunction = require('lodash/isFunction');
var _isFunction2 = _interopRequireDefault(_isFunction);
var _isObject = require('lodash/isObject');
var _isObject2 = _interopRequireDefault(_isObject);
var _isUndefined = require('lodash/isUndefined');
var _isUndefined2 = _interopRequireDefault(_isUndefined);
var _isString = require('lodash/isString');
var _isString2 = _interopRequireDefault(_isString);
var _flatten = require('lodash/flatten');
var _flatten2 = _interopRequireDefault(_flatten);
var _union = require('lodash/union');
var _union2 = _interopRequireDefault(_union);
var _get = require('lodash/get');
var _get2 = _interopRequireDefault(_get);
var _set = require('lodash/set');
var _set2 = _interopRequireDefault(_set);
var _escapeRegExp = require('lodash/escapeRegExp');
var _escapeRegExp2 = _interopRequireDefault(_escapeRegExp);
var _includes = require('lodash/includes');
var _includes2 = _interopRequireDefault(_includes);
var _trim = require('lodash/trim');
var _trim2 = _interopRequireDefault(_trim);
var _toPairs = require('lodash/toPairs');
var _toPairs2 = _interopRequireDefault(_toPairs);
var _sortBy = require('lodash/sortBy');
var _sortBy2 = _interopRequireDefault(_sortBy);
var _esprima = require('esprima');
var _ensureArray = require('./ensure-array');
var _ensureArray2 = _interopRequireDefault(_ensureArray);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -117,30 +175,30 @@

// Attribute
if (_lodash2.default.isUndefined(_lodash2.default.get(options, 'attr.list'))) {
_lodash2.default.set(options, 'attr.list', defaults.attr.list);
if ((0, _isUndefined2.default)((0, _get2.default)(options, 'attr.list'))) {
(0, _set2.default)(options, 'attr.list', defaults.attr.list);
}
if (_lodash2.default.isUndefined(_lodash2.default.get(options, 'attr.extensions'))) {
_lodash2.default.set(options, 'attr.extensions', defaults.attr.extensions);
if ((0, _isUndefined2.default)((0, _get2.default)(options, 'attr.extensions'))) {
(0, _set2.default)(options, 'attr.extensions', defaults.attr.extensions);
}
// Function
if (_lodash2.default.isUndefined(_lodash2.default.get(options, 'func.list'))) {
_lodash2.default.set(options, 'func.list', defaults.func.list);
if ((0, _isUndefined2.default)((0, _get2.default)(options, 'func.list'))) {
(0, _set2.default)(options, 'func.list', defaults.func.list);
}
// Resource
if (_lodash2.default.isUndefined(_lodash2.default.get(options, 'func.extensions'))) {
_lodash2.default.set(options, 'func.extensions', defaults.func.extensions);
if ((0, _isUndefined2.default)((0, _get2.default)(options, 'func.extensions'))) {
(0, _set2.default)(options, 'func.extensions', defaults.func.extensions);
}
if (_lodash2.default.isUndefined(_lodash2.default.get(options, 'resource.loadPath'))) {
_lodash2.default.set(options, 'resource.loadPath', defaults.resource.loadPath);
if ((0, _isUndefined2.default)((0, _get2.default)(options, 'resource.loadPath'))) {
(0, _set2.default)(options, 'resource.loadPath', defaults.resource.loadPath);
}
if (_lodash2.default.isUndefined(_lodash2.default.get(options, 'resource.savePath'))) {
_lodash2.default.set(options, 'resource.savePath', defaults.resource.savePath);
if ((0, _isUndefined2.default)((0, _get2.default)(options, 'resource.savePath'))) {
(0, _set2.default)(options, 'resource.savePath', defaults.resource.savePath);
}
if (_lodash2.default.isUndefined(_lodash2.default.get(options, 'resource.jsonIndent'))) {
_lodash2.default.set(options, 'resource.jsonIndent', defaults.resource.jsonIndent);
if ((0, _isUndefined2.default)((0, _get2.default)(options, 'resource.jsonIndent'))) {
(0, _set2.default)(options, 'resource.jsonIndent', defaults.resource.jsonIndent);
}
// Accept both nsseparator or nsSeparator
if (!_lodash2.default.isUndefined(options.nsseparator)) {
if (!(0, _isUndefined2.default)(options.nsseparator)) {
options.nsSeparator = options.nsseparator;

@@ -150,3 +208,3 @@ delete options.nsseparator;

// Allowed only string or false
if (!_lodash2.default.isString(options.nsSeparator)) {
if (!(0, _isString2.default)(options.nsSeparator)) {
options.nsSeparator = false;

@@ -156,3 +214,3 @@ }

// Accept both keyseparator or keySeparator
if (!_lodash2.default.isUndefined(options.keyseparator)) {
if (!(0, _isUndefined2.default)(options.keyseparator)) {
options.keySeparator = options.keyseparator;

@@ -162,11 +220,11 @@ delete options.keyseparator;

// Allowed only string or false
if (!_lodash2.default.isString(options.keySeparator)) {
if (!(0, _isString2.default)(options.keySeparator)) {
options.keySeparator = false;
}
if (!_lodash2.default.isArray(options.ns)) {
if (!(0, _isArray2.default)(options.ns)) {
options.ns = [options.ns];
}
options.ns = (0, _lodash2.default)(options.ns.concat(options.defaultNs)).flatten().union().value();
options.ns = (0, _union2.default)((0, _flatten2.default)(options.ns.concat(options.defaultNs)));

@@ -189,7 +247,7 @@ return options;

this.options = _lodash2.default.assign({}, defaults);
this.options = _extends({}, defaults);
this.resStore = {};
this.resScan = {};
this.options = transformOptions(_lodash2.default.extend({}, this.options, options));
this.options = transformOptions(_extends({}, this.options, options));

@@ -245,4 +303,4 @@ var lngs = this.options.lngs;

var regex = {
lng: new RegExp(_lodash2.default.escapeRegExp(options.interpolation.prefix + 'lng' + options.interpolation.suffix), 'g'),
ns: new RegExp(_lodash2.default.escapeRegExp(options.interpolation.prefix + 'ns' + options.interpolation.suffix), 'g')
lng: new RegExp((0, _escapeRegExp2.default)(options.interpolation.prefix + 'lng' + options.interpolation.suffix), 'g'),
ns: new RegExp((0, _escapeRegExp2.default)(options.interpolation.prefix + 'ns' + options.interpolation.suffix), 'g')
};

@@ -257,4 +315,4 @@

var regex = {
lng: new RegExp(_lodash2.default.escapeRegExp(options.interpolation.prefix + 'lng' + options.interpolation.suffix), 'g'),
ns: new RegExp(_lodash2.default.escapeRegExp(options.interpolation.prefix + 'ns' + options.interpolation.suffix), 'g')
lng: new RegExp((0, _escapeRegExp2.default)(options.interpolation.prefix + 'lng' + options.interpolation.suffix), 'g'),
ns: new RegExp((0, _escapeRegExp2.default)(options.interpolation.prefix + 'ns' + options.interpolation.suffix), 'g')
};

@@ -278,3 +336,3 @@

if (_lodash2.default.isFunction(opts)) {
if ((0, _isFunction2.default)(opts)) {
customHandler = opts;

@@ -284,6 +342,11 @@ opts = {};

var funcs = opts.list || this.options.func.list;
var matchPattern = (0, _lodash2.default)(funcs).map(function (func) {
var funcs = opts.list !== undefined ? (0, _ensureArray2.default)(opts.list) : (0, _ensureArray2.default)(this.options.func.list);
if (funcs.length === 0) {
return this;
}
var matchPattern = funcs.map(function (func) {
return '(?:' + func + ')';
}).value().join('|').replace(/\./g, '\\.');
}).join('|').replace(/\./g, '\\.');
var pattern = '(?:(?:^\\s*)|[^a-zA-Z0-9_])(?:' + matchPattern + ')\\(("(?:[^"\\\\]|\\\\(?:.|$))*"|\'(?:[^\'\\\\]|\\\\(?:.|$))*\')\\s*[,)]';

@@ -298,5 +361,5 @@ var re = new RegExp(pattern, 'gim');

var key = _lodash2.default.trim(r[1]); // Remove leading and trailing whitespace
var key = (0, _trim2.default)(r[1]); // Remove leading and trailing whitespace
var firstChar = key[0];
if (_lodash2.default.includes(['\'', '"'], firstChar)) {
if ((0, _includes2.default)(['\'', '"'], firstChar)) {
// Remove first and last character

@@ -330,3 +393,3 @@ key = key.slice(1, -1);

var syntax = (0, _esprima.parse)('(' + code + ')');
var props = _lodash2.default.get(syntax, 'body[0].expression.properties') || [];
var props = (0, _get2.default)(syntax, 'body[0].expression.properties') || [];
// http://i18next.com/docs/options/

@@ -336,3 +399,3 @@ var supportedOptions = ['defaultValue', 'count', 'context', 'ns'];

props.forEach(function (prop) {
if (_lodash2.default.includes(supportedOptions, prop.key.name)) {
if ((0, _includes2.default)(supportedOptions, prop.key.name)) {
if (prop.value.type === 'Literal') {

@@ -380,3 +443,3 @@ options[prop.key.name] = prop.value.value;

if (_lodash2.default.isFunction(opts)) {
if ((0, _isFunction2.default)(opts)) {
customHandler = opts;

@@ -386,6 +449,11 @@ opts = {};

var attrs = opts.list || this.options.attr.list;
var matchPattern = (0, _lodash2.default)(attrs).map(function (attr) {
var attrs = opts.list !== undefined ? (0, _ensureArray2.default)(opts.list) : (0, _ensureArray2.default)(this.options.attr.list);
if (attrs.length === 0) {
return this;
}
var matchPattern = attrs.map(function (attr) {
return '(?:' + attr + ')';
}).value().join('|').replace(/\./g, '\\.');
}).join('|').replace(/\./g, '\\.');
var pattern = '(?:(?:^[\\s]*)|[^a-zA-Z0-9_])(?:' + matchPattern + ')=("[^"]*"|\'[^\']*\')';

@@ -397,8 +465,7 @@ var re = new RegExp(pattern, 'gim');

while (r = re.exec(content)) {
var attr = _lodash2.default.trim(r[1], '\'"');
var attr = (0, _trim2.default)(r[1], '\'"');
var keys = attr.indexOf(';') >= 0 ? attr.split(';') : [attr];
keys.forEach(function (key) {
//let attr = 'text';
key = _lodash2.default.trim(key);
key = (0, _trim2.default)(key);
if (key.length === 0) {

@@ -409,5 +476,3 @@ return;

var parts = key.split(']');
key = parts[1];
//attr = parts[0].substr(1, parts[0].length - 1);
}

@@ -441,3 +506,3 @@ if (key.indexOf(';') === key.length - 1) {

if (_lodash2.default.isObject(key)) {
if ((0, _isObject2.default)(key)) {
opts = key;

@@ -460,3 +525,4 @@ key = undefined;

Object.keys(namespaces).forEach(function (ns) {
resStore[lng][ns] = (0, _lodash2.default)(namespaces[ns]).toPairs().sortBy(function (pair) {
var pairs = (0, _toPairs2.default)(namespaces[ns]);
resStore[lng][ns] = (0, _sortBy2.default)(pairs, function (pair) {
return pair[0];

@@ -466,9 +532,5 @@ }).reduce(function (memo, pair) {

var _value = pair[1];
memo[_key] = _value;
return memo;
}, {});
// Note. The reduce method is not chainable by default
});

@@ -478,3 +540,3 @@ });

if (!_lodash2.default.isUndefined(key)) {
if (!(0, _isUndefined2.default)(key)) {
var ns = this.options.defaultNs;

@@ -490,3 +552,3 @@

if (_lodash2.default.isString(this.options.nsSeparator) && key.indexOf(this.options.nsSeparator) > -1) {
if ((0, _isString2.default)(this.options.nsSeparator) && key.indexOf(this.options.nsSeparator) > -1) {
var parts = key.split(this.options.nsSeparator);

@@ -498,3 +560,3 @@

var keys = _lodash2.default.isString(this.options.keySeparator) ? key.split(this.options.keySeparator) : [key];
var keys = (0, _isString2.default)(this.options.keySeparator) ? key.split(this.options.keySeparator) : [key];
var lng = opts.lng ? opts.lng : this.options.fallbackLng;

@@ -534,7 +596,7 @@ var namespaces = resStore[lng] || {};

// Backward compatibility
if (_lodash2.default.isString(options)) {
if ((0, _isString2.default)(options)) {
var _defaultValue = options;
options = {};
options.defaultValue = _defaultValue;
options = {
defaultValue: _defaultValue
};
}

@@ -547,3 +609,3 @@

console.assert(_lodash2.default.isString(ns) && !!ns.length, 'ns is not a valid string', ns);
console.assert((0, _isString2.default)(ns) && !!ns.length, 'ns is not a valid string', ns);

@@ -558,3 +620,3 @@ // http://i18next.com/translate/keyBasedFallback/

if (_lodash2.default.isString(nsSeparator) && key.indexOf(nsSeparator) > -1) {
if ((0, _isString2.default)(nsSeparator) && key.indexOf(nsSeparator) > -1) {
var parts = key.split(nsSeparator);

@@ -576,3 +638,3 @@

var keys = _lodash2.default.isString(keySeparator) ? key.split(keySeparator) : [key];
var keys = (0, _isString2.default)(keySeparator) ? key.split(keySeparator) : [key];

@@ -583,3 +645,3 @@ lngs.forEach(function (lng) {

if (!_lodash2.default.isObject(resLoad)) {
if (!(0, _isObject2.default)(resLoad)) {
// skip undefined namespace

@@ -655,3 +717,3 @@ console.log('The namespace "' + ns + '" does not exist:', { key: key, options: options });

// Fallback to `defaultValue`
resLoad[resKey] = _lodash2.default.isFunction(defaultValue) ? defaultValue(lng, ns, key, options) : defaultValue;
resLoad[resKey] = (0, _isFunction2.default)(defaultValue) ? defaultValue(lng, ns, key, options) : defaultValue;
}

@@ -658,0 +720,0 @@ _this4.debuglog('Added a new translation key { %s: %s } to %s', JSON.stringify(resKey), JSON.stringify(resLoad[resKey]), JSON.stringify(_this4.formatResourceLoadPath(lng, ns)));

{
"name": "i18next-scanner",
"version": "1.9.1",
"version": "1.9.2",
"description": "Scan your code, extract translation keys/values, and merge them into i18n resource files.",

@@ -5,0 +5,0 @@ "homepage": "https://github.com/i18next/i18next-scanner",

@@ -1,4 +0,5 @@

import _ from 'lodash';
import fs from 'fs';
import path from 'path';
import get from 'lodash/get';
import includes from 'lodash/includes';
import VirtualFile from 'vinyl';

@@ -14,3 +15,3 @@ import through2 from 'through2';

if (_.isObject(options.attr) && _.includes(options.attr.extensions, extname)) {
if (includes(get(options, 'attr.extensions'), extname)) {
// Parse attribute (e.g. data-i18n="key")

@@ -20,3 +21,3 @@ parser.parseAttrFromString(content);

if (_.isObject(options.func) && _.includes(options.func.extensions, extname)) {
if (includes(get(options, 'func.extensions'), extname)) {
// Parse translation function (e.g. i18next.t('key'))

@@ -23,0 +24,0 @@ parser.parseFuncFromString(content);

/* eslint no-console: 0 */
import _ from 'lodash';
import fs from 'fs';
import isArray from 'lodash/isArray';
import isFunction from 'lodash/isFunction';
import isObject from 'lodash/isObject';
import isUndefined from 'lodash/isUndefined';
import isString from 'lodash/isString';
import flatten from 'lodash/flatten';
import union from 'lodash/union';
import get from 'lodash/get';
import set from 'lodash/set';
import escapeRegExp from 'lodash/escapeRegExp';
import includes from 'lodash/includes';
import trim from 'lodash/trim';
import toPairs from 'lodash/toPairs';
import sortBy from 'lodash/sortBy';
import { parse } from 'esprima';
import ensureArray from './ensure-array';

@@ -93,30 +107,30 @@ const defaults = {

// Attribute
if (_.isUndefined(_.get(options, 'attr.list'))) {
_.set(options, 'attr.list', defaults.attr.list);
if (isUndefined(get(options, 'attr.list'))) {
set(options, 'attr.list', defaults.attr.list);
}
if (_.isUndefined(_.get(options, 'attr.extensions'))) {
_.set(options, 'attr.extensions', defaults.attr.extensions);
if (isUndefined(get(options, 'attr.extensions'))) {
set(options, 'attr.extensions', defaults.attr.extensions);
}
// Function
if (_.isUndefined(_.get(options, 'func.list'))) {
_.set(options, 'func.list', defaults.func.list);
if (isUndefined(get(options, 'func.list'))) {
set(options, 'func.list', defaults.func.list);
}
// Resource
if (_.isUndefined(_.get(options, 'func.extensions'))) {
_.set(options, 'func.extensions', defaults.func.extensions);
if (isUndefined(get(options, 'func.extensions'))) {
set(options, 'func.extensions', defaults.func.extensions);
}
if (_.isUndefined(_.get(options, 'resource.loadPath'))) {
_.set(options, 'resource.loadPath', defaults.resource.loadPath);
if (isUndefined(get(options, 'resource.loadPath'))) {
set(options, 'resource.loadPath', defaults.resource.loadPath);
}
if (_.isUndefined(_.get(options, 'resource.savePath'))) {
_.set(options, 'resource.savePath', defaults.resource.savePath);
if (isUndefined(get(options, 'resource.savePath'))) {
set(options, 'resource.savePath', defaults.resource.savePath);
}
if (_.isUndefined(_.get(options, 'resource.jsonIndent'))) {
_.set(options, 'resource.jsonIndent', defaults.resource.jsonIndent);
if (isUndefined(get(options, 'resource.jsonIndent'))) {
set(options, 'resource.jsonIndent', defaults.resource.jsonIndent);
}
// Accept both nsseparator or nsSeparator
if (!_.isUndefined(options.nsseparator)) {
if (!isUndefined(options.nsseparator)) {
options.nsSeparator = options.nsseparator;

@@ -126,3 +140,3 @@ delete options.nsseparator;

// Allowed only string or false
if (!_.isString(options.nsSeparator)) {
if (!isString(options.nsSeparator)) {
options.nsSeparator = false;

@@ -132,3 +146,3 @@ }

// Accept both keyseparator or keySeparator
if (!_.isUndefined(options.keyseparator)) {
if (!isUndefined(options.keyseparator)) {
options.keySeparator = options.keyseparator;

@@ -138,14 +152,11 @@ delete options.keyseparator;

// Allowed only string or false
if (!_.isString(options.keySeparator)) {
if (!isString(options.keySeparator)) {
options.keySeparator = false;
}
if (!_.isArray(options.ns)) {
if (!isArray(options.ns)) {
options.ns = [options.ns];
}
options.ns = _(options.ns.concat(options.defaultNs))
.flatten()
.union()
.value();
options.ns = union(flatten(options.ns.concat(options.defaultNs)));

@@ -160,3 +171,3 @@ return options;

class Parser {
options = _.assign({}, defaults);
options = { ...defaults };

@@ -170,3 +181,6 @@ // The resStore stores all translation keys including unused ones

constructor(options) {
this.options = transformOptions(_.extend({}, this.options, options));
this.options = transformOptions({
...this.options,
...options
});

@@ -209,4 +223,4 @@ const lngs = this.options.lngs;

const regex = {
lng: new RegExp(_.escapeRegExp(options.interpolation.prefix + 'lng' + options.interpolation.suffix), 'g'),
ns: new RegExp(_.escapeRegExp(options.interpolation.prefix + 'ns' + options.interpolation.suffix), 'g')
lng: new RegExp(escapeRegExp(options.interpolation.prefix + 'lng' + options.interpolation.suffix), 'g'),
ns: new RegExp(escapeRegExp(options.interpolation.prefix + 'ns' + options.interpolation.suffix), 'g')
};

@@ -221,4 +235,4 @@

const regex = {
lng: new RegExp(_.escapeRegExp(options.interpolation.prefix + 'lng' + options.interpolation.suffix), 'g'),
ns: new RegExp(_.escapeRegExp(options.interpolation.prefix + 'ns' + options.interpolation.suffix), 'g')
lng: new RegExp(escapeRegExp(options.interpolation.prefix + 'lng' + options.interpolation.suffix), 'g'),
ns: new RegExp(escapeRegExp(options.interpolation.prefix + 'ns' + options.interpolation.suffix), 'g')
};

@@ -236,3 +250,3 @@

parseFuncFromString(content, opts = {}, customHandler = null) {
if (_.isFunction(opts)) {
if (isFunction(opts)) {
customHandler = opts;

@@ -242,6 +256,12 @@ opts = {};

const funcs = opts.list || this.options.func.list;
const matchPattern = _(funcs)
.map((func) => ('(?:' + func + ')'))
.value()
const funcs = (opts.list !== undefined)
? ensureArray(opts.list)
: ensureArray(this.options.func.list);
if (funcs.length === 0) {
return this;
}
const matchPattern = funcs
.map(func => ('(?:' + func + ')'))
.join('|')

@@ -258,5 +278,5 @@ .replace(/\./g, '\\.');

let key = _.trim(r[1]); // Remove leading and trailing whitespace
let key = trim(r[1]); // Remove leading and trailing whitespace
const firstChar = key[0];
if (_.includes(['\'', '"'], firstChar)) {
if (includes(['\'', '"'], firstChar)) {
// Remove first and last character

@@ -286,3 +306,3 @@ key = key.slice(1, -1);

const syntax = parse('(' + code + ')');
const props = _.get(syntax, 'body[0].expression.properties') || [];
const props = get(syntax, 'body[0].expression.properties') || [];
// http://i18next.com/docs/options/

@@ -297,3 +317,3 @@ const supportedOptions = [

props.forEach((prop) => {
if (_.includes(supportedOptions, prop.key.name)) {
if (includes(supportedOptions, prop.key.name)) {
if (prop.value.type === 'Literal') {

@@ -327,3 +347,3 @@ options[prop.key.name] = prop.value.value;

parseAttrFromString(content, opts = {}, customHandler = null) {
if (_.isFunction(opts)) {
if (isFunction(opts)) {
customHandler = opts;

@@ -333,6 +353,12 @@ opts = {};

const attrs = opts.list || this.options.attr.list;
const matchPattern = _(attrs)
.map((attr) => ('(?:' + attr + ')'))
.value()
const attrs = (opts.list !== undefined)
? ensureArray(opts.list)
: ensureArray(this.options.attr.list);
if (attrs.length === 0) {
return this;
}
const matchPattern = attrs
.map(attr => ('(?:' + attr + ')'))
.join('|')

@@ -346,8 +372,9 @@ .replace(/\./g, '\\.');

while ((r = re.exec(content))) {
const attr = _.trim(r[1], '\'"');
const keys = (attr.indexOf(';') >= 0) ? attr.split(';') : [attr];
const attr = trim(r[1], '\'"');
const keys = (attr.indexOf(';') >= 0)
? attr.split(';')
: [attr];
keys.forEach((key) => {
//let attr = 'text';
key = _.trim(key);
key = trim(key);
if (key.length === 0) {

@@ -357,6 +384,4 @@ return;

if (key.indexOf('[') === 0) {
let parts = key.split(']');
const parts = key.split(']');
key = parts[1];
//attr = parts[0].substr(1, parts[0].length - 1);
}

@@ -385,3 +410,3 @@ if (key.indexOf(';') === (key.length - 1)) {

get(key, opts = {}) {
if (_.isObject(key)) {
if (isObject(key)) {
opts = key;

@@ -403,15 +428,10 @@ key = undefined;

Object.keys(namespaces).forEach((ns) => {
resStore[lng][ns] = _(namespaces[ns])
.toPairs()
.sortBy((pair) => pair[0])
const pairs = toPairs(namespaces[ns]);
resStore[lng][ns] = sortBy(pairs, (pair => pair[0]))
.reduce((memo, pair) => {
const _key = pair[0];
const _value = pair[1];
memo[_key] = _value;
return memo;
}, {});
// Note. The reduce method is not chainable by default
});

@@ -421,3 +441,3 @@ });

if (!_.isUndefined(key)) {
if (!isUndefined(key)) {
let ns = this.options.defaultNs;

@@ -433,3 +453,3 @@

if (_.isString(this.options.nsSeparator) && (key.indexOf(this.options.nsSeparator) > -1)) {
if (isString(this.options.nsSeparator) && (key.indexOf(this.options.nsSeparator) > -1)) {
const parts = key.split(this.options.nsSeparator);

@@ -441,6 +461,8 @@

const keys = _.isString(this.options.keySeparator)
const keys = isString(this.options.keySeparator)
? key.split(this.options.keySeparator)
: [key];
const lng = opts.lng ? opts.lng : this.options.fallbackLng;
const lng = opts.lng
? opts.lng
: this.options.fallbackLng;
const namespaces = resStore[lng] || {};

@@ -472,15 +494,19 @@

// Backward compatibility
if (_.isString(options)) {
let defaultValue = options;
options = {};
options.defaultValue = defaultValue;
if (isString(options)) {
const defaultValue = options;
options = {
defaultValue: defaultValue
};
}
const nsSeparator = (options.nsSeparator !== undefined) ? options.nsSeparator : this.options.nsSeparator;
const keySeparator = (options.keySeparator !== undefined) ? options.keySeparator : this.options.keySeparator;
const nsSeparator = (options.nsSeparator !== undefined)
? options.nsSeparator
: this.options.nsSeparator;
const keySeparator = (options.keySeparator !== undefined)
? options.keySeparator
: this.options.keySeparator;
let ns = options.ns || this.options.defaultNs;
console.assert(_.isString(ns) && !!ns.length, 'ns is not a valid string', ns);
console.assert(isString(ns) && !!ns.length, 'ns is not a valid string', ns);

@@ -495,3 +521,3 @@ // http://i18next.com/translate/keyBasedFallback/

if (_.isString(nsSeparator) && (key.indexOf(nsSeparator) > -1)) {
if (isString(nsSeparator) && (key.indexOf(nsSeparator) > -1)) {
const parts = key.split(nsSeparator);

@@ -513,3 +539,5 @@

} = this.options;
const keys = _.isString(keySeparator) ? key.split(keySeparator) : [key];
const keys = isString(keySeparator)
? key.split(keySeparator)
: [key];

@@ -520,3 +548,3 @@ lngs.forEach((lng) => {

if (!_.isObject(resLoad)) { // skip undefined namespace
if (!isObject(resLoad)) { // skip undefined namespace
console.log('The namespace "' + ns + '" does not exist:', { key, options });

@@ -595,3 +623,3 @@ return;

// Fallback to `defaultValue`
resLoad[resKey] = _.isFunction(defaultValue)
resLoad[resKey] = isFunction(defaultValue)
? defaultValue(lng, ns, key, options)

@@ -598,0 +626,0 @@ : defaultValue;

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