Skip to content

Commit 3ccc206

Browse files
committed
feat: swc builder + hot reload
1 parent 15495f2 commit 3ccc206

File tree

6 files changed

+544
-16
lines changed

6 files changed

+544
-16
lines changed
File renamed without changes.

.swcrc

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"$schema": "https://json.schemastore.org/swcrc",
3+
"sourceMaps": true,
4+
"jsc": {
5+
"parser": {
6+
"syntax": "typescript",
7+
"decorators": true,
8+
"dynamicImport": true
9+
},
10+
"baseUrl": "./"
11+
},
12+
"minify": false
13+
}

nest-cli.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
"collection": "@nestjs/schematics",
44
"sourceRoot": "src",
55
"compilerOptions": {
6-
"deleteOutDir": true
6+
"deleteOutDir": true,
7+
"builder": "swc",
8+
"typeCheck": true,
9+
"watchAssets": true
710
}
811
}

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
"class-validator": "^0.14.0",
3232
"fdir": "^6.1.1",
3333
"path": "^0.12.7",
34-
"pkg": "^5.8.1",
3534
"reflect-metadata": "^0.1.13",
3635
"rxjs": "^7.8.1",
3736
"yaml": "^2.3.4"
@@ -40,6 +39,8 @@
4039
"@nestjs/cli": "^10.0.0",
4140
"@nestjs/schematics": "^10.0.0",
4241
"@nestjs/testing": "^10.0.0",
42+
"@swc/cli": "^0.1.63",
43+
"@swc/core": "^1.3.100",
4344
"@types/express": "^4.17.17",
4445
"@types/jest": "^29.5.2",
4546
"@types/node": "^20.3.1",
@@ -51,6 +52,7 @@
5152
"eslint-plugin-prettier": "^5.0.0",
5253
"jest": "^29.5.0",
5354
"prettier": "^3.0.0",
55+
"pkg": "^5.8.1",
5456
"source-map-support": "^0.5.21",
5557
"supertest": "^6.3.3",
5658
"ts-jest": "^29.1.0",

src/main.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,16 @@ import { AppService } from './app.service';
44
import { LogLevel } from '@nestjs/common'
55
import ConfigInstance from './config'
66

7-
8-
9-
async function bootstrap() {
7+
declare const module: any
8+
;(async (): Promise<void> => {
109
const app = await NestFactory.createApplicationContext(AppModule,{logger: setLogLevel() as LogLevel[]});
1110
const appService = app.get(AppService);
1211
appService.runDaemon()
13-
}
12+
if (module.hot) {
13+
module.hot.accept()
14+
module.hot.dispose((): Promise<void> => app.close())
15+
}
16+
})()
1417
function setLogLevel():Array<string>{
1518
let loggerOptions=['error', 'warn','fatal']
1619
let configInstance=ConfigInstance()
@@ -33,4 +36,3 @@ function setLogLevel():Array<string>{
3336
}
3437
return loggerOptions
3538
}
36-
bootstrap();

0 commit comments

Comments
 (0)