init(migration): setup boilerplate code

This commit is contained in:
Walid 2023-07-31 11:05:20 +01:00
commit e6b2bfb418
Signed by: Walidoux
GPG Key ID: CCF21881FE8BEBAF
9 changed files with 173 additions and 0 deletions

5
nest-cli.json Normal file
View File

@ -0,0 +1,5 @@
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src"
}

68
package.json Normal file
View File

@ -0,0 +1,68 @@
{
"name": "@habbilfr/server",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"scripts": {
"prebuild": "rm -rf dist",
"build": "nest build",
"start": "nest start",
"start:dev": "nest start --watch",
"start:debug": "nest start --debug --watch",
"start:prod": "node dist/main",
"test": "jest",
"test:watch": "jest --watch",
"test:cov": "jest --coverage",
"test:e2e": "jest --config ./test/jest-e2e.json",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand"
},
"dependencies": {
"@nestjs/common": "^10.1.0",
"@nestjs/core": "^10.1.0",
"@nestjs/platform-socket.io": "10.1.0",
"@nestjs/platform-express": "^9.0.0",
"@nestjs/websockets": "10.1.0",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
"rxjs": "^7.2.0"
},
"devDependencies": {
"@nestjs/cli": "^10.1.10",
"@nestjs/schematics": "^10.0.1",
"@nestjs/testing": "^10.1.0",
"@types/node": "^20.4.2",
"@types/supertest": "^2.0.12",
"@types/jest": "^29.5.2",
"@types/express": "^4.17.13",
"jest": "^29.5.0",
"supertest": "^6.3.3",
"source-map-support": "^0.5.20",
"ts-jest": "^29.1.1",
"ts-loader": "^9.4.4",
"ts-node": "^10.9.1",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.1.6"
},
"peerDependencies": {
"socket.io": "4.7.1"
},
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"collectCoverageFrom": [
"**/*.(t|j)s"
],
"coverageDirectory": "../coverage",
"testEnvironment": "node"
},
"files": [
"dist"
]
}

10
src/app.module.ts Normal file
View File

@ -0,0 +1,10 @@
import { Module } from '@nestjs/common'
import { GatewayModule } from './gateway/gateway.module'
@Module({
imports: [GatewayModule],
controllers: [],
providers: []
})
export class AppModule {}

View File

@ -0,0 +1,8 @@
import { Module } from '@nestjs/common'
import { MyGateway } from './gateway'
@Module({
providers: [MyGateway]
})
export class GatewayModule {}

26
src/gateway/gateway.ts Normal file
View File

@ -0,0 +1,26 @@
import type { OnModuleInit } from '@nestjs/common'
import { ConnectedSocket, MessageBody, SubscribeMessage, WebSocketGateway, WebSocketServer } from '@nestjs/websockets'
import type { Server, Socket } from 'socket.io'
@WebSocketGateway({ cors: { origin: '*' } })
export class MyGateway implements OnModuleInit {
@WebSocketServer()
server: Server
onModuleInit(): void {
this.server.on('connection', (socket) => {
console.log(socket.id)
console.log('Connected')
})
}
@SubscribeMessage('newMessage')
onNewMessage(@MessageBody() data: string, @ConnectedSocket() client: Socket): void {
console.log(data, client)
this.server.emit('onMessage', {
msg: 'New Message',
content: data,
client
})
}
}

10
src/main.ts Normal file
View File

@ -0,0 +1,10 @@
import { NestFactory } from '@nestjs/core'
import { AppModule } from './app.module'
const bootstrap = async (): Promise<void> => {
const app = await NestFactory.create(AppModule)
await app.listen(3000, () => console.log('Running on Port 3000'))
}
bootstrap()

23
test/app.e2e-spec.ts Normal file
View File

@ -0,0 +1,23 @@
import type { TestingModule } from '@nestjs/testing'
import { Test } from '@nestjs/testing'
import type { INestApplication } from '@nestjs/common'
import * as request from 'supertest'
import { AppModule } from '../src/app.module'
describe('AppController (e2e)', () => {
let app: INestApplication
beforeEach(async () => {
const moduleFixture: TestingModule = await Test.createTestingModule({
imports: [AppModule]
}).compile()
app = moduleFixture.createNestApplication()
await app.init()
})
it('/ (GET)', () => {
return request(app.getHttpServer()).get('/').expect(200).expect('Hello World!')
})
})

9
test/jest-e2e.json Normal file
View File

@ -0,0 +1,9 @@
{
"moduleFileExtensions": ["js", "json", "ts"],
"rootDir": ".",
"testEnvironment": "node",
"testRegex": ".e2e-spec.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
}
}

14
tsconfig.json Normal file
View File

@ -0,0 +1,14 @@
{
"compilerOptions": {
"module": "commonjs",
"declaration": true,
"removeComments": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"allowSyntheticDefaultImports": true,
"target": "es2017",
"sourceMap": true,
"outDir": "./dist",
"incremental": true
}
}