11import { randomBytes } from "node:crypto" ;
2- import { existsSync , readFileSync , renameSync } from "node:fs" ;
2+ import { readFileSync , renameSync } from "node:fs" ;
33import path from "node:path" ;
44
55import equals from "fast-deep-equal/es6" ;
6- import type { Backup , UnifiedBackupStorage } from "../../../models" ;
6+ import type { Backup } from "../../../models" ;
77import { BackupUtils , Queue , wait } from "../../../utils" ;
88import { logger } from "../../../utils/logger" ;
99import * as ZSpec from "../../../zspec" ;
@@ -14,6 +14,7 @@ import type * as ZdoTypes from "../../../zspec/zdo/definition/tstypes";
1414import { Adapter , type TsType } from "../.." ;
1515import { WORKAROUND_JOIN_MANUF_IEEE_PREFIX_TO_CODE } from "../../const" ;
1616import type { DeviceJoinedPayload , DeviceLeavePayload , ZclPayload } from "../../events" ;
17+ import { readBackup } from "../../utils" ;
1718import {
1819 EMBER_HIGH_RAM_CONCENTRATOR ,
1920 EMBER_LOW_RAM_CONCENTRATOR ,
@@ -1141,19 +1142,10 @@ export class EmberAdapter extends Adapter {
11411142 * Loads currently stored backup and returns it in internal backup model.
11421143 */
11431144 private getStoredBackup ( ) : Backup | undefined {
1144- if ( ! existsSync ( this . backupPath ) ) {
1145- return undefined ;
1146- }
1147-
1148- let data : UnifiedBackupStorage ;
1149-
1150- try {
1151- data = JSON . parse ( readFileSync ( this . backupPath ) . toString ( ) ) ;
1152- } catch ( error ) {
1153- throw new Error ( `[BACKUP] Coordinator backup is corrupted. (${ ( error as Error ) . stack } )` ) ;
1154- }
1145+ const data = readBackup ( this . backupPath ) ;
1146+ if ( ! data ) return undefined ;
11551147
1156- if ( data . metadata ?. format === "zigpy/open-coordinator-backup" && data . metadata ?. version ) {
1148+ if ( "metadata" in data && data . metadata ?. format === "zigpy/open-coordinator-backup" && data . metadata ?. version ) {
11571149 if ( data . metadata ?. version !== 1 ) {
11581150 throw new Error ( `[BACKUP] Unsupported open coordinator backup version (version=${ data . metadata ?. version } ).` ) ;
11591151 }
0 commit comments