translate-maker
Version:
Lightweight translation module. Internationalize your great project.
73 lines (53 loc) • 1.87 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _get = _interopRequireDefault(require("lodash/get"));
var _set = _interopRequireDefault(require("lodash/set"));
var _Adapter = _interopRequireDefault(require("./Adapter"));
class Memory extends _Adapter.default {
constructor(options = {}) {
const {
data = {}
} = options,
rest = (0, _objectWithoutProperties2.default)(options, ["data"]);
super((0, _objectSpread2.default)({}, rest));
this.data = data;
}
static getPath(locale, namespace) {
return namespace ? `${namespace}.${locale}` : locale;
}
get(locale, namespace) {
var _this = this;
return (0, _asyncToGenerator2.default)(function* () {
if (!locale) {
throw new Error('Locale is undefined');
}
const path = Memory.getPath(locale, namespace);
return (0, _get.default)(_this.data, path);
})();
}
set(locale, value, namespace) {
var _this2 = this;
return (0, _asyncToGenerator2.default)(function* () {
if (!locale) {
throw new Error('Locale is undefined');
}
const path = Memory.getPath(locale, namespace);
return (0, _set.default)(_this2.data, path, value);
})();
}
dehydrate() {
return (0, _objectSpread2.default)({}, this.data);
}
rehydrate(state) {
this.data = state;
}
}
exports.default = Memory;
//# sourceMappingURL=Memory.js.map