UNPKG

@message-queue-toolkit/core

Version:

Useful utilities, interfaces and base classes for message queue handling. Supports AMQP and SQS with a common abstraction on top currently

30 lines 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.jsonStreamStringifySerializer = exports.JsonStreamStringifySerializer = exports.defaultTemporaryFilePathResolver = void 0; const node_core_1 = require("@lokalise/node-core"); const json_stream_stringify_1 = require("json-stream-stringify"); const tmp_1 = require("tmp"); const defaultTemporaryFilePathResolver = () => (0, tmp_1.tmpNameSync)(); exports.defaultTemporaryFilePathResolver = defaultTemporaryFilePathResolver; class JsonStreamStringifySerializer { temporaryFilePathResolver; constructor(temporaryFilePathResolver = exports.defaultTemporaryFilePathResolver) { this.temporaryFilePathResolver = temporaryFilePathResolver; } async serialize(payload) { const fsReadableProvider = await node_core_1.FsReadableProvider.persistReadableToFs({ sourceReadable: new json_stream_stringify_1.JsonStreamStringify(payload), targetFile: this.temporaryFilePathResolver(), }); return { value: await fsReadableProvider.createStream(), size: await fsReadableProvider.getContentLength(), destroy: async () => { await fsReadableProvider.destroy(); }, }; } } exports.JsonStreamStringifySerializer = JsonStreamStringifySerializer; exports.jsonStreamStringifySerializer = new JsonStreamStringifySerializer(); //# sourceMappingURL=JsonStreamStringifySerializer.js.map