@walletpack/core
Version:
> TODO: description
71 lines (63 loc) • 1.93 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var Locale =
/*#__PURE__*/
function () {
function Locale() {
(0, _classCallCheck2["default"])(this, Locale);
this.raw = null;
this.name = null;
this.methods = {};
this.locales = {};
}
(0, _createClass2["default"])(Locale, [{
key: "parsed",
value: function parsed() {
return Locale.fromRaw(JSON.parse(this.raw));
}
}], [{
key: "placeholder",
value: function placeholder() {
return new Locale();
}
}, {
key: "fromJson",
value: function fromJson(json) {
return Object.assign(this.placeholder(), json);
}
}, {
key: "fromRaw",
value: function fromRaw(raw) {
if (!raw) return this.placeholder();
var p = this.placeholder();
p.raw = raw;
p.name = raw.name;
raw.methods.map(function (x) {
p.methods[x.name] = new Function(x.args, x.body);
});
Object.keys(raw.locales).map(function (key) {
p.locales[key] = function (x) {
var parseString = function parseString(s) {
s = s.replace('{x}', x);
Object.keys(p.methods).map(function (method) {
return s = s.replace("{".concat(method, "}"), p.methods[method](x));
});
return s;
};
if (typeof raw.locales[key] === 'string') return parseString(raw.locales[key]);else return raw.locales[key].map(function (x) {
return parseString(x);
});
};
});
return p;
}
}]);
return Locale;
}();
exports["default"] = Locale;