diff options
author | gumi <git@gumi.ca> | 2020-05-16 17:18:17 -0400 |
---|---|---|
committer | gumi <git@gumi.ca> | 2020-05-16 17:18:17 -0400 |
commit | 25a3c3fefae87d55da172f2aaef6a27987f439fd (patch) | |
tree | c410cdfd73c7cf9101f7f6dab1c8fa1772dd05c9 /server/frob/storage.ts | |
parent | 1af05ee74d0b2ec4e132617ab71bedd30fbfe753 (diff) | |
download | tools-25a3c3fefae87d55da172f2aaef6a27987f439fd.tar.gz tools-25a3c3fefae87d55da172f2aaef6a27987f439fd.tar.bz2 tools-25a3c3fefae87d55da172f2aaef6a27987f439fd.tar.xz tools-25a3c3fefae87d55da172f2aaef6a27987f439fd.zip |
[frob] update for deno 1.0
Diffstat (limited to 'server/frob/storage.ts')
-rw-r--r-- | server/frob/storage.ts | 38 |
1 files changed, 22 insertions, 16 deletions
diff --git a/server/frob/storage.ts b/server/frob/storage.ts index 04559d6..ab44ba1 100644 --- a/server/frob/storage.ts +++ b/server/frob/storage.ts @@ -1,3 +1,5 @@ +import { SQLHandler } from "./sql.ts"; + class StorageParser { private storage_line = "^" + @@ -6,7 +8,7 @@ class StorageParser { private storage_items_line = "[0-9]+,(?<nameid>[0-9]+),(?<amount>[0-9]+),(?<equip>[0-9]+),[0-9]+,[0-9]+,[0-9]+,[0-9]+,[0-9]+,[0-9]+,[0-9]+ "; private storage_regex: RegExp; private storage_regex_items: RegExp; - private encoder; + private encoder: TextEncoder; constructor () { this.storage_regex = new RegExp(this.storage_line); @@ -36,7 +38,7 @@ class StorageParser { groups.items = items; - Deno.write(Deno.stdout.rid, this.encoder.encode(`\r⌛ processing storage of account ${groups.account_id}... `)); + Deno.write(Deno.stdout.rid, this.encoder.encode(`\r \r⌛ processing storage of account ${groups.account_id}...`)); return groups; } @@ -50,7 +52,7 @@ class StorageParser { while (true) { const nread = await Deno.read(file.rid, buf); - if (nread === Deno.EOF) { + if (nread === null) { break; } @@ -81,20 +83,27 @@ class StorageParser { } class StorageWriter { - private file; - private encoder; + private file?: Deno.File; + private encoder: TextEncoder; constructor () { + this.encoder = new TextEncoder(); + } + + async init () { try { - Deno.removeSync("world/save/storage.txt.tmp"); + await Deno.remove("world/save/storage.txt.tmp"); } catch { // ignore this } - this.file = Deno.openSync("world/save/storage.txt.tmp", "a+"); - this.encoder = new TextEncoder(); + this.file = await Deno.open("world/save/storage.txt.tmp", {append: true, create: true}); } async write (storage: any) { + if (!this.file) { + return; + } + let line = `${storage.account_id},${storage.storage_amount}\t`; for (const item of storage.items) { @@ -107,12 +116,9 @@ class StorageWriter { await Deno.write(this.file.rid, this.encoder.encode(line)); } - async finalize(dry_run: boolean = false) { - this.file.close(); - - if (dry_run) { - Deno.removeSync("world/save/storage.txt.tmp"); - } else { + async finalize () { + if (this.file) { + this.file.close(); console.info("\roverwriting storage.txt... "); await Deno.rename("world/save/storage.txt", "world/save/storage.txt_pre-frob"); await Deno.rename("world/save/storage.txt.tmp", "world/save/storage.txt"); @@ -121,9 +127,9 @@ class StorageWriter { } class StorageSQL { - private sql; + private sql: SQLHandler; - constructor (sql) { + constructor (sql: SQLHandler) { this.sql = sql; } |