@nomicfoundation/hardhat-keystore
Version:
A module for managing keystore files that store a map from IDs to encrypted string values.
30 lines (25 loc) • 875 B
text/typescript
import type { EncryptedKeystore } from "../keystores/encryption.js";
import type { FileManager } from "../types.js";
import {
exists,
writeJsonFile,
readJsonFile,
move,
} from "@nomicfoundation/hardhat-utils/fs";
export class FileManagerImpl implements FileManager {
public fileExists(absolutePath: string): Promise<boolean> {
return exists(absolutePath);
}
public async writeJsonFile(
absolutePathToFile: string,
keystoreFile: EncryptedKeystore,
): Promise<void> {
// First write to a temporary file, then move it to minimize the risk of file corruption
const tmpPath = `${absolutePathToFile}.tmp`;
await writeJsonFile(tmpPath, keystoreFile);
return await move(tmpPath, absolutePathToFile);
}
public readJsonFile(absolutePathToFile: string): Promise<EncryptedKeystore> {
return readJsonFile(absolutePathToFile);
}
}