@slsplus/ui
Version:
UI Tool for Serverless Plus CLI
48 lines (47 loc) • 1.48 kB
JavaScript
;
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;