UNPKG

dingtalk-jsapi

Version:

钉钉 模块化 多端统一 API

1 lines 5.63 kB
"use strict";function getTargetApiConfigVS(e,i){var t=e&&e.vs;return"object"==typeof t&&i.platformSub?t[i.platformSub]:"string"==typeof t?t:void 0}var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var i,t=1,n=arguments.length;t<n;t++){i=arguments[t];for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(e[o]=i[o])}return e},__assign.apply(this,arguments)};Object.defineProperty(exports,"__esModule",{value:!0}),exports.Sdk=exports.getTargetApiConfigVS=exports.LogLevel=exports.APP_TYPE=exports.isFunction=exports.compareVersion=exports.ENV_ENUM_SUB=exports.ENV_ENUM=void 0;var sdkLib_1=require("./sdkLib");Object.defineProperty(exports,"APP_TYPE",{enumerable:!0,get:function(){return sdkLib_1.APP_TYPE}}),Object.defineProperty(exports,"LogLevel",{enumerable:!0,get:function(){return sdkLib_1.LogLevel}}),Object.defineProperty(exports,"isFunction",{enumerable:!0,get:function(){return sdkLib_1.isFunction}}),Object.defineProperty(exports,"compareVersion",{enumerable:!0,get:function(){return sdkLib_1.compareVersion}}),Object.defineProperty(exports,"ENV_ENUM",{enumerable:!0,get:function(){return sdkLib_1.ENV_ENUM}}),Object.defineProperty(exports,"ENV_ENUM_SUB",{enumerable:!0,get:function(){return sdkLib_1.ENV_ENUM_SUB}});var middlewares_1=require("./middlewares"),log_1=require("../log"),apiMapping_1=require("../../constant/apiMapping");exports.getTargetApiConfigVS=getTargetApiConfigVS;var Sdk=function(){function e(e){var i=this;this.configJsApiList=[],this.hadConfig=!1,this.devConfig={debug:!1},this.invokeAPIConfigMapByMethod={},this.p={},this.config$=new Promise(function(e,t){i.p.reject=t,i.p.resolve=e}),this.apiHandler=new middlewares_1.ApiHandler,this.platformConfigMap={},this.isBridgeDrity=!0,this.getExportSdk=function(){return i.exportSdk},this.setAPI=function(e,t){i.invokeAPIConfigMapByMethod[e]=Object.assign(i.invokeAPIConfigMapByMethod[e]||{},t)},this.setPlatform=function(e){i.isBridgeDrity=!0,i.platformConfigMap[e.platform]=i.withDefaultEvent(e),e.platform===i.env.platform&&e.bridgeInit().catch(function(e){log_1.formatLog(log_1.diagnosticMessageMap.auto_bridge_init_error,null===e||void 0===e?void 0:e.toString())})},this.getPlatformConfigMap=function(){return i.platformConfigMap},this.deleteApiConfig=function(e,t){var n=i.invokeAPIConfigMapByMethod[e];n&&delete n[t]},this.invokeAPI=function(e,t,n){return void 0===t&&(t={}),void 0===n&&(n=!0),i.apiHandler.start({method:e,params:t,isAuthApi:n})},this.withDefaultEvent=function(e){var i=Object.assign({on:function(){return log_1.formatLog(log_1.diagnosticMessageMap.not_support_event_on)},off:function(){return log_1.formatLog(log_1.diagnosticMessageMap.not_support_event_off)}},e.event);return __assign(__assign({},e),{event:i})},this.env=e,this.bridgeInitFn=function(){if(i.bridgeInitFnPromise&&!i.isBridgeDrity)return i.bridgeInitFnPromise;i.isBridgeDrity=!1;var t=i.platformConfigMap[e.platform];if(t)i.bridgeInitFnPromise=t.bridgeInit().catch(function(e){return log_1.formatLog(log_1.diagnosticMessageMap.JsBridge_init_fail),Promise.reject(e)});else{var n=log_1.formatLog(log_1.diagnosticMessageMap.not_support_env,e.platform);i.bridgeInitFnPromise=Promise.reject(new Error(n))}return i.bridgeInitFnPromise};var t=function(e){void 0===e&&(e={}),i.devConfig=Object.assign(i.devConfig,e),e.extraPlatform&&i.setPlatform(e.extraPlatform)};this.exportSdk={config:function(n){void 0===n&&(n={});var o=!0;Object.keys(n).forEach(function(e){-1===["debug","usePromise"].indexOf(e)&&(o=!1)}),o?(log_1.formatLog(log_1.diagnosticMessageMap.config_debug_deprecated),t(n)):i.hadConfig?log_1.formatLog(log_1.diagnosticMessageMap.repeat_config):(n.jsApiList&&(i.configJsApiList=n.jsApiList.map(function(e){return apiMapping_1.default[e]?apiMapping_1.default[e]:e})),i.hadConfig=!0,i.bridgeInitFn().then(function(t){var o=i.platformConfigMap[e.platform],r=n;o.authParamsDeal&&(r=o.authParamsDeal(r)),t(o.authMethod,r).then(function(e){i.isReady=!0,i.p.resolve(e)}).catch(function(e){i.isReady=!1,i.p.reject(e)})},function(e){log_1.formatLog(log_1.diagnosticMessageMap.JsBridge_init_fail_dd_config),i.p.reject(e)}))},devConfig:t,ready:function(e){!1===i.hadConfig?(log_1.formatLog(log_1.diagnosticMessageMap.dd_config_wrap_deprecated),i.bridgeInitFn().then(function(){e()})):i.config$.then(function(i){e()})},error:function(e){i.config$.catch(function(i){e(i)})},on:function(t,n){i.bridgeInitFn().then(function(){var o;null===(o=i.platformConfigMap[e.platform].event)||void 0===o||o.on(t,n)})},off:function(t,n){i.bridgeInitFn().then(function(){var o;null===(o=i.platformConfigMap[e.platform].event)||void 0===o||o.off(t,n)})},env:e,checkJsApi:function(t){void 0===t&&(t={});var n={};return t.jsApiList&&t.jsApiList.forEach(function(t){var o=apiMapping_1.default[t]||t,r=i.invokeAPIConfigMapByMethod[o];if(r){var a=r[e.platform],s=getTargetApiConfigVS(a,e);s&&e.version&&sdkLib_1.compareVersion(e.version,s)&&(n[t]=!0)}n[t]||(n[t]=!1)}),Promise.resolve(n)},_invoke:function(e,t){return void 0===t&&(t={}),i.invokeAPI(e,t,!1)}},this.initApiMiddleware()}return e.prototype.useApiMiddleware=function(e){if(!sdkLib_1.isFunction(e))throw TypeError("middleware must be a function");this.apiHandler.use(e)},e.prototype.initApiMiddleware=function(){this.apiHandler.use(middlewares_1.bridge.bind(this)),this.apiHandler.use(middlewares_1.retry.bind(this)),this.apiHandler.use(middlewares_1.dealParamsAndResult.bind(this)),this.apiHandler.use(middlewares_1.checkConfig.bind(this)),this.apiHandler.use(middlewares_1.initBridge.bind(this)),this.apiHandler.use(middlewares_1.hookBeforeAndAfter.bind(this))},e}();exports.Sdk=Sdk;