Commit 7fa65f43 authored by Phạm Quang Bảo's avatar Phạm Quang Bảo

fix: deploy with tsx compiler

parent 1810af78
...@@ -7,11 +7,10 @@ ...@@ -7,11 +7,10 @@
"main": "./src/index.ts", "main": "./src/index.ts",
"scripts": { "scripts": {
"dev": "tsx ./src/scripts/database-gen.ts && tsx ./src/scripts/swagger-gen.ts && tsx watch ./src/index.ts", "dev": "tsx ./src/scripts/database-gen.ts && tsx ./src/scripts/swagger-gen.ts && tsx watch ./src/index.ts",
"test": "echo \"Error: no test specified\" && exit 1",
"gen:db": "tsx src/scripts/database-gen.ts", "gen:db": "tsx src/scripts/database-gen.ts",
"gen:swagger": "tsx src/scripts/swagger-gen.ts", "gen:swagger": "tsx src/scripts/swagger-gen.ts",
"build": "tsx ./src/scripts/database-gen.ts && tsc && tsx ./src/scripts/swagger-gen.ts && cpx \"./src/docs/swagger/swagger-output.json\" ./dist/docs/swagger", "build": "tsx ./src/scripts/database-gen.ts && tsc && tsx ./src/scripts/swagger-gen.ts && cpx \"./src/docs/swagger/swagger-output.json\" ./dist/docs/swagger",
"start": "tsx ./src/index.ts" "start": "tsx ./dist/index.js"
}, },
"imports": { "imports": {
"#models/*": { "#models/*": {
...@@ -81,6 +80,7 @@ ...@@ -81,6 +80,7 @@
"node-cron": "^4.2.1", "node-cron": "^4.2.1",
"nodemailer": "^8.0.7", "nodemailer": "^8.0.7",
"pg": "^8.20.0", "pg": "^8.20.0",
"tsx": "^4.21.0",
"pg-hstore": "^2.3.4", "pg-hstore": "^2.3.4",
"sequelize": "^6.37.8", "sequelize": "^6.37.8",
"sequelize-auto": "^0.8.8", "sequelize-auto": "^0.8.8",
...@@ -99,7 +99,6 @@ ...@@ -99,7 +99,6 @@
"cpx": "^1.5.0", "cpx": "^1.5.0",
"esbuild": "^0.28.0", "esbuild": "^0.28.0",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
"tsx": "^4.21.0",
"typescript": "^6.0.3" "typescript": "^6.0.3"
} }
} }
\ No newline at end of file
...@@ -62,6 +62,9 @@ importers: ...@@ -62,6 +62,9 @@ importers:
swagger-ui-express: swagger-ui-express:
specifier: ^5.0.1 specifier: ^5.0.1
version: 5.0.1(express@5.2.1) version: 5.0.1(express@5.2.1)
tsx:
specifier: ^4.21.0
version: 4.21.0
devDependencies: devDependencies:
'@types/bcrypt': '@types/bcrypt':
specifier: ^6.0.0 specifier: ^6.0.0
...@@ -96,9 +99,6 @@ importers: ...@@ -96,9 +99,6 @@ importers:
ts-node: ts-node:
specifier: ^10.9.2 specifier: ^10.9.2
version: 10.9.2(@types/node@25.7.0)(typescript@6.0.3) version: 10.9.2(@types/node@25.7.0)(typescript@6.0.3)
tsx:
specifier: ^4.21.0
version: 4.21.0
typescript: typescript:
specifier: ^6.0.3 specifier: ^6.0.3
version: 6.0.3 version: 6.0.3
......
...@@ -2,14 +2,9 @@ import express from 'express'; ...@@ -2,14 +2,9 @@ import express from 'express';
import { resolve } from 'path'; import { resolve } from 'path';
import _autoroutes from 'express-automatic-routes'; import _autoroutes from 'express-automatic-routes';
import swaggerUi from 'swagger-ui-express'; import swaggerUi from 'swagger-ui-express';
import dotenv from 'dotenv';
import response from '#middlewares/response'; import response from '#middlewares/response';
import emailCronJob from '#services/schedulerService'; import emailCronJob from '#services/schedulerService';
import { createRequire } from 'module'; import swaggerFile from '#docs/swagger/swagger-output.json';
dotenv.config();
const require = createRequire(import.meta.url);
const app = express() const app = express()
const port = 3000 const port = 3000
...@@ -18,7 +13,6 @@ app.use(express.json()); ...@@ -18,7 +13,6 @@ app.use(express.json());
app.use(response as express.RequestHandler); app.use(response as express.RequestHandler);
const mountRoutes = (_autoroutes as any).default || _autoroutes; const mountRoutes = (_autoroutes as any).default || _autoroutes;
const swaggerFile = require('#docs/swagger/swagger-output.json');
mountRoutes(app, { mountRoutes(app, {
dir: resolve(import.meta.dirname, './controllers'), dir: resolve(import.meta.dirname, './controllers'),
......
...@@ -2,10 +2,10 @@ import jwt from 'jsonwebtoken'; ...@@ -2,10 +2,10 @@ import jwt from 'jsonwebtoken';
import { NextFunction } from 'express'; import { NextFunction } from 'express';
import { JWTPayload, Req, Res } from '#interfaces/IApi'; import { JWTPayload, Req, Res } from '#interfaces/IApi';
//demo
const JWT_SECRET = process.env.JWT_SECRET || '';
export const authMiddleware = (req: Req, res: Res, next: NextFunction) => { export const authMiddleware = (req: Req, res: Res, next: NextFunction) => {
const JWT_SECRET = process.env.JWT_SECRET || '';
const authHeader = req.headers.authorization; const authHeader = req.headers.authorization;
if (!authHeader || !authHeader.startsWith('Bearer ')) { if (!authHeader || !authHeader.startsWith('Bearer ')) {
......
import { Sequelize } from 'sequelize'; import { Sequelize } from 'sequelize';
import { config as loadEnv } from 'dotenv'; import { config as loadEnv } from 'dotenv';
import { initModels } from '#models/init-models'; import { initModels } from './init-models';
loadEnv({ override: true }); loadEnv({ override: true });
......
import cron from 'node-cron'; import cron from 'node-cron';
import { MailService } from '#services/mailService'; import { MailService } from './mailService';
import { EnrollProvider } from '#providers/EnrollProvider'; import { EnrollProvider } from '#providers/EnrollProvider';
const mailService = new MailService(); const mailService = new MailService();
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
"sourceMap": true, "sourceMap": true,
"outDir": "./dist", "outDir": "./dist",
"rootDir": "./src", "rootDir": "./src",
"incremental": false, "incremental": true,
"noEmit": false, "noEmit": false,
"types": [ "types": [
"node" "node"
......
This source diff could not be displayed because it is too large. You can view the blob instead.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment