summaryrefslogtreecommitdiff
path: root/nodejs/database/agents.ts
diff options
context:
space:
mode:
authorJulien Dessaux2024-03-21 17:08:37 +0100
committerJulien Dessaux2024-03-27 15:21:00 +0100
commitd668eac4a63a9aa98c3efff395faa23cfcea1c1b (patch)
tree691e3bb471bcacadb975f581f73e09b84287b4a5 /nodejs/database/agents.ts
parent[javascript] fixed mining loop (diff)
downloadspacetraders-d668eac4a63a9aa98c3efff395faa23cfcea1c1b.tar.gz
spacetraders-d668eac4a63a9aa98c3efff395faa23cfcea1c1b.tar.bz2
spacetraders-d668eac4a63a9aa98c3efff395faa23cfcea1c1b.zip
[node] begin the great typescript rewrite
Diffstat (limited to 'nodejs/database/agents.ts')
-rw-r--r--nodejs/database/agents.ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/nodejs/database/agents.ts b/nodejs/database/agents.ts
new file mode 100644
index 0000000..41b956a
--- /dev/null
+++ b/nodejs/database/agents.ts
@@ -0,0 +1,20 @@
+import { Agent } from '../model/agent.ts';
+import db from './db.js';
+
+const addAgentStatement = db.prepare(`INSERT INTO agents(data) VALUES (json(?));`);
+const getAgentStatement = db.prepare(`SELECT data FROM agents;`);
+const setAgentStatement = db.prepare(`UPDATE agents SET data = json(?);`);
+
+export function addAgent(agent: Agent) {
+ addAgentStatement.run(JSON.stringify(agent));
+}
+
+export function getAgent(): Agent|null {
+ const data = getAgentStatement.get() as {data: string}|undefined;
+ if (!data) return null;
+ return JSON.parse(data.data);
+}
+
+export function setAgent(agent: Agent) {
+ setAgentStatement.run(JSON.stringify(agent));
+}