sourceappnewkey.js

import { argv } from "node:process";
import { randomBytes } from "crypto";

import Database from "better-sqlite3";
const db = new Database("./db/site.db");
db.pragma("journal_mode = DELETE");

const newSignupKey = (permissions = "normie") => ({
		key: randomBytes(8)
			.toString("hex")
			.match(/.{1,4}/g)
			.join("-"),
		permissions: permissions,
		created: new Date().toISOString(),
		spent: 0
	});

const insertSignupKey = db.transaction(key => {
	console.log(`Created signup key ${key.key}`);
	db.prepare(
		`Insert Into signup_keys ("key", permissions, created, spent)
		Values (@key, @permissions, @created, @spent)`
	).run(key);
});

insertSignupKey(newSignupKey(argv[2]));