user can join

This commit is contained in:
metacryst
2026-01-13 11:22:37 -06:00
parent 604ba9f01c
commit 6efc5b6f97
8 changed files with 64 additions and 82 deletions

View File

@@ -2,6 +2,7 @@ import fs from 'fs/promises';
import chalk from 'chalk';
import path from 'path';
import {nodeModels, edgeModels} from './model/import.js'
import Edge from "./model/edge.js"
export default class Database {
@@ -20,18 +21,27 @@ export default class Database {
let key = eValues[i].constructor.name
this[key] = eValues[i]
}
this.edge = new Edge()
this.loadData()
}
addNode(id, node) {
getNextIndex(model) {
return model.indices[1] - model.indices[0] + 1
}
addNode(prefix, node) {
try {
let type = id.split("-")[0]
let model = nodeModels[type[0] + type.slice(1).toLowerCase()]
let model = nodeModels[prefix]
if(model) {
let toAdd = {
id: this.getNextIndex(model),
...node,
}
if(!toAdd.created) toAdd.created = global.currentTime()
let schema = model.schema
let result = schema.safeParse(node)
let result = schema.safeParse(toAdd)
if(result.success) {
this.nodes[model.indices[1]] = node
this.nodes[model.indices[1]] = toAdd
model.indices[1]++;
} else {
console.error(result.error)
@@ -45,15 +55,21 @@ export default class Database {
}
}
addEdge(id, edge) {
addEdge(prefix, edge) {
try {
let type = id.split("-")[0]
let type = prefix
let model = edgeModels[type]
if(model) {
let toAdd = {
id: model.indices[1] - model.indices[0] + 1,
...edge
}
if(!toAdd.created) toAdd.created = global.currentTime()
console.log(toAdd)
let schema = model.schema
let result = schema.safeParse(edge)
let result = schema.safeParse(toAdd)
if(result.success) {
this.edges[model.indices[1]] = edge
this.edges[model.indices[1]] = toAdd
model.indices[1]++;
} else {
console.error(result.error)
@@ -81,7 +97,7 @@ export default class Database {
for(let i=0; i<entries.length; i++) {
let entry = entries[i]
let id = entry[0]; let node = entry[1];
this.addNode(id, node)
this.addNode(id.split("-")[0], node)
}
let edges = dbJson["edges"];
@@ -89,7 +105,7 @@ export default class Database {
for(let i=0; i<edgeEntries.length; i++) {
let entry = edgeEntries[i]
let id = entry[0]; let node = entry[1];
this.addEdge(id, node)
this.addEdge(id.split("-")[0], node)
}
setInterval(() => {