UNPKG

mtl-js-sdk

Version:

ynf-fw-mtl-api

65 lines (61 loc) 2.01 kB
/* * @Author: wangyingliang@yonyou.com * @Date: 2024-07-22 15:45:20 * @LastEditors: wangyingliang wangyingliang@yonyou.com * @LastEditTime: 2025-02-25 21:44:16 * @FilePath: /mtl-api-project/src/platforms/upesn/platform.js * @Description: * Copyright (c) 2024 by Yonyou, All Rights Reserved. */ import methods from './methods' import YYEsnBridge from './esn.min.js' import builder from '../../common/builder' let isReady = false; let callbacks = []; function recurseDelegate(module) { let delegate = {}; for (const key in module) { if (Object.prototype.hasOwnProperty.call(module, key)) { const element = module[key]; if (typeof element === "function") { delegate[key] = (...args) => { console.log("exec api method1 :"); console.log(key); console.log(args); console.log("exec api data1: "); if (isReady) { builder.assignGetter(window.mtl, key, element); element(...args); } else { callbacks.push(() => { builder.assignGetter(window.mtl, key, element); element(...args); }); } }; } else if (typeof element === "object") { delegate[key] = recurseDelegate(element); } else { delegate[key] = element; } } } return delegate; } let platform = { id: "upesn", bootstrap(onready) { try { window.YYEsnBridge = YYEsnBridge; YYEsnBridge.ready(() => { isReady = true; callbacks.forEach(cb => cb()); callbacks = null; onready(); }); } catch (error) { } } }; platform.exports = recurseDelegate(methods); export default platform;