-import { logger } from './Logger';
-import { Utils } from './Utils';
-import type { EmptyObject, FileType, HandleErrorParams, JsonType } from '../types';
-
-export class FileUtils {
- private constructor() {
- // This is intentional
- }
-
- public static watchJsonFile<T extends JsonType>(
- file: string,
- fileType: FileType,
- logPrefix: string,
- refreshedVariable?: T,
- listener: fs.WatchListener<string> = (event, filename) => {
- if (Utils.isNotEmptyString(filename) && event === 'change') {
- try {
- logger.debug(`${logPrefix} ${fileType} file ${file} have changed, reload`);
- refreshedVariable && (refreshedVariable = JSON.parse(fs.readFileSync(file, 'utf8')) as T);
- } catch (error) {
- FileUtils.handleFileException(file, fileType, error as NodeJS.ErrnoException, logPrefix, {
- throwError: false,
- });
- }
- }
- }
- ): fs.FSWatcher | undefined {
- if (Utils.isNotEmptyString(file)) {
+export const watchJsonFile = <T extends JsonType>(
+ file: string,
+ fileType: FileType,
+ logPrefix: string,
+ refreshedVariable?: T,
+ listener: WatchListener<string> = (event, filename) => {
+ if (isNotEmptyString(filename) && event === 'change') {