mirror of
https://github.com/unraid/api.git
synced 2026-01-07 09:10:05 -06:00
fix: use correct ini encoder in notification service
This commit is contained in:
21
api/src/core/utils/files/safe-ini-serializer.ts
Normal file
21
api/src/core/utils/files/safe-ini-serializer.ts
Normal 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);
|
||||
};
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user