191 lines
5.9 KiB
JavaScript
191 lines
5.9 KiB
JavaScript
"use strict";
|
|
|
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.default = void 0;
|
|
|
|
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
|
|
|
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
|
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
|
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
|
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
|
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
|
|
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
|
|
var _EventEmitter2 = _interopRequireDefault(require("./EventEmitter.js"));
|
|
|
|
var utils = _interopRequireWildcard(require("./utils.js"));
|
|
|
|
var ResourceStore =
|
|
/*#__PURE__*/
|
|
function (_EventEmitter) {
|
|
(0, _inherits2.default)(ResourceStore, _EventEmitter);
|
|
|
|
function ResourceStore(data) {
|
|
var _this;
|
|
|
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
|
ns: ['translation'],
|
|
defaultNS: 'translation'
|
|
};
|
|
(0, _classCallCheck2.default)(this, ResourceStore);
|
|
_this = (0, _possibleConstructorReturn2.default)(this, (0, _getPrototypeOf2.default)(ResourceStore).call(this));
|
|
|
|
_EventEmitter2.default.call((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this))); // <=IE10 fix (unable to call parent constructor)
|
|
|
|
|
|
_this.data = data || {};
|
|
_this.options = options;
|
|
|
|
if (_this.options.keySeparator === undefined) {
|
|
_this.options.keySeparator = '.';
|
|
}
|
|
|
|
return _this;
|
|
}
|
|
|
|
(0, _createClass2.default)(ResourceStore, [{
|
|
key: "addNamespaces",
|
|
value: function addNamespaces(ns) {
|
|
if (this.options.ns.indexOf(ns) < 0) {
|
|
this.options.ns.push(ns);
|
|
}
|
|
}
|
|
}, {
|
|
key: "removeNamespaces",
|
|
value: function removeNamespaces(ns) {
|
|
var index = this.options.ns.indexOf(ns);
|
|
|
|
if (index > -1) {
|
|
this.options.ns.splice(index, 1);
|
|
}
|
|
}
|
|
}, {
|
|
key: "getResource",
|
|
value: function getResource(lng, ns, key) {
|
|
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
var keySeparator = options.keySeparator !== undefined ? options.keySeparator : this.options.keySeparator;
|
|
var path = [lng, ns];
|
|
if (key && typeof key !== 'string') path = path.concat(key);
|
|
if (key && typeof key === 'string') path = path.concat(keySeparator ? key.split(keySeparator) : key);
|
|
|
|
if (lng.indexOf('.') > -1) {
|
|
path = lng.split('.');
|
|
}
|
|
|
|
return utils.getPath(this.data, path);
|
|
}
|
|
}, {
|
|
key: "addResource",
|
|
value: function addResource(lng, ns, key, value) {
|
|
var options = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {
|
|
silent: false
|
|
};
|
|
var keySeparator = this.options.keySeparator;
|
|
if (keySeparator === undefined) keySeparator = '.';
|
|
var path = [lng, ns];
|
|
if (key) path = path.concat(keySeparator ? key.split(keySeparator) : key);
|
|
|
|
if (lng.indexOf('.') > -1) {
|
|
path = lng.split('.');
|
|
value = ns;
|
|
ns = path[1];
|
|
}
|
|
|
|
this.addNamespaces(ns);
|
|
utils.setPath(this.data, path, value);
|
|
if (!options.silent) this.emit('added', lng, ns, key, value);
|
|
}
|
|
}, {
|
|
key: "addResources",
|
|
value: function addResources(lng, ns, resources) {
|
|
var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {
|
|
silent: false
|
|
};
|
|
|
|
/* eslint no-restricted-syntax: 0 */
|
|
for (var m in resources) {
|
|
if (typeof resources[m] === 'string' || Object.prototype.toString.apply(resources[m]) === '[object Array]') this.addResource(lng, ns, m, resources[m], {
|
|
silent: true
|
|
});
|
|
}
|
|
|
|
if (!options.silent) this.emit('added', lng, ns, resources);
|
|
}
|
|
}, {
|
|
key: "addResourceBundle",
|
|
value: function addResourceBundle(lng, ns, resources, deep, overwrite) {
|
|
var options = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {
|
|
silent: false
|
|
};
|
|
var path = [lng, ns];
|
|
|
|
if (lng.indexOf('.') > -1) {
|
|
path = lng.split('.');
|
|
deep = resources;
|
|
resources = ns;
|
|
ns = path[1];
|
|
}
|
|
|
|
this.addNamespaces(ns);
|
|
var pack = utils.getPath(this.data, path) || {};
|
|
|
|
if (deep) {
|
|
utils.deepExtend(pack, resources, overwrite);
|
|
} else {
|
|
pack = (0, _objectSpread2.default)({}, pack, resources);
|
|
}
|
|
|
|
utils.setPath(this.data, path, pack);
|
|
if (!options.silent) this.emit('added', lng, ns, resources);
|
|
}
|
|
}, {
|
|
key: "removeResourceBundle",
|
|
value: function removeResourceBundle(lng, ns) {
|
|
if (this.hasResourceBundle(lng, ns)) {
|
|
delete this.data[lng][ns];
|
|
}
|
|
|
|
this.removeNamespaces(ns);
|
|
this.emit('removed', lng, ns);
|
|
}
|
|
}, {
|
|
key: "hasResourceBundle",
|
|
value: function hasResourceBundle(lng, ns) {
|
|
return this.getResource(lng, ns) !== undefined;
|
|
}
|
|
}, {
|
|
key: "getResourceBundle",
|
|
value: function getResourceBundle(lng, ns) {
|
|
if (!ns) ns = this.options.defaultNS; // COMPATIBILITY: remove extend in v2.1.0
|
|
|
|
if (this.options.compatibilityAPI === 'v1') return (0, _objectSpread2.default)({}, {}, this.getResource(lng, ns));
|
|
return this.getResource(lng, ns);
|
|
}
|
|
}, {
|
|
key: "getDataByLanguage",
|
|
value: function getDataByLanguage(lng) {
|
|
return this.data[lng];
|
|
}
|
|
}, {
|
|
key: "toJSON",
|
|
value: function toJSON() {
|
|
return this.data;
|
|
}
|
|
}]);
|
|
return ResourceStore;
|
|
}(_EventEmitter2.default);
|
|
|
|
var _default = ResourceStore;
|
|
exports.default = _default; |