42 lines
1.0 KiB
TypeScript
42 lines
1.0 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import fs from 'fs/promises';
|
|
|
|
/**
|
|
* Interface for file system operations that may be delegated to different implementations
|
|
*/
|
|
export interface FileSystemService {
|
|
/**
|
|
* Read text content from a file
|
|
*
|
|
* @param filePath - The path to the file to read
|
|
* @returns The file content as a string
|
|
*/
|
|
readTextFile(filePath: string): Promise<string>;
|
|
|
|
/**
|
|
* Write text content to a file
|
|
*
|
|
* @param filePath - The path to the file to write
|
|
* @param content - The content to write
|
|
*/
|
|
writeTextFile(filePath: string, content: string): Promise<void>;
|
|
}
|
|
|
|
/**
|
|
* Standard file system implementation
|
|
*/
|
|
export class StandardFileSystemService implements FileSystemService {
|
|
async readTextFile(filePath: string): Promise<string> {
|
|
return fs.readFile(filePath, 'utf-8');
|
|
}
|
|
|
|
async writeTextFile(filePath: string, content: string): Promise<void> {
|
|
await fs.writeFile(filePath, content, 'utf-8');
|
|
}
|
|
}
|