Skip to content

Commit 918749b

Browse files
committed
fix: DataStore decoding
1 parent aaedebc commit 918749b

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

.changeset/shaggy-houses-design.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@sv443-network/coreutils": patch
3+
---
4+
5+
Fixed decoding step when migrating DataStore data.

lib/DataStore.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import { DatedError, MigrationError } from "./Errors.ts";
77
import type { DataStoreEngine } from "./DataStoreEngine.ts";
88
import type { LooseUnion, Prettify, SerializableVal } from "./types.ts";
9-
import { compress } from "./crypto.ts";
9+
import { compress, decompress } from "./crypto.ts";
1010

1111
//#region types
1212

@@ -191,7 +191,7 @@ export class DataStore<TData extends DataStoreData> {
191191

192192
if(typeof opts.compressionFormat === "string") {
193193
this.encodeData = [opts.compressionFormat, async (data: string) => await compress(data, opts.compressionFormat!, "string")];
194-
this.decodeData = [opts.compressionFormat, async (data: string) => await compress(data, opts.compressionFormat!, "string")];
194+
this.decodeData = [opts.compressionFormat, async (data: string) => await decompress(data, opts.compressionFormat!, "string")];
195195
}
196196
else if("encodeData" in opts && "decodeData" in opts && Array.isArray(opts.encodeData) && Array.isArray(opts.decodeData)) {
197197
this.encodeData = [opts.encodeData![0], opts.encodeData![1]];
@@ -241,8 +241,8 @@ export class DataStore<TData extends DataStoreData> {
241241
if(!isNaN(oldVer))
242242
migrateFmt(`_uucfgver-${this.id}`, `__ds-${this.id}-ver`, oldVer);
243243

244-
if(typeof oldEnc === "boolean")
245-
migrateFmt(`_uucfgenc-${this.id}`, `__ds-${this.id}-enf`, oldEnc === true ? this.compressionFormat ?? null : null);
244+
if(typeof oldEnc === "boolean" || oldEnc === "true" || oldEnc === "false" || typeof oldEnc === "number" || oldEnc === "0" || oldEnc === "1")
245+
migrateFmt(`_uucfgenc-${this.id}`, `__ds-${this.id}-enf`, [0, "0", true, "true"].includes(oldEnc) ? this.compressionFormat ?? null : null);
246246
else {
247247
promises.push(this.engine.setValue(`__ds-${this.id}-enf`, this.compressionFormat));
248248
promises.push(this.engine.deleteValue(`_uucfgenc-${this.id}`));

0 commit comments

Comments
 (0)