UNPKG

@slsplus/ui

Version:
48 lines (47 loc) 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.request = void 0; const error_1 = require("./error"); function isEmpty(val) { return val === undefined || val === null || (typeof val === 'number' && isNaN(val)); } function cleanEmptyValue(obj) { const newObj = {}; Object.entries(obj).forEach(([key, val]) => { if (!isEmpty(val)) { newObj[key] = val; } }); return newObj; } async function request(capi, options) { const { ServiceType } = capi.options; const typePrefix = `API_${ServiceType.toUpperCase()}_`; try { const reqData = cleanEmptyValue(options); const res = await capi.request(reqData, { isV3: false, debug: !!process.env.DEBUG, }); const { Response } = res; if (Response && Response.Error && Response.Error.Code) { throw new error_1.ApiError({ type: `${typePrefix}${options.Action}`, message: `${Response.Error.Message} (reqId: ${Response.RequestId})`, reqId: Response.RequestId, code: Response.Error.Code, }); } return Response; } catch (e) { throw new error_1.ApiError({ type: `${typePrefix}${options.Action}`, message: e.message, stack: e.stack, reqId: e.reqId, code: e.code, }); } } exports.request = request;