Commit 1ed2ef7c authored by Phạm Quang Bảo's avatar Phạm Quang Bảo

fix: ts and node

parent 2b766521
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"author": "PhamQuangBao", "author": "PhamQuangBao",
"type": "commonjs", "type": "module",
"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",
...@@ -14,19 +14,58 @@ ...@@ -14,19 +14,58 @@
"start": "node ./dist/index.js" "start": "node ./dist/index.js"
}, },
"imports": { "imports": {
"#models/*": "./src/models/*", "#models/*": {
"#controllers/*": "./src/controllers/*", "types": "./src/models/*.ts",
"#services/*": "./src/services/*", "default": "./dist/models/*.js"
"#providers/*": "./src/providers/*", },
"#docs/*": "./src/docs/*", "#controllers/*": {
"#utils/*": "./src/utils/*", "types": "./src/controllers/*.ts",
"#config/*": "./src/config/*", "default": "./dist/controllers/*.js"
"#middlewares/*": "./src/middlewares/*", },
"#routes/*": "./src/routes/*", "#services/*": {
"#scripts/*": "./src/scripts/*", "types": "./src/services/*.ts",
"#types/*": "./src/types/*", "default": "./dist/services/*.js"
"#interfaces/*": "./src/interfaces/*", },
"#templates/*": "./src/templates/*" "#providers/*": {
"types": "./src/providers/*.ts",
"default": "./dist/providers/*.js"
},
"#docs/*": {
"types": "./src/docs/*.ts",
"default": "./dist/docs/*.js"
},
"#utils/*": {
"types": "./src/utils/*.ts",
"default": "./dist/utils/*.js"
},
"#config/*": {
"types": "./src/config/*.ts",
"default": "./dist/config/*.js"
},
"#middlewares/*": {
"types": "./src/middlewares/*.ts",
"default": "./dist/middlewares/*.js"
},
"#routes/*": {
"types": "./src/routes/*.ts",
"default": "./dist/routes/*.js"
},
"#scripts/*": {
"types": "./src/scripts/*.ts",
"default": "./dist/scripts/*.js"
},
"#types/*": {
"types": "./src/types/*.ts",
"default": "./dist/types/*.js"
},
"#interfaces/*": {
"types": "./src/interfaces/*.ts",
"default": "./dist/interfaces/*.js"
},
"#templates/*": {
"types": "./src/templates/*.ts",
"default": "./dist/templates/*.js"
}
}, },
"dependencies": { "dependencies": {
"@fast-csv/format": "^5.0.7", "@fast-csv/format": "^5.0.7",
......
...@@ -3,8 +3,8 @@ import { resolve } from 'path'; ...@@ -3,8 +3,8 @@ 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 dotenv from 'dotenv';
import swaggerFile from '#docs/swagger/swagger-output.json'; import swaggerFile from '#docs/swagger/swagger-output.json' with { type: 'json' };
import response from '#middlewares/response'; import response from '#middlewares/response.js';
import emailCronJob from '#services/schedulerService.js'; import emailCronJob from '#services/schedulerService.js';
dotenv.config(); dotenv.config();
...@@ -13,11 +13,12 @@ const app = express() ...@@ -13,11 +13,12 @@ const app = express()
const port = 3000 const port = 3000
app.use(express.json()); app.use(express.json());
app.use(response as express.RequestHandler); app.use(response as express.RequestHandler);
_autoroutes(app, { const mountRoutes = (_autoroutes as any).default || _autoroutes;
dir: resolve(__dirname, './controllers'),
mountRoutes(app, {
dir: resolve(import.meta.dirname, './controllers'),
log: true log: true
}); });
......
import { ErrorParams, OkParams, Req, Res, ResponseDTO, ViolationDTO } from "#interfaces/IApi"; import { ErrorParams, OkParams, Req, Res, ResponseDTO, ViolationDTO } from "#interfaces/IApi.js";
import { NextFunction } from "express"; import { NextFunction } from "express";
export default function (_req: Req, res: Res, next: NextFunction) { export default function (_req: Req, res: Res, next: NextFunction) {
......
import { config as loadEnv } from 'dotenv'; import { config as loadEnv } from 'dotenv';
import SequelizeAuto from 'sequelize-auto'; import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const SequelizeAuto = require('sequelize-auto');
loadEnv({ override: true }); loadEnv({ override: true });
...@@ -42,10 +45,10 @@ const auto = new SequelizeAuto( ...@@ -42,10 +45,10 @@ const auto = new SequelizeAuto(
console.log('🔄 Đang tiến hành quét Database và sinh Model...'); console.log('🔄 Đang tiến hành quét Database và sinh Model...');
auto.run() auto.run()
.then((data) => { .then((data: any) => {
const tableCount = Object.keys(data.tables).length; const tableCount = Object.keys(data.tables).length;
console.log(`✅ Thành công! Đã sinh ra cấu trúc cho ${tableCount} bảng.`); console.log(`✅ Thành công! Đã sinh ra cấu trúc cho ${tableCount} bảng.`);
}) })
.catch((err) => { .catch((err: any) => {
console.error('❌ Có lỗi xảy ra trong quá trình gen model:', err); console.error('❌ Có lỗi xảy ra trong quá trình gen model:', err);
}); });
\ No newline at end of file
{ {
"compilerOptions": { "compilerOptions": {
"module": "NodeNext", "module": "ESNext",
"target": "ES2022", "target": "ES2022",
"lib": [ "lib": [
"ES2022" "ES2022"
], ],
"moduleResolution": "NodeNext", "moduleResolution": "Bundler",
"esModuleInterop": true, "esModuleInterop": true,
"allowSyntheticDefaultImports": true, "allowSyntheticDefaultImports": true,
"resolveJsonModule": true, "resolveJsonModule": true,
......
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