translate-maker
Version:
Lightweight translation module. Internationalize your great project.
98 lines (77 loc) • 2.51 kB
JavaScript
;
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 _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
var _Adapter = _interopRequireDefault(require("./Adapter"));
var _File = require("./File");
function defaultGetData(_x, _x2) {
return _defaultGetData.apply(this, arguments);
}
function _defaultGetData() {
_defaultGetData = (0, _asyncToGenerator2.default)(function* (url, parse) {
return new Promise((resolve, reject) => {
try {
const XHRClass = window.XMLHttpRequest || window.ActiveXObject;
const xhr = new XHRClass('MSXML2.XMLHTTP.3.0');
xhr.onreadystatechange = () => {
if (xhr.readyState > 3) {
resolve(parse(xhr.responseText));
}
};
xhr.open('GET', url, true);
xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xhr.send();
} catch (e) {
reject(e);
}
});
});
return _defaultGetData.apply(this, arguments);
}
class XHR extends _Adapter.default {
constructor(options = {}) {
if (!options.path) {
throw new Error('You need to set path');
}
super((0, _objectSpread2.default)({
path: undefined,
resolvePath: _File.defaultResolvePath,
parse: JSON.parse,
ext: '.json',
getData: defaultGetData,
setData: undefined
}, options));
}
get(locale, namespace) {
var _this = this;
return (0, _asyncToGenerator2.default)(function* () {
if (typeof namespace === 'function') {
return _this.get(locale, null, namespace);
}
const options = _this.getOptions();
const {
resolvePath,
getData,
parse
} = options;
const path = resolvePath(locale, namespace, options);
return getData(path, parse);
})();
}
set(locale, value, namespace) {
var _this2 = this;
return (0, _asyncToGenerator2.default)(function* () {
if (typeof namespace === 'function') {
return _this2.set(locale, value, null, namespace);
}
throw new Error('XHR adapter is read only');
})();
}
}
exports.default = XHR;
//# sourceMappingURL=XHR.js.map