user can join
This commit is contained in:
@@ -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(() => {
|
||||
|
||||
Reference in New Issue
Block a user