From c101562dcc0166ab779063b71de1656ea4523a6d Mon Sep 17 00:00:00 2001 From: Isaac Date: Tue, 6 Sep 2022 20:30:28 +0100 Subject: [PATCH] Integrate settings UI --- package.json | 15 ++++++++------- src/http.js | 38 +++++++++++++++++++++++++++++++------- 2 files changed, 39 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index df90d76..1f1fcd4 100644 --- a/package.json +++ b/package.json @@ -41,29 +41,30 @@ "@fastify/cors": "^8.1.0", "@fastify/jwt": "^5.0.1", "@fastify/oauth2": "^5.1.0", - "@prisma/client": "^4.1.1", + "@prisma/client": "^4.3.1", "boolean": "^3.2.0", "cryptr": "^6.0.3", - "discord.js": "^14.1.2", - "dotenv": "^16.0.1", - "fastify": "^4.3.0", + "discord.js": "^14.3.0", + "dotenv": "^16.0.2", + "express": "^4.18.1", + "fastify": "^4.5.3", "figlet": "^1.5.2", "fs-extra": "^10.1.0", - "keyv": "^4.3.3", + "keyv": "^4.5.0", "leeks.js": "^0.2.4", "leekslazylogger": "^4.1.7", "ms": "^2.1.3", "node-dir": "^0.1.17", "node-emoji": "^1.11.0", "object-diffy": "^1.0.4", - "prisma": "^4.1.1", + "prisma": "^4.3.1", "semver": "^7.3.7", "terminal-link": "^2.1.1", "yaml": "^1.10.2" }, "devDependencies": { "all-contributors-cli": "^6.20.0", - "eslint": "^8.21.0", + "eslint": "^8.23.0", "eslint-plugin-unused-imports": "^2.0.0", "nodemon": "^2.0.19" } diff --git a/src/http.js b/src/http.js index 8880f06..9466ba7 100644 --- a/src/http.js +++ b/src/http.js @@ -5,7 +5,11 @@ const { short } = require('leeks.js'); const { join } = require('path'); const { files } = require('node-dir'); -module.exports = client => { +process.env.PUBLIC_HOST = process.env.HTTP_EXTERNAL; + +async function build(client) { + // await fastify.register(require('@fastify/express')); + // cors plugin fastify.register(require('@fastify/cors'), { credentials: true, @@ -125,7 +129,6 @@ module.exports = client => { // route loading const dir = join(__dirname, '/routes'); - files(dir, { exclude: /^\./, match: /.js$/, @@ -138,7 +141,6 @@ module.exports = client => { .replace(/\[(\w+)\]/gi, ':$1') // convert [] to : .replace('/index', '') || '/'; // remove index const route = require(file); - Object.keys(route).forEach(method => fastify.route({ config: { client }, method: method.toUpperCase(), @@ -147,9 +149,31 @@ module.exports = client => { })); // register route }); - // start server - fastify.listen({ port: process.env.HTTP_BIND }, (err, addr) => { - if (err) client.log.error.http(err); - else client.log.success.http(`Listening at ${addr}`); + // const { handler: app } = await import('@discord-tickets/settings/build/handler.js'); + // fastify.use('/*', app); + // fastify.use(app); + + return fastify; +} + +module.exports = async client => { + build(client) + .then(fastify => { + // start server + fastify.listen({ port: process.env.HTTP_BIND }, (err, addr) => { + if (err) client.log.error.http(err); + else client.log.success.http(`Listening at ${addr}`); + }); + }) + .catch(client.log.error.http); + + const express = require('express')(); + const { handler } = await import('@discord-tickets/settings/build/handler.js'); + express.get('/api/client', (req, res) => { + res.end('ok'); + }); + express.use(handler); + express.listen(3000, () => { + console.log('listening on port 3000'); }); }; \ No newline at end of file