-import logger from './Logger';
-import Utils from './Utils';
-import type { EmptyObject } from '../types/EmptyObject';
-import type { HandleErrorParams } from '../types/Error';
-import type { FileType } from '../types/FileType';
-import type { JsonType } from '../types/JsonType';
-
-export default class FileUtils {
- private constructor() {
- // This is intentional
- }
-
- public static watchJsonFile<T extends JsonType>(
- logPrefix: string,
- fileType: FileType,
- file: string,
- refreshedVariable?: T,
- listener: fs.WatchListener<string> = (event, filename) => {
- if (!Utils.isEmptyString(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(logPrefix, fileType, file, error as NodeJS.ErrnoException, {
- throwError: false,
- });
- }
- }
- }
- ): fs.FSWatcher | undefined {
- if (!Utils.isEmptyString(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') {