@z2cf2e/diamond
Version:
diamond
374 lines (364 loc) • 17.3 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var get = require('lodash.get');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
function __awaiter(thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
}
function __generator(thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (_) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
}
var name = "@z2cf2e/diamond";
var version = "1.1.74";
var settings = {
globalProperty: '_conf',
globalThis: window,
CNDs: {
unpkgV: "https://unpkg.com/".concat(name, "@").concat(version, "/index.min.js"),
unpkg: "https://unpkg.com/".concat(name, "/index.min.js"),
oss: 'https://jkqj-assets-beijing.oss-cn-beijing.aliyuncs.com/diamond/diamond.min.js',
},
jsonBaseUr: {
unpkgV: function (ver) {
if (ver === void 0) { ver = version; }
return "https://unpkg.com/".concat(name, "@").concat(ver, "/public");
},
jsdelivrV: function (ver) {
if (ver === void 0) { ver = version; }
return "https://cdn.jsdelivr.net/npm/".concat(name, "@").concat(ver, "/public");
},
unpkg: "https://unpkg.com/".concat(name, "/public"),
jsdelivr: "https://cdn.jsdelivr.net/npm/".concat(name, "/public"),
oss: 'https://jkqj-assets-beijing.oss-cn-beijing.aliyuncs.com/diamond',
},
};
function loadExternalJsFile(CDNUrl, name) {
return new Promise(function (resolve, reject) {
// @ts-ignore
if (name && settings.globalThis[name]) {
resolve(name);
return;
}
var dom = document.createElement('script');
dom.src = CDNUrl;
dom.type = 'text/javascript';
dom.onload = function () {
resolve(name);
};
dom.onerror = function () {
reject();
};
document.head.appendChild(dom);
setTimeout(function () {
if (name && !settings.globalThis[name]) {
reject();
}
}, 3000);
});
}
var DiamondClient = /** @class */ (function () {
function DiamondClient() {
}
DiamondClient.init = function (url, refresh, name) {
var _this = this;
if (refresh === void 0) { refresh = true; }
if (name === void 0) { name = settings.globalProperty; }
if (this.ready) {
return;
}
this.globalProperty = name;
var CDNUrl = refresh ? "".concat(url || settings.CNDs.unpkg, "?").concat(Date.now()) : url || settings.CNDs.unpkg;
var done = function () {
_this.ready = true;
};
var loadOSSJsFile = function () { return loadExternalJsFile(settings.CNDs.oss, name).then(done); };
return loadExternalJsFile(CDNUrl, name).then(done).catch(loadOSSJsFile);
};
DiamondClient.get = function (path, defaultValue) {
// @ts-ignore
return get__default["default"](settings.globalThis[this.globalProperty], path, defaultValue);
};
DiamondClient.checkVersion = function (version) {
return version && typeof version === 'string' && version.includes('.');
};
DiamondClient.getJSON = function (pathName, version) {
return __awaiter(this, void 0, void 0, function () {
var getFromOSS, getFromUnpkg_1, getFromJsdelivr_1, content_1, getFromUnpkg, getFromJsdelivr, content;
var _this = this;
return __generator(this, function (_c) {
switch (_c.label) {
case 0:
getFromOSS = function () { return __awaiter(_this, void 0, void 0, function () {
var url, rs;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
url = "".concat(settings.jsonBaseUr.oss, "/").concat(pathName, ".json");
return [4 /*yield*/, fetch(url)];
case 1:
rs = _a.sent();
return [4 /*yield*/, rs.json()];
case 2: return [2 /*return*/, (_a.sent())];
}
});
}); };
if (!this.checkVersion(version)) return [3 /*break*/, 10];
getFromUnpkg_1 = function () {
var url = "".concat(settings.jsonBaseUr.unpkgV(version), "/").concat(pathName, ".json");
return new Promise(function (resolve, reject) {
fetch(url)
.then(function (rs) { return resolve(rs.json()); })
.catch(reject);
setTimeout(reject, 3000);
});
};
getFromJsdelivr_1 = function () {
var url = "".concat(settings.jsonBaseUr.jsdelivrV(version), "/").concat(pathName, ".json");
return new Promise(function (resolve, reject) {
fetch(url)
.then(function (rs) { return resolve(rs.json()); })
.catch(reject);
setTimeout(reject, 3000);
});
};
content_1 = void 0;
_c.label = 1;
case 1:
_c.trys.push([1, 3, , 9]);
return [4 /*yield*/, getFromOSS()];
case 2:
content_1 = _c.sent();
return [3 /*break*/, 9];
case 3:
_c.sent();
_c.label = 4;
case 4:
_c.trys.push([4, 6, , 8]);
return [4 /*yield*/, getFromUnpkg_1()];
case 5:
content_1 = _c.sent();
return [3 /*break*/, 8];
case 6:
_c.sent();
return [4 /*yield*/, getFromJsdelivr_1()];
case 7:
content_1 = _c.sent();
return [3 /*break*/, 8];
case 8: return [3 /*break*/, 9];
case 9: return [2 /*return*/, content_1];
case 10:
getFromUnpkg = function () {
var url = "".concat(settings.jsonBaseUr.unpkg, "/").concat(pathName, ".json");
return new Promise(function (resolve, reject) {
fetch(url)
.then(function (rs) { return resolve(rs.json()); })
.catch(reject);
setTimeout(reject, 3000);
});
};
getFromJsdelivr = function () {
var url = "".concat(settings.jsonBaseUr.jsdelivr, "/").concat(pathName, ".json");
return new Promise(function (resolve, reject) {
fetch(url)
.then(function (rs) { return resolve(rs.json()); })
.catch(reject);
setTimeout(reject, 3000);
});
};
content = void 0;
_c.label = 11;
case 11:
_c.trys.push([11, 13, , 19]);
return [4 /*yield*/, getFromOSS()];
case 12:
content = _c.sent();
return [3 /*break*/, 19];
case 13:
_c.sent();
_c.label = 14;
case 14:
_c.trys.push([14, 16, , 18]);
return [4 /*yield*/, getFromUnpkg()];
case 15:
content = _c.sent();
return [3 /*break*/, 18];
case 16:
_c.sent();
return [4 /*yield*/, getFromJsdelivr()];
case 17:
content = _c.sent();
return [3 /*break*/, 18];
case 18: return [3 /*break*/, 19];
case 19: return [2 /*return*/, content];
}
});
});
};
DiamondClient.getLocales = function (version) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.getJSON('locales/locales', version)];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
DiamondClient.getLanguage = function (lang, version) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.getJSON("locales/langs/".concat(lang, "/index"), version)];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
DiamondClient.getLanguageCommon = function (lang, version) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.getJSON("locales/langs/".concat(lang, "/common"), version)];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
DiamondClient.getScript = function (pathName, name, version) {
return __awaiter(this, void 0, void 0, function () {
var getFromUnpkg_2, getFromJsdelivr_2, getFromUnpkg, getFromJsdelivr, getFromOSS;
return __generator(this, function (_a) {
switch (_a.label) {
case 0:
if (!this.checkVersion(version)) return [3 /*break*/, 6];
getFromUnpkg_2 = function () {
var url = "".concat(settings.jsonBaseUr.unpkgV(version), "/").concat(pathName, ".js");
return loadExternalJsFile(url, name);
};
getFromJsdelivr_2 = function () {
var url = "".concat(settings.jsonBaseUr.jsdelivrV(version), "/").concat(pathName, ".js");
return loadExternalJsFile(url, name);
};
_a.label = 1;
case 1:
_a.trys.push([1, 3, , 5]);
return [4 /*yield*/, getFromUnpkg_2()];
case 2:
_a.sent();
return [3 /*break*/, 5];
case 3:
_a.sent();
return [4 /*yield*/, getFromJsdelivr_2()];
case 4:
_a.sent();
return [3 /*break*/, 5];
case 5: return [2 /*return*/];
case 6:
getFromUnpkg = function () {
var url = "".concat(settings.jsonBaseUr.unpkg, "/").concat(pathName, ".js");
return loadExternalJsFile(url, name);
};
getFromJsdelivr = function () {
var url = "".concat(settings.jsonBaseUr.jsdelivr, "/").concat(pathName, ".js");
return loadExternalJsFile(url, name);
};
getFromOSS = function () {
var url = "".concat(settings.jsonBaseUr.oss, "/").concat(pathName, ".js");
return loadExternalJsFile(url, name);
};
_a.label = 7;
case 7:
_a.trys.push([7, 9, , 15]);
return [4 /*yield*/, getFromUnpkg()];
case 8:
_a.sent();
return [3 /*break*/, 15];
case 9:
_a.sent();
_a.label = 10;
case 10:
_a.trys.push([10, 12, , 14]);
return [4 /*yield*/, getFromJsdelivr()];
case 11:
_a.sent();
return [3 /*break*/, 14];
case 12:
_a.sent();
return [4 /*yield*/, getFromOSS()];
case 13:
_a.sent();
return [3 /*break*/, 14];
case 14: return [3 /*break*/, 15];
case 15: return [2 /*return*/];
}
});
});
};
DiamondClient.getLocalesScript = function (version) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.getScript('locales/locales.min', 'locales', version)];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
DiamondClient.getLanguageScript = function (lang, version) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
switch (_a.label) {
case 0: return [4 /*yield*/, this.getScript("locales/langs/".concat(lang, "/index"), 'lang', version)];
case 1: return [2 /*return*/, _a.sent()];
}
});
});
};
DiamondClient.ready = false;
DiamondClient.globalProperty = settings.globalProperty;
return DiamondClient;
}());
var supportLanguages = {
'zh-cn': '中文 (简体中文)',
'en-gb': 'English (UK)',
'en-us': 'English (US)',
'sv-se': 'Svenska (SE)',
'pt-br': 'Português (BR)',
'es-es': 'Español (ES)',
};
exports.DiamondClient = DiamondClient;
exports["default"] = DiamondClient;
exports.loadExternalJsFile = loadExternalJsFile;
exports.supportLanguages = supportLanguages;
exports.version = version;