@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
JavaScript
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
;