UNPKG

mutants-appfx

Version:

appfx module

194 lines (183 loc) 3.5 kB
import { api } from 'mutants-microfx'; export default class DataProviderManager { static registry = new Map(); static registerDataProvider({ sysid, mid, }, dataProvider) { const dpKey = sysid + '_' + mid; if (!DataProviderManager.registry.has(dpKey)) { DataProviderManager.registry.set(dpKey, dataProvider); } } static getDataProvider({ sysid, mid, }) { const dpKey = sysid + '_' + mid; return DataProviderManager.registry.get(dpKey); } static async getModule({ sysid, mid }) { let dataProvider = DataProviderManager.getDataProvider({ sysid, mid }); if (dataProvider && dataProvider.getModule) { return dataProvider.getModule({ sysid, mid }); } else { return api.get('module', { params: { sysid, mid } }); } } static async getDataInfo({ sysid, mid, ...other }) { let dataProvider = DataProviderManager.getDataProvider({ sysid, mid }); if (dataProvider && dataProvider.getDataInfo) { return dataProvider.getDataInfo({ sysid, mid, ...other }); } else { return api.get('dataInfo', { params: { sysid, mid, ...other } }); } } static async getViewInfo({ sysid, mid, ...other }) { let dataProvider = DataProviderManager.getDataProvider({ sysid, mid }); if (dataProvider && dataProvider.getViewInfo) { return dataProvider.getViewInfo({ sysid, mid, ...other }); } else { return api.get('viewInfo', { params: { sysid, mid, ...other } }); } } static async getData({ sysid, mid, id, ...other }) { let dataProvider = DataProviderManager.getDataProvider({ sysid, mid, ...other }); if (dataProvider && dataProvider.getData) { return dataProvider.getData({ sysid, mid, id, ...other }); } else { return api.get('data', { params: { sysid, mid, id, ...other } }); } } static async getDataList({ sysid, mid, ...other }) { let dataProvider = DataProviderManager.getDataProvider({ sysid, mid }); if (dataProvider && dataProvider.getDataList) { return dataProvider.getDataList({ sysid, mid, ...other }); } else { return api.get('list', { params: { sysid, mid, ...other } }); } } static async getRule({ sysid, mid, ...other }) { let dataProvider = DataProviderManager.getDataProvider({ sysid, mid }); if (dataProvider && dataProvider.getRule) { return dataProvider.getRule({ sysid, mid, ...other }); } else { return api.get('rules', { params: { sysid, mid, ...other } }); } } static async getFunction(params) { let dataProvider = DataProviderManager.getDataProvider(params); if (dataProvider && dataProvider.getFunction) { return dataProvider.getFunction(params); } else { return (await api.get('functions', { params })).data.data; } } }