* -------------------------------------------------------------------------
* This file is part of the MindStudio project.
* Copyright (c) 2025 Huawei Technologies Co.,Ltd.
*
* MindStudio is licensed under Mulan PSL v2.
* You can use this software according to the terms and conditions of the Mulan PSL v2.
* You may obtain a copy of Mulan PSL v2 at:
*
* http://license.coscl.org.cn/MulanPSL2
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PSL v2 for more details.
* -------------------------------------------------------------------------
*/
import { ClientConnector } from '../connection';
import { errorCenter, WsError } from './ErrorCenter';
export interface RequestOptions {
silent?: boolean;
}
* 创建请求方法
* @param connector 各模块的 connector 实例
*/
export function createRequest(connector: ClientConnector) {
return async (
command: string,
params: any,
module?: string,
options?: RequestOptions,
): Promise<any> => {
try {
const data = await connector.fetch({
args: { command, params },
module: module !== undefined ? module : String(command).split('/')[0]?.toLowerCase(),
});
return (data as any)?.body;
} catch (error: any) {
const wsError = new WsError(error.code, error.message);
if (!options?.silent && error.code < 9000) {
errorCenter.handleError(wsError);
}
throw wsError;
}
};
}