// eslint-disable-next-line @typescript-eslint/no-extraneous-class
export class Configuration {
- public static configurationChangeCallback: () => Promise<void>
+ public static configurationChangeCallback?: () => Promise<void>
private static readonly configurationFile = join(
dirname(fileURLToPath(import.meta.url)),
}
private static buildPerformanceStorageSection (): StorageConfiguration {
- let storageConfiguration: StorageConfiguration = {
- enabled: false,
- type: StorageType.JSON_FILE,
- uri: getDefaultPerformanceStorageUri(StorageType.JSON_FILE)
+ let storageConfiguration: StorageConfiguration
+ switch (Configuration.getConfigurationData()?.performanceStorage?.type) {
+ case StorageType.SQLITE:
+ storageConfiguration = {
+ enabled: false,
+ type: StorageType.SQLITE,
+ uri: getDefaultPerformanceStorageUri(StorageType.SQLITE)
+ }
+ break
+ case StorageType.JSON_FILE:
+ default:
+ storageConfiguration = {
+ enabled: false,
+ type: StorageType.JSON_FILE,
+ uri: getDefaultPerformanceStorageUri(StorageType.JSON_FILE)
+ }
+ break
}
if (hasOwnProp(Configuration.getConfigurationData(), ConfigurationSection.performanceStorage)) {
storageConfiguration = {
...storageConfiguration,
...Configuration.getConfigurationData()?.performanceStorage,
- ...(Configuration.getConfigurationData()?.performanceStorage?.type ===
- StorageType.JSON_FILE &&
+ ...((Configuration.getConfigurationData()?.performanceStorage?.type ===
+ StorageType.JSON_FILE ||
+ Configuration.getConfigurationData()?.performanceStorage?.type === StorageType.SQLITE) &&
Configuration.getConfigurationData()?.performanceStorage?.uri != null && {
uri: buildPerformanceUriFilePath(
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
] as StationTemplateUrl[])
Configuration.getConfigurationData()?.stationTemplateUrls.forEach(
(stationTemplateUrl: StationTemplateUrl) => {
- if (stationTemplateUrl?.['numberOfStation' as keyof StationTemplateUrl] !== undefined) {
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
+ if (stationTemplateUrl['numberOfStation' as keyof StationTemplateUrl] !== undefined) {
console.error(
`${chalk.green(logPrefix())} ${chalk.red(
`Deprecated configuration key 'numberOfStation' usage for template file '${stationTemplateUrl.file}' in 'stationTemplateUrls'. Use 'numberOfStations' instead`
string,
unknown
>
- )?.[key] !== undefined
+ )[key] !== undefined
) {
console.error(
`${chalk.green(logPrefix())} ${chalk.red(
if (
!Configuration.configurationFileReloading &&
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- filename!.trim()!.length > 0 &&
+ filename!.trim().length > 0 &&
event === 'change'
) {
Configuration.configurationFileReloading = true
Configuration.configurationSectionCache.clear()
if (Configuration.configurationChangeCallback !== undefined) {
Configuration.configurationChangeCallback()
- .catch((error) => {
+ .catch(error => {
throw typeof error === 'string' ? new Error(error) : error
})
.finally(() => {