lsp-yggdrasil/src/index.js

63 lines
1.9 KiB
JavaScript

import { fastify } from 'fastify'
import { mongoose } from 'mongoose'
import { registerModels } from './models/index.js';
import * as Hooks from './hooks.js'
import * as AuthenticateRoutings from './routes/authenticate.js'
export const server = fastify({
logger: {
prettyPrint: true
}
})
//export const logger = server.log
;(async () => {
const { config } = await import('./config.js')
server.decorate('conf', config)
const mongooseClient = await mongoose.connect(config.database.url)
const models = registerModels(mongooseClient)
server.decorate('mongoose', mongooseClient)
server.decorate('models', models)
config.custom.preHooks(server)
server.addHook('preHandler', Hooks.headerValidation)
config.custom.preRouting(server)
server.route(AuthenticateRoutings.authenticate)
server.route(AuthenticateRoutings.refresh)
server.route(AuthenticateRoutings.validate)
server.route(AuthenticateRoutings.invalidate)
server.route(AuthenticateRoutings.signout)
config.custom.postRouting(server)
/*
// Create a test player
await new models.Player({
username: 'test',
password: '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92',
email: 'i@lama.icu',
uuid: '098f6bcd-4621-3373-8ade-4e832627b4f6',
texture: {
skin: 'assets.lama.icu/textures/skin/steve.png',
cape: 'assets.lama.icu/textures/cape/default.png'
},
registerDate: Date.now(),
permissions: [{ node: 'login', allowed: true, duration: 0, eternal: true, startDate: Date.now(), highPriority: false }]
}).save()
*/
if(!process.env["UNIT_TEST"]) {
await launch(config)
}
})()
const launch = async (config) => {
await server.listen(config.server.port, config.server.url)
server.log.info("老色批世界树 > 基于 fastify 的高性能 HTTP 服务器已启动")
}