integreat
Version:
Node.js integration layer
14 lines • 695 B
JavaScript
function errorMessageFromResponses(errors) {
const messages = errors.map(([response, serviceId]) => `'${serviceId}' (${response.status}: ${response.error})`);
return `The following services could not close: ${messages.join(', ')}`;
}
export default async function close(services) {
const responses = await Promise.all(services.map((service) => service.close()));
const errors = responses
.map((response, index) => [response, services[index].id])
.filter(([response]) => response.status !== 'ok');
return errors.length === 0
? { status: 'ok' }
: { status: 'error', error: errorMessageFromResponses(errors) };
}
//# sourceMappingURL=close.js.map