diff --git a/src/utils/io/write-file-options.ts b/src/utils/io/write-file-options.ts new file mode 100644 index 0000000..fdc0d2e --- /dev/null +++ b/src/utils/io/write-file-options.ts @@ -0,0 +1,32 @@ +import { writeFileSync } from "node:fs"; +import { writeFile } from "node:fs/promises"; + +/** + * Options that can be used with `fs.writeFile()` to write a file asynchronously. + */ +export type AsyncWriteFileOptions = Parameters[2]; + +/** + * Options that can be used with `fs.writeFileSync()` to write a file synchronously. + */ +export type SyncWriteFileOptions = Parameters[2]; + +/** + * All possible options that can be passed to `fs.writeFile()` and `fs.writeFileSync()`. + */ +export type WriteFileOptions = AsyncWriteFileOptions | SyncWriteFileOptions; + +/** + * Object-style options that can be used with `fs.writeFile()` to write a file asynchronously. + */ +export type AsyncWriteFileOptionsObject = Exclude; + +/** + * Object-style options that can be used with `fs.writeFileSync()` to write a file synchronously. + */ +export type SyncWriteFileOptionsObject = Exclude; + +/** + * All possible object-style options that can be passed to `fs.writeFile()` and `fs.writeFileSync()`. + */ +export type WriteFileOptionsObject = AsyncWriteFileOptionsObject | SyncWriteFileOptionsObject;