diff --git a/src/volume.ts b/src/volume.ts index ed7be35c..878cc115 100644 --- a/src/volume.ts +++ b/src/volume.ts @@ -1255,18 +1255,20 @@ export class Volume { writeFile(id: TFileId, data: TData, options: IWriteFileOptions | string, callback: TCallback); writeFile(id: TFileId, data: TData, a: TCallback | IWriteFileOptions | string, b?: TCallback) { let options: IWriteFileOptions | string = a as IWriteFileOptions; - let callback: TCallback = b; + let callback: TCallback | undefined = b; if (typeof a === 'function') { options = writeFileDefaults; callback = a; } + const cb = validateCallback(callback); + const opts = getWriteFileOptions(options); const flagsNum = flagsToNumber(opts.flag); const modeNum = modeToNumber(opts.mode); const buf = dataToBuffer(data, opts.encoding); - this.wrapAsync(this.writeFileBase, [id, buf, flagsNum, modeNum], callback); + this.wrapAsync(this.writeFileBase, [id, buf, flagsNum, modeNum], cb); } private linkBase(filename1: string, filename2: string) {