UNPKG

@dpkit/file

Version:

Fast TypeScript data management framework built on top of the Data Package standard and Polars DataFrames

11 lines 2.12 kB
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) { // It is an equivalent to ensureDir function await mkdir(dirname(options.path), { recursive: true }); // The "wx" flag ensures that the file won't overwrite an existing file await pipeline(stream, createWriteStream(options.path, { flags: "wx" })); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2F2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3N0cmVhbS9zYXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLFNBQVMsQ0FBQTtBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUE7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUVuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUE7QUFFL0MsTUFBTSxDQUFDLEtBQUssVUFBVSxjQUFjLENBQ2xDLE1BQWdCLEVBQ2hCLE9BRUM7SUFFRCw0Q0FBNEM7SUFDNUMsTUFBTSxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBRXZELHVFQUF1RTtJQUN2RSxNQUFNLFFBQVEsQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUE7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVdyaXRlU3RyZWFtIH0gZnJvbSBcIm5vZGU6ZnNcIlxuaW1wb3J0IHsgbWtkaXIgfSBmcm9tIFwibm9kZTpmcy9wcm9taXNlc1wiXG5pbXBvcnQgeyBkaXJuYW1lIH0gZnJvbSBcIm5vZGU6cGF0aFwiXG5pbXBvcnQgdHlwZSB7IFJlYWRhYmxlIH0gZnJvbSBcIm5vZGU6c3RyZWFtXCJcbmltcG9ydCB7IHBpcGVsaW5lIH0gZnJvbSBcIm5vZGU6c3RyZWFtL3Byb21pc2VzXCJcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHNhdmVGaWxlU3RyZWFtKFxuICBzdHJlYW06IFJlYWRhYmxlLFxuICBvcHRpb25zOiB7XG4gICAgcGF0aDogc3RyaW5nXG4gIH0sXG4pIHtcbiAgLy8gSXQgaXMgYW4gZXF1aXZhbGVudCB0byBlbnN1cmVEaXIgZnVuY3Rpb25cbiAgYXdhaXQgbWtkaXIoZGlybmFtZShvcHRpb25zLnBhdGgpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KVxuXG4gIC8vIFRoZSBcInd4XCIgZmxhZyBlbnN1cmVzIHRoYXQgdGhlIGZpbGUgd29uJ3Qgb3ZlcndyaXRlIGFuIGV4aXN0aW5nIGZpbGVcbiAgYXdhaXQgcGlwZWxpbmUoc3RyZWFtLCBjcmVhdGVXcml0ZVN0cmVhbShvcHRpb25zLnBhdGgsIHsgZmxhZ3M6IFwid3hcIiB9KSlcbn1cbiJdfQ==