import omit from 'lodash/omit'; import { RequestMethod } from 'umi-request'; type Service = Record< T, (params?: any, urlAppendix?: string) => any >; const registerServer = ( opt: Record, request: RequestMethod, ) => { const server: Service = {} as Service; for (let key in opt) { server[key] = (params?: any, urlAppendix?: string) => { let url = opt[key].url; const requestOptions = opt[key]; if (urlAppendix) { url = url + '/' + urlAppendix; } if (opt[key].method === 'post' || opt[key].method === 'POST') { return request(url, { method: opt[key].method, data: params, }); } if (opt[key].method === 'get' || opt[key].method === 'GET') { return request.get(url, { ...omit(requestOptions, ['method', 'url']), params, }); } }; } return server; }; export default registerServer;