X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcharging-station%2FAuthorizedTagsCache.ts;h=332b3a983a8b8760ef33668639ec09b3aaf24d9c;hb=269de5835f83c14f7432c0049a6606a55e1b556e;hp=0f702047702ce5cc92890f28679a9cafddacf1fc;hpb=a36bad10340be6ff3ac66b8cedf136d36778c857;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/AuthorizedTagsCache.ts b/src/charging-station/AuthorizedTagsCache.ts index 0f702047..332b3a98 100644 --- a/src/charging-station/AuthorizedTagsCache.ts +++ b/src/charging-station/AuthorizedTagsCache.ts @@ -1,18 +1,16 @@ -import fs from 'fs'; +import fs from 'node:fs'; -import { FileType } from '../types/FileType'; -import FileUtils from '../utils/FileUtils'; -import logger from '../utils/Logger'; -import Utils from '../utils/Utils'; +import { FileType } from '../types'; +import { FileUtils, Utils, logger } from '../utils'; -export default class AuthorizedTagsCache { +export class AuthorizedTagsCache { private static instance: AuthorizedTagsCache | null = null; private readonly tagsCaches: Map; - private readonly FSWatchers: Map; + private readonly FSWatchers: Map; private constructor() { this.tagsCaches = new Map(); - this.FSWatchers = new Map(); + this.FSWatchers = new Map(); } public static getInstance(): AuthorizedTagsCache { @@ -22,7 +20,7 @@ export default class AuthorizedTagsCache { return AuthorizedTagsCache.instance; } - public getAuthorizedTags(file: string): string[] { + public getAuthorizedTags(file: string): string[] | undefined { if (this.hasTags(file) === false) { this.setTags(file, this.getAuthorizedTagsFromFile(file)); // Monitor authorization file @@ -30,27 +28,24 @@ export default class AuthorizedTagsCache { this.FSWatchers.set( file, FileUtils.watchJsonFile( - this.logPrefix(file), - FileType.Authorization, file, - null, + FileType.Authorization, + this.logPrefix(file), + undefined, (event, filename) => { - if (filename && event === 'change') { + if (Utils.isNotEmptyString(filename) && event === 'change') { try { logger.debug( - this.logPrefix(file) + - ' ' + - FileType.Authorization + - ' file have changed, reload' + `${this.logPrefix(file)} ${FileType.Authorization} file have changed, reload` ); this.deleteTags(file); this.deleteFSWatcher(file); } catch (error) { FileUtils.handleFileException( - this.logPrefix(file), - FileType.Authorization, file, + FileType.Authorization, error as NodeJS.ErrnoException, + this.logPrefix(file), { throwError: false, } @@ -76,7 +71,7 @@ export default class AuthorizedTagsCache { return this.tagsCaches.set(file, tags); } - private getTags(file: string): string[] { + private getTags(file: string): string[] | undefined { return this.tagsCaches.get(file); } @@ -85,7 +80,7 @@ export default class AuthorizedTagsCache { } private deleteFSWatcher(file: string): boolean { - this.FSWatchers.get(file).close(); + this.FSWatchers.get(file)?.close(); return this.FSWatchers.delete(file); } @@ -97,19 +92,19 @@ export default class AuthorizedTagsCache { authorizedTags = JSON.parse(fs.readFileSync(file, 'utf8')) as string[]; } catch (error) { FileUtils.handleFileException( - this.logPrefix(file), - FileType.Authorization, file, - error as NodeJS.ErrnoException + FileType.Authorization, + error as NodeJS.ErrnoException, + this.logPrefix(file) ); } } else { - logger.info(this.logPrefix(file) + ' No authorization file given)'); + logger.info(`${this.logPrefix(file)} No authorization file given`); } return authorizedTags; } - private logPrefix(file: string): string { + private logPrefix = (file: string): string => { return Utils.logPrefix(` Authorized tags cache for authorization file '${file}' |`); - } + }; }