UNPKG

@sap/subaccount-destination-service-provider

Version:

Provide service consumption of SAP subaccount services

49 lines 2.68 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleProviderError = exports.handleBusinessItemsStream = void 0; const fs_1 = require("fs"); const stream_json_1 = require("stream-json"); const StreamArray_1 = require("stream-json/streamers/StreamArray"); const Pick_1 = require("stream-json/filters/Pick"); const service_provider_apis_1 = require("@sap/service-provider-apis"); function handleBusinessItemsStream(filePath, itemProcessor, endProcessor) { return __awaiter(this, void 0, void 0, function* () { return new Promise((resolve, reject) => { const jsonStream = (0, fs_1.createReadStream)(filePath); const parserInstance = jsonStream .pipe((0, stream_json_1.parser)()) .pipe((0, Pick_1.pick)({ filter: "data" })) .pipe((0, StreamArray_1.streamArray)()); parserInstance.on("data", ({ value }) => { itemProcessor(value, () => { parserInstance.pause(); jsonStream.destroy(); resolve(endProcessor()); }); }); jsonStream.on("end", () => resolve(endProcessor())); jsonStream.on("close", () => resolve(endProcessor())); jsonStream.on("error", (error) => reject(error)); parserInstance.on("error", (error) => reject(error)); }); }); } exports.handleBusinessItemsStream = handleBusinessItemsStream; function handleProviderError(e, customMessage, logger) { e.message = `${customMessage} - ${e.message}`; logger.error(e.message); const serviceProviderError = new service_provider_apis_1.ServiceProviderError(service_provider_apis_1.ServiceProviderErrorCode.RETRIEVE_DATA, e); serviceProviderError.stack = `${serviceProviderError.stack}\nCaused By:\n${e.stack}`; throw serviceProviderError; } exports.handleProviderError = handleProviderError; //# sourceMappingURL=retrieverUtils.js.map