UNPKG

@logtape/file

Version:

File sink and rotating file sink for LogTape

66 lines (64 loc) 1.77 kB
import { getBaseFileSink, getBaseRotatingFileSink } from "./filesink.base.js"; //#region filesink.deno.ts /** * A Deno-specific file sink driver. */ const denoDriver = { openSync(path) { return Deno.openSync(path, { create: true, append: true }); }, writeSync(fd, chunk) { fd.writeSync(chunk); }, flushSync(fd) { fd.syncSync(); }, closeSync(fd) { fd.close(); }, statSync: globalThis?.Deno.statSync, renameSync: globalThis?.Deno.renameSync }; /** * Get a file sink. * * Note that this function is unavailable in the browser. * * @param path A path to the file to write to. * @param options The options for the sink. * @returns A sink that writes to the file. The sink is also a disposable * object that closes the file when disposed. */ function getFileSink(path, options = {}) { return getBaseFileSink(path, { ...options, ...denoDriver }); } /** * Get a rotating file sink. * * This sink writes log records to a file, and rotates the file when it reaches * the `maxSize`. The rotated files are named with the original file name * followed by a dot and a number, starting from 1. The number is incremented * for each rotation, and the maximum number of files to keep is `maxFiles`. * * Note that this function is unavailable in the browser. * * @param path A path to the file to write to. * @param options The options for the sink and the file driver. * @returns A sink that writes to the file. The sink is also a disposable * object that closes the file when disposed. */ function getRotatingFileSink(path, options = {}) { return getBaseRotatingFileSink(path, { ...options, ...denoDriver }); } //#endregion export { denoDriver, getFileSink, getRotatingFileSink }; //# sourceMappingURL=filesink.deno.js.map