initial commit

This commit is contained in:
jackycheng
2025-08-25 17:11:15 +08:00
commit 436b6f66a6
31 changed files with 8295 additions and 0 deletions

View File

@@ -0,0 +1,12 @@
import { Express } from "express";
export const createApis = (app: Express) => {
app.get("/api/test", async (req, res) => {
res.status(200).json({
message: "success",
data: null,
});
});
/** add apis here */
};

View File

@@ -0,0 +1,20 @@
import path from "path";
import { Sequelize } from "sequelize";
export const sequelize = new Sequelize({
dialect: "sqlite",
storage: path.resolve(__dirname, process.env.DB_PATH || "./data.sqlite"),
});
async function initializeDatabase() {
try {
await sequelize.authenticate();
/**
* add database table here
*/
} catch (error) {
console.error("connect db error:", error);
}
}
initializeDatabase();

View File

@@ -0,0 +1,55 @@
import dotenv from "dotenv";
import express from "express";
import cors from "cors";
import compression from "compression";
import nocache from "nocache";
import path from "path";
import expressOasGenerator, {
OpenAPIV3,
SPEC_OUTPUT_FILE_BEHAVIOR,
} from "express-oas-generator";
dotenv.config({ path: path.resolve(__dirname, "../../../.env") });
import "./database";
import { createApis } from "./api";
const port = process.env.PORT || 3005;
const app = express();
app.set("etag", false);
app.use(nocache());
app.use(cors());
app.use(express.json({ limit: "100mb" }));
app.use(compression());
app.use(express.static(path.resolve(__dirname, "client")));
createApis(app);
expressOasGenerator.handleResponses(app, {
specOutputFileBehavior: SPEC_OUTPUT_FILE_BEHAVIOR.RECREATE,
swaggerDocumentOptions: {},
predefinedSpec: (spec: OpenAPIV3.Document) => {
if (spec.info) {
spec.info.description = "Egret App Server";
}
if (spec.paths) {
delete spec.paths["/v3/api-docs"];
}
return spec;
},
});
expressOasGenerator.handleRequests();
app.get("/v3/api-docs", async (req, res) => {
expressOasGenerator.getSpecV3((err, doc) => {
res.status(200).json(doc);
});
});
const host = "0.0.0.0";
app.listen(Number(port), host, () => {
console.log(`[server]: Server is running at http://${host}:${port}`);
});