e2ed
Version:
E2E testing framework over Playwright
31 lines (30 loc) • 1.05 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.writeFile = void 0;
const node_fs_1 = require("node:fs");
const node_path_1 = require("node:path");
const node_stream_1 = require("node:stream");
const createDirectory_1 = require("./createDirectory");
/**
* Analogue of `fs.writeFile`, working on streams (to support large files).
*/
const writeFile = async (path, data) => {
let buffer;
if (data instanceof Buffer) {
buffer = data;
}
else {
buffer = Buffer.from(data);
}
const directoryPath = (0, node_path_1.dirname)(path);
await (0, createDirectory_1.createDirectory)(directoryPath);
const sourceStream = node_stream_1.Readable.from(buffer);
const targetStream = (0, node_fs_1.createWriteStream)(path);
sourceStream.pipe(targetStream);
await new Promise((resolve, reject) => {
sourceStream.on('error', reject);
targetStream.on('error', reject);
targetStream.on('close', resolve);
});
};
exports.writeFile = writeFile;