scroll/src/deno/file_io.ts

36 lines
1.0 KiB
JavaScript

import { IFileIO } from '../common/runtime.ts';
const DenoFileIO: IFileIO = {
openFile: async function (path: string): Promise<string> {
const decoder = new TextDecoder('utf-8');
const data = await Deno.readFile(path);
return decoder.decode(data);
},
openFileSync: function (path: string): string {
const decoder = new TextDecoder('utf-8');
const data = Deno.readFileSync(path);
return decoder.decode(data);
},
appendFile: async function (path: string, contents: string): Promise<void> {
const file = await Deno.open(path, {
write: true,
append: true,
create: true,
});
const encoder = new TextEncoder();
const writer = file.writable.getWriter();
await writer.write(encoder.encode(contents));
file.close();
},
appendFileSync: function (path: string, contents: string) {
const encoder = new TextEncoder();
Deno.writeFileSync(path, encoder.encode(contents));
},
saveFile: async function (path: string, contents: string): Promise<void> {
return await Deno.writeTextFile(path, contents);
},
};
export default DenoFileIO;