@dpkit/file
Version:
Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames
13 lines • 2.48 kB
JavaScript
import { createWriteStream } from "node:fs";
import { mkdir } from "node:fs/promises";
import { dirname } from "node:path";
import { pipeline } from "node:stream/promises";
export async function saveFileStream(stream, options) {
const { path, overwrite } = options;
// It is an equivalent to ensureDir function that won't overwrite an existing directory
await mkdir(dirname(path), { recursive: true });
await pipeline(stream,
// The "wx" flag ensures that the file won't overwrite an existing file
createWriteStream(path, { flags: overwrite ? "w" : "wx" }));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3N0cmVhbS9zYXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUVuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFL0MsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLE1BQWdCLEVBQ2hCLE9BR0M7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLE9BQU8sQ0FBQTtJQUVuQyx1RkFBdUY7SUFDdkYsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUE7SUFFL0MsTUFBTSxRQUFRLENBQ1osTUFBTTtJQUNOLHVFQUF1RTtJQUN2RSxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLENBQzNELENBQUE7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlV3JpdGVTdHJlYW0gfSBmcm9tIFwibm9kZTpmc1wiXG5pbXBvcnQgeyBta2RpciB9IGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCJcbmltcG9ydCB7IGRpcm5hbWUgfSBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCB0eXBlIHsgUmVhZGFibGUgfSBmcm9tIFwibm9kZTpzdHJlYW1cIlxuaW1wb3J0IHsgcGlwZWxpbmUgfSBmcm9tIFwibm9kZTpzdHJlYW0vcHJvbWlzZXNcIlxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2F2ZUZpbGVTdHJlYW0oXG4gIHN0cmVhbTogUmVhZGFibGUsXG4gIG9wdGlvbnM6IHtcbiAgICBwYXRoOiBzdHJpbmdcbiAgICBvdmVyd3JpdGU/OiBib29sZWFuXG4gIH0sXG4pIHtcbiAgY29uc3QgeyBwYXRoLCBvdmVyd3JpdGUgfSA9IG9wdGlvbnNcblxuICAvLyBJdCBpcyBhbiBlcXVpdmFsZW50IHRvIGVuc3VyZURpciBmdW5jdGlvbiB0aGF0IHdvbid0IG92ZXJ3cml0ZSBhbiBleGlzdGluZyBkaXJlY3RvcnlcbiAgYXdhaXQgbWtkaXIoZGlybmFtZShwYXRoKSwgeyByZWN1cnNpdmU6IHRydWUgfSlcblxuICBhd2FpdCBwaXBlbGluZShcbiAgICBzdHJlYW0sXG4gICAgLy8gVGhlIFwid3hcIiBmbGFnIGVuc3VyZXMgdGhhdCB0aGUgZmlsZSB3b24ndCBvdmVyd3JpdGUgYW4gZXhpc3RpbmcgZmlsZVxuICAgIGNyZWF0ZVdyaXRlU3RyZWFtKHBhdGgsIHsgZmxhZ3M6IG92ZXJ3cml0ZSA/IFwid1wiIDogXCJ3eFwiIH0pLFxuICApXG59XG4iXX0=