approvals
Version:
Approval Tests Library - Capturing Human Intelligence
33 lines (27 loc) • 859 B
text/typescript
import * as fs from "fs";
import * as path from "path";
import mkdirp from "mkdirp";
import fileType from "file-type"; // Assuming fileType provides synchronous methods
import { Config } from "../config";
import { Writer } from "../Core/Writer";
export class BinaryWriter implements Writer {
private outputData: Buffer;
private _ext?: string;
constructor(outputData: Buffer) {
this.outputData = outputData;
}
getFileExtension(): string {
if (!this._ext) {
const fileTypeDiscovered = fileType(this.outputData);
this._ext = fileTypeDiscovered?.ext || "blob"; // Assuming synchronous call
}
return this._ext;
}
write(filePath: string): void {
const dir = path.dirname(path.normalize(filePath));
if (!fs.existsSync(dir)) {
mkdirp.sync(dir);
}
fs.writeFileSync(filePath, this.outputData);
}
}