fix: use correct ini encoder in notification service

This commit is contained in:
Pujit Mehrotra
2024-09-25 10:38:42 -04:00
parent 1dc665dbd8
commit 87f60d953c
2 changed files with 22 additions and 1 deletions

View File

@@ -0,0 +1,21 @@
import { Serializer } from 'multi-ini';
const serializer = new Serializer({ keep_quotes: false });
const replacer = (_, value: unknown) => {
if (typeof value === 'boolean') {
return value ? 'true' : 'false';
}
return value;
};
/**
*
* @param object Any object to serialize
* @returns String converted to ini with multi-ini, with any booleans string escaped to prevent a crash
*/
export const safelySerializeObjectToIni = (object: object): string => {
const safeObject = JSON.parse(JSON.stringify(object, replacer));
return serializer.serialize(safeObject);
};

View File

@@ -19,7 +19,7 @@ import { FSWatcher, watch } from 'chokidar';
import { FileLoadStatus } from '@app/store/types';
import { pubsub, PUBSUB_CHANNEL } from '@app/core/pubsub';
import { fileExists } from '@app/core/utils/files/file-exists';
import { encode as encodeIni } from 'ini';
import { safelySerializeObjectToIni as encodeIni } from '@app/core/utils/files/safe-ini-serializer';
@Injectable()
export class NotificationsService {