UNPKG

@morjs/runtime-web

Version:
76 lines 2.35 kB
"use strict"; var _a, _b; Object.defineProperty(exports, "__esModule", { value: true }); exports.appendApis = exports.convertApis = exports.DEFAULT_API_NO_CONFLICT = void 0; const my_1 = require("../my"); /** * 默认是否允许覆盖全局对象中已有的 API */ exports.DEFAULT_API_NO_CONFLICT = ((_a = window.$MOR_APP_CONFIG) === null || _a === void 0 ? void 0 : _a.apiNoConflict) == null ? true : !!((_b = window.$MOR_APP_CONFIG) === null || _b === void 0 ? void 0 : _b.apiNoConflict); function convertApi(api) { if (typeof api !== 'function') { return api; } return function (option = {}) { const result = api(option); if (result && result instanceof Promise) { result .then((res) => { const success = option.success; if (success) { success(res); } const complete = option.complete; if (complete) { complete(); } return res; }) .catch((err) => { const fail = option.fail; if (fail) { fail(err); } const complete = option.complete; if (complete) { complete(); } }); } return result; }; } function convertApis(apis) { const temp = {}; Object.keys(apis).forEach((key) => { const api = apis[key]; temp[key] = convertApi(api); }); return temp; } exports.convertApis = convertApis; function appendApis(apiObj, noConflict = false) { const tmp = convertApis(apiObj); // 开启 noConflict 的情况下, 只追加新接口 if (noConflict) { Object.keys(tmp).forEach(function (name) { if (name in my_1.my) return; my_1.my[name] = tmp[name]; }); } // 默认直接添加并覆盖接口 else { try { // 除了内置 api,后续添加的 api 都应添加在 window.my 上以达到共用的目的 Object.assign(my_1.my, tmp); } catch (e) { console.error('appendApis: ', `${e}`); } } } exports.appendApis = appendApis; //# sourceMappingURL=extendApi.js.map