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 服务器已启动") }