/* eslint-disable no-magic-numbers */ // @ts-nocheck 'use strict'; const express = require ('express'); const cookie_parser = require ('cookie-parser'); const auth = require ('./index'); const knex = require ('knex'); const path = require ('path'); const consts = require ('@scode/consts'); const crypto = require ('@scode/crypto-helper'); const fs = require ('fs-extra'); /** * start the server */ async function start_server () { const db_path = path.join (__dirname, 'db.sqlite'); if (await fs.exists (db_path)) await fs.unlink (db_path); const db = knex ({ client: 'sqlite', connection: { filename: db_path }, useNullAsDefault: true }); await db.schema.createTable ('users', (table) => { table.increments ('id'); table.string ('name'); table.string ('email'); table.string ('password'); table.string ('salt'); table.boolean ('deleted') .default (false); }); const app = express (); const authentication = auth (db); const salt = crypto.create_salt (); const hash = crypto.hash_sha512 ('foo', salt); await authentication.create_user ('test', 'asd@example.com', hash, salt); app.use (cookie_parser ()); app.use (authentication.handler); app.get ('/', (req, res) => { res.status (consts.http_consts.status_ok) .end ('foo'); }); app.listen (3000); return app; } module.exports = { start_server };