This commit applies `strictNullChecks` to the entire codebase to improve maintainability and type safety. Key changes include: - Remove some explicit null-checks where unnecessary. - Add necessary null-checks. - Refactor static factory functions for a more functional approach. - Improve some test names and contexts for better debugging. - Add unit tests for any additional logic introduced. - Refactor `createPositionFromRegexFullMatch` to its own function as the logic is reused. - Prefer `find` prefix on functions that may return `undefined` and `get` prefix for those that always return a value.
25 lines
678 B
TypeScript
25 lines
678 B
TypeScript
export interface ISystemOperations {
|
|
readonly operatingSystem: IOperatingSystemOps;
|
|
readonly location: ILocationOps;
|
|
readonly fileSystem: IFileSystemOps;
|
|
readonly command: ICommandOps;
|
|
}
|
|
|
|
export interface IOperatingSystemOps {
|
|
getTempDirectory(): string;
|
|
}
|
|
|
|
export interface ILocationOps {
|
|
combinePaths(...pathSegments: string[]): string;
|
|
}
|
|
|
|
export interface ICommandOps {
|
|
execute(command: string): void;
|
|
}
|
|
|
|
export interface IFileSystemOps {
|
|
setFilePermissions(filePath: string, mode: string | number): Promise<void>;
|
|
createDirectory(directoryPath: string, isRecursive?: boolean): Promise<void>;
|
|
writeToFile(filePath: string, data: string): Promise<void>;
|
|
}
|