feat: docker init
This commit is contained in:
22
docker-compose.yml
Normal file
22
docker-compose.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
prod:
|
||||
container_name: mx-space-server
|
||||
image: mx-space-server:1.0.0
|
||||
build:
|
||||
context: .
|
||||
target: production
|
||||
dockerfile: ./Dockerfile
|
||||
command: npm run start:prod
|
||||
ports:
|
||||
- 2333:2333
|
||||
networks:
|
||||
- nesjs-network
|
||||
volumes:
|
||||
- .:/usr/src/app
|
||||
- /usr/src/app/node_modules
|
||||
restart: unless-stopped
|
||||
|
||||
networks:
|
||||
nesjs-network:
|
||||
36
dockerfile
Normal file
36
dockerfile
Normal file
@@ -0,0 +1,36 @@
|
||||
FROM node:16 as development
|
||||
|
||||
RUN npm i -g pnpm
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
COPY package.json ./
|
||||
COPY pnpm-lock.yaml ./
|
||||
|
||||
RUN pnpm install glob rimraf
|
||||
|
||||
RUN pnpm install --only=development
|
||||
|
||||
COPY . .
|
||||
|
||||
RUN pnpm run build
|
||||
|
||||
FROM node:16 as production
|
||||
|
||||
RUN npm i -g pnpm
|
||||
|
||||
ARG NODE_ENV=production
|
||||
ENV NODE_ENV=${NODE_ENV}
|
||||
|
||||
WORKDIR /usr/src/app
|
||||
|
||||
COPY package.json ./
|
||||
COPY pnpm-lock.yaml ./
|
||||
|
||||
RUN pnpm install --only=production
|
||||
RUN pnpm install pm2 --D
|
||||
COPY . .
|
||||
|
||||
COPY --from=development /usr/src/app/dist ./dist
|
||||
|
||||
CMD ["pm2-prod", "ecosystem.config.js"]
|
||||
@@ -43,7 +43,10 @@
|
||||
"@nestjs/swagger": "^5.0.8",
|
||||
"@typegoose/auto-increment": "^0.6.0",
|
||||
"@typegoose/typegoose": "8.0.0",
|
||||
"bcrypt": "^5.0.1",
|
||||
"chalk": "^4.1.1",
|
||||
"class-transformer": "^0.4.0",
|
||||
"class-validator": "^0.13.1",
|
||||
"fastify-swagger": "^4.8.3",
|
||||
"husky": "^7.0.1",
|
||||
"lint-staged": "^11.1.0",
|
||||
|
||||
245
pnpm-lock.yaml
generated
245
pnpm-lock.yaml
generated
@@ -16,7 +16,10 @@ specifiers:
|
||||
'@types/supertest': ^2.0.11
|
||||
'@typescript-eslint/eslint-plugin': 4.28.4
|
||||
'@typescript-eslint/parser': 4.28.4
|
||||
bcrypt: ^5.0.1
|
||||
chalk: ^4.1.1
|
||||
class-transformer: ^0.4.0
|
||||
class-validator: ^0.13.1
|
||||
cross-env: ^7.0.3
|
||||
dotenv: ^10.0.0
|
||||
eslint: ^7.31.0
|
||||
@@ -44,13 +47,16 @@ specifiers:
|
||||
typescript: ^4.3.5
|
||||
|
||||
dependencies:
|
||||
'@nestjs/common': 8.0.4_033f8a4c30db515df75e2229027182dc
|
||||
'@nestjs/common': 8.0.4_e911b02ebc86a0e92191a7b133b2fcd0
|
||||
'@nestjs/core': 8.0.4_e4988ec8350f50541cb1b028c87076a8
|
||||
'@nestjs/platform-fastify': 8.0.4_dbb23fa745e40b87eda38a58a66b6bd5
|
||||
'@nestjs/swagger': 5.0.8_8a33bebe899fbeffdca6cb260e5489d3
|
||||
'@nestjs/swagger': 5.0.8_00ec01bd1a1595869e3c10a21b92c5e7
|
||||
'@typegoose/auto-increment': 0.6.0_mongoose@5.13.3
|
||||
'@typegoose/typegoose': 8.0.0_mongoose@5.13.3
|
||||
bcrypt: 5.0.1
|
||||
chalk: 4.1.1
|
||||
class-transformer: 0.4.0
|
||||
class-validator: 0.13.1
|
||||
fastify-swagger: 4.8.3
|
||||
husky: 7.0.1
|
||||
lint-staged: 11.1.0
|
||||
@@ -745,6 +751,23 @@ packages:
|
||||
chalk: 4.1.1
|
||||
dev: true
|
||||
|
||||
/@mapbox/node-pre-gyp/1.0.5:
|
||||
resolution: {integrity: sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
detect-libc: 1.0.3
|
||||
https-proxy-agent: 5.0.0
|
||||
make-dir: 3.1.0
|
||||
node-fetch: 2.6.1
|
||||
nopt: 5.0.0
|
||||
npmlog: 4.1.2
|
||||
rimraf: 3.0.2
|
||||
semver: 7.3.5
|
||||
tar: 6.1.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/@nestjs/cli/8.0.2:
|
||||
resolution: {integrity: sha512-q46mQvqhRkmnG6fXTzL9Wk7CtDxRaa2rE1IrDX3CgXaeOgjBZsA3oJKkIqelQHfKWvPGuU6yV6gDF5pOXNXixw==}
|
||||
engines: {node: '>= 10.13.0', npm: '>= 6.11.0'}
|
||||
@@ -776,7 +799,7 @@ packages:
|
||||
- webpack-cli
|
||||
dev: true
|
||||
|
||||
/@nestjs/common/8.0.4_033f8a4c30db515df75e2229027182dc:
|
||||
/@nestjs/common/8.0.4_e911b02ebc86a0e92191a7b133b2fcd0:
|
||||
resolution: {integrity: sha512-qgQTHH+0y64btdnqSuQSo8Ou7Okb6+8l2StjDOlzaPK36Ln1uBLoa6jQnwqxlAHUHqEocmraL1V5+wnSYz2CRA==}
|
||||
peerDependencies:
|
||||
cache-manager: '*'
|
||||
@@ -793,6 +816,8 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
axios: 0.21.1
|
||||
class-transformer: 0.4.0
|
||||
class-validator: 0.13.1
|
||||
iterare: 1.2.1
|
||||
reflect-metadata: 0.1.13
|
||||
rxjs: 7.2.0
|
||||
@@ -820,7 +845,7 @@ packages:
|
||||
'@nestjs/websockets':
|
||||
optional: true
|
||||
dependencies:
|
||||
'@nestjs/common': 8.0.4_033f8a4c30db515df75e2229027182dc
|
||||
'@nestjs/common': 8.0.4_e911b02ebc86a0e92191a7b133b2fcd0
|
||||
'@nuxtjs/opencollective': 0.3.2
|
||||
fast-safe-stringify: 2.0.8
|
||||
iterare: 1.2.1
|
||||
@@ -832,7 +857,7 @@ packages:
|
||||
uuid: 8.3.2
|
||||
dev: false
|
||||
|
||||
/@nestjs/mapped-types/1.0.0_4d72478bf80ccc07ffec9357846306a9:
|
||||
/@nestjs/mapped-types/1.0.0_173e729e4fdbe758634500b14e88b3f2:
|
||||
resolution: {integrity: sha512-26AW5jHadLXtvHs+M+Agd9KZ92dDlBrmD0rORlBlvn2KvsWs4JRaKl2mUsrW7YsdZeAu3Hc4ukqyYyDdyCmMWQ==}
|
||||
peerDependencies:
|
||||
'@nestjs/common': ^7.0.8 || ^8.0.0
|
||||
@@ -840,7 +865,9 @@ packages:
|
||||
class-validator: ^0.11.1 || ^0.12.0 || ^0.13.0
|
||||
reflect-metadata: ^0.1.12
|
||||
dependencies:
|
||||
'@nestjs/common': 8.0.4_033f8a4c30db515df75e2229027182dc
|
||||
'@nestjs/common': 8.0.4_e911b02ebc86a0e92191a7b133b2fcd0
|
||||
class-transformer: 0.4.0
|
||||
class-validator: 0.13.1
|
||||
reflect-metadata: 0.1.13
|
||||
dev: false
|
||||
|
||||
@@ -850,7 +877,7 @@ packages:
|
||||
'@nestjs/common': ^8.0.0
|
||||
'@nestjs/core': ^8.0.0
|
||||
dependencies:
|
||||
'@nestjs/common': 8.0.4_033f8a4c30db515df75e2229027182dc
|
||||
'@nestjs/common': 8.0.4_e911b02ebc86a0e92191a7b133b2fcd0
|
||||
'@nestjs/core': 8.0.4_e4988ec8350f50541cb1b028c87076a8
|
||||
fastify: 3.19.1
|
||||
fastify-cors: 6.0.2
|
||||
@@ -876,7 +903,7 @@ packages:
|
||||
typescript: 4.3.5
|
||||
dev: true
|
||||
|
||||
/@nestjs/swagger/5.0.8_8a33bebe899fbeffdca6cb260e5489d3:
|
||||
/@nestjs/swagger/5.0.8_00ec01bd1a1595869e3c10a21b92c5e7:
|
||||
resolution: {integrity: sha512-L8cNT5nwJzj2gHhmF6j88NfbxZb8TEStDxSr3Ydqhjs4PDgk3szNYRA/MUg2p0JvoshvdRO7EgFtRYGDrRtXCw==}
|
||||
peerDependencies:
|
||||
'@nestjs/common': ^6.8.0 || ^7.0.0 || ^8.0.0
|
||||
@@ -890,9 +917,9 @@ packages:
|
||||
swagger-ui-express:
|
||||
optional: true
|
||||
dependencies:
|
||||
'@nestjs/common': 8.0.4_033f8a4c30db515df75e2229027182dc
|
||||
'@nestjs/common': 8.0.4_e911b02ebc86a0e92191a7b133b2fcd0
|
||||
'@nestjs/core': 8.0.4_e4988ec8350f50541cb1b028c87076a8
|
||||
'@nestjs/mapped-types': 1.0.0_4d72478bf80ccc07ffec9357846306a9
|
||||
'@nestjs/mapped-types': 1.0.0_173e729e4fdbe758634500b14e88b3f2
|
||||
fastify-swagger: 4.8.3
|
||||
lodash: 4.17.21
|
||||
path-to-regexp: 3.2.0
|
||||
@@ -916,7 +943,7 @@ packages:
|
||||
optional: true
|
||||
dependencies:
|
||||
optional: 0.1.4
|
||||
'@nestjs/common': 8.0.4_033f8a4c30db515df75e2229027182dc
|
||||
'@nestjs/common': 8.0.4_e911b02ebc86a0e92191a7b133b2fcd0
|
||||
'@nestjs/core': 8.0.4_e4988ec8350f50541cb1b028c87076a8
|
||||
tslib: 2.3.0
|
||||
dev: true
|
||||
@@ -1193,6 +1220,10 @@ packages:
|
||||
'@types/superagent': 4.1.12
|
||||
dev: true
|
||||
|
||||
/@types/validator/13.6.3:
|
||||
resolution: {integrity: sha512-fWG42pMJOL4jKsDDZZREnXLjc3UE0R8LOJfARWYg6U966rxDT7TYejYzLnUF5cvSObGg34nd0+H2wHHU5Omdfw==}
|
||||
dev: false
|
||||
|
||||
/@types/yargs-parser/20.2.1:
|
||||
resolution: {integrity: sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==}
|
||||
dev: true
|
||||
@@ -1432,6 +1463,10 @@ packages:
|
||||
resolution: {integrity: sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==}
|
||||
dev: true
|
||||
|
||||
/abbrev/1.1.1:
|
||||
resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==}
|
||||
dev: false
|
||||
|
||||
/abstract-logging/2.0.1:
|
||||
resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==}
|
||||
dev: false
|
||||
@@ -1475,7 +1510,6 @@ packages:
|
||||
debug: 4.3.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/aggregate-error/3.1.0:
|
||||
resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
|
||||
@@ -1556,6 +1590,11 @@ packages:
|
||||
dependencies:
|
||||
type-fest: 0.21.3
|
||||
|
||||
/ansi-regex/2.1.1:
|
||||
resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/ansi-regex/3.0.0:
|
||||
resolution: {integrity: sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=}
|
||||
engines: {node: '>=4'}
|
||||
@@ -1590,10 +1629,21 @@ packages:
|
||||
picomatch: 2.3.0
|
||||
dev: true
|
||||
|
||||
/aproba/1.2.0:
|
||||
resolution: {integrity: sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==}
|
||||
dev: false
|
||||
|
||||
/archy/1.0.0:
|
||||
resolution: {integrity: sha1-+cjBN1fMHde8N5rHeyxipcKGjEA=}
|
||||
dev: false
|
||||
|
||||
/are-we-there-yet/1.1.5:
|
||||
resolution: {integrity: sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==}
|
||||
dependencies:
|
||||
delegates: 1.0.0
|
||||
readable-stream: 2.3.7
|
||||
dev: false
|
||||
|
||||
/arg/4.1.3:
|
||||
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
|
||||
dev: true
|
||||
@@ -1738,6 +1788,17 @@ packages:
|
||||
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
|
||||
dev: true
|
||||
|
||||
/bcrypt/5.0.1:
|
||||
resolution: {integrity: sha512-9BTgmrhZM2t1bNuDtrtIMVSmmxZBrJ71n8Wg+YgdjHuIWYF7SjjmCPZFB+/5i/o/PIeRpwVJR3P+NrpIItUjqw==}
|
||||
engines: {node: '>= 10.0.0'}
|
||||
requiresBuild: true
|
||||
dependencies:
|
||||
'@mapbox/node-pre-gyp': 1.0.5
|
||||
node-addon-api: 3.2.1
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: false
|
||||
|
||||
/binary-extensions/2.2.0:
|
||||
resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -1894,6 +1955,11 @@ packages:
|
||||
fsevents: 2.3.2
|
||||
dev: true
|
||||
|
||||
/chownr/2.0.0:
|
||||
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
|
||||
engines: {node: '>=10'}
|
||||
dev: false
|
||||
|
||||
/chrome-trace-event/1.0.3:
|
||||
resolution: {integrity: sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==}
|
||||
engines: {node: '>=6.0'}
|
||||
@@ -1907,6 +1973,18 @@ packages:
|
||||
resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==}
|
||||
dev: true
|
||||
|
||||
/class-transformer/0.4.0:
|
||||
resolution: {integrity: sha512-ETWD/H2TbWbKEi7m9N4Km5+cw1hNcqJSxlSYhsLsNjQzWWiZIYA1zafxpK9PwVfaZ6AqR5rrjPVUBGESm5tQUA==}
|
||||
dev: false
|
||||
|
||||
/class-validator/0.13.1:
|
||||
resolution: {integrity: sha512-zWIeYFhUitvAHBwNhDdCRK09hWx+P0HUwFE8US8/CxFpMVzkUK8RJl7yOIE+BVu2lxyPNgeOaFv78tLE47jBIg==}
|
||||
dependencies:
|
||||
'@types/validator': 13.6.3
|
||||
libphonenumber-js: 1.9.22
|
||||
validator: 13.6.0
|
||||
dev: false
|
||||
|
||||
/clean-stack/2.2.0:
|
||||
resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
|
||||
engines: {node: '>=6'}
|
||||
@@ -1964,6 +2042,11 @@ packages:
|
||||
engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'}
|
||||
dev: true
|
||||
|
||||
/code-point-at/1.1.0:
|
||||
resolution: {integrity: sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/collect-v8-coverage/1.0.1:
|
||||
resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==}
|
||||
dev: true
|
||||
@@ -2026,6 +2109,10 @@ packages:
|
||||
resolution: {integrity: sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==}
|
||||
dev: false
|
||||
|
||||
/console-control-strings/1.1.0:
|
||||
resolution: {integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=}
|
||||
dev: false
|
||||
|
||||
/content-disposition/0.5.3:
|
||||
resolution: {integrity: sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==}
|
||||
engines: {node: '>= 0.6'}
|
||||
@@ -2174,6 +2261,10 @@ packages:
|
||||
engines: {node: '>=0.4.0'}
|
||||
dev: true
|
||||
|
||||
/delegates/1.0.0:
|
||||
resolution: {integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=}
|
||||
dev: false
|
||||
|
||||
/denque/1.5.0:
|
||||
resolution: {integrity: sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==}
|
||||
engines: {node: '>=0.10'}
|
||||
@@ -2188,6 +2279,12 @@ packages:
|
||||
resolution: {integrity: sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=}
|
||||
dev: false
|
||||
|
||||
/detect-libc/1.0.3:
|
||||
resolution: {integrity: sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=}
|
||||
engines: {node: '>=0.10'}
|
||||
hasBin: true
|
||||
dev: false
|
||||
|
||||
/detect-newline/3.1.0:
|
||||
resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -2848,6 +2945,13 @@ packages:
|
||||
universalify: 2.0.0
|
||||
dev: true
|
||||
|
||||
/fs-minipass/2.1.0:
|
||||
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
|
||||
engines: {node: '>= 8'}
|
||||
dependencies:
|
||||
minipass: 3.1.3
|
||||
dev: false
|
||||
|
||||
/fs-monkey/1.0.3:
|
||||
resolution: {integrity: sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==}
|
||||
dev: true
|
||||
@@ -2869,6 +2973,19 @@ packages:
|
||||
resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=}
|
||||
dev: true
|
||||
|
||||
/gauge/2.7.4:
|
||||
resolution: {integrity: sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=}
|
||||
dependencies:
|
||||
aproba: 1.2.0
|
||||
console-control-strings: 1.1.0
|
||||
has-unicode: 2.0.1
|
||||
object-assign: 4.1.1
|
||||
signal-exit: 3.0.3
|
||||
string-width: 1.0.2
|
||||
strip-ansi: 3.0.1
|
||||
wide-align: 1.1.3
|
||||
dev: false
|
||||
|
||||
/gensync/1.0.0-beta.2:
|
||||
resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
|
||||
engines: {node: '>=6.9.0'}
|
||||
@@ -2971,6 +3088,10 @@ packages:
|
||||
resolution: {integrity: sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==}
|
||||
engines: {node: '>= 0.4'}
|
||||
|
||||
/has-unicode/2.0.1:
|
||||
resolution: {integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=}
|
||||
dev: false
|
||||
|
||||
/has/1.0.3:
|
||||
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
|
||||
engines: {node: '>= 0.4.0'}
|
||||
@@ -3018,7 +3139,6 @@ packages:
|
||||
debug: 4.3.2
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
/human-signals/1.1.1:
|
||||
resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==}
|
||||
@@ -3189,6 +3309,13 @@ packages:
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/is-fullwidth-code-point/1.0.0:
|
||||
resolution: {integrity: sha1-754xOG8DGn8NZDr4L95QxFfvAMs=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dependencies:
|
||||
number-is-nan: 1.0.1
|
||||
dev: false
|
||||
|
||||
/is-fullwidth-code-point/2.0.0:
|
||||
resolution: {integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=}
|
||||
engines: {node: '>=4'}
|
||||
@@ -3994,6 +4121,10 @@ packages:
|
||||
type-check: 0.4.0
|
||||
dev: true
|
||||
|
||||
/libphonenumber-js/1.9.22:
|
||||
resolution: {integrity: sha512-nE0aF0wrNq09ewF36s9FVqRW73hmpw6cobVDlbexmsu1432LEfuN24BCudNuRx4t2rElSeK/N0JbedzRW/TC4A==}
|
||||
dev: false
|
||||
|
||||
/light-my-request/4.4.1:
|
||||
resolution: {integrity: sha512-FDNRF2mYjthIRWE7O8d/X7AzDx4otQHl4/QXbu3Q/FRwBFcgb+ZoDaUd5HwN53uQXLAiw76osN+Va0NEaOW6rQ==}
|
||||
dependencies:
|
||||
@@ -4155,7 +4286,6 @@ packages:
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
semver: 6.3.0
|
||||
dev: true
|
||||
|
||||
/make-error/1.3.6:
|
||||
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
|
||||
@@ -4250,11 +4380,25 @@ packages:
|
||||
resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==}
|
||||
dev: true
|
||||
|
||||
/minipass/3.1.3:
|
||||
resolution: {integrity: sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==}
|
||||
engines: {node: '>=8'}
|
||||
dependencies:
|
||||
yallist: 4.0.0
|
||||
dev: false
|
||||
|
||||
/minizlib/2.1.2:
|
||||
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
|
||||
engines: {node: '>= 8'}
|
||||
dependencies:
|
||||
minipass: 3.1.3
|
||||
yallist: 4.0.0
|
||||
dev: false
|
||||
|
||||
/mkdirp/1.0.4:
|
||||
resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==}
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/mongodb/3.6.10:
|
||||
resolution: {integrity: sha512-fvIBQBF7KwCJnDZUnFFy4WqEFP8ibdXeFANnylW19+vOwdjOAvqIzPdsNCEMT6VKTHnYu4K64AWRih0mkFms6Q==}
|
||||
@@ -4388,6 +4532,10 @@ packages:
|
||||
tslib: 2.3.0
|
||||
dev: false
|
||||
|
||||
/node-addon-api/3.2.1:
|
||||
resolution: {integrity: sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==}
|
||||
dev: false
|
||||
|
||||
/node-emoji/1.10.0:
|
||||
resolution: {integrity: sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==}
|
||||
dependencies:
|
||||
@@ -4412,6 +4560,14 @@ packages:
|
||||
resolution: {integrity: sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg==}
|
||||
dev: true
|
||||
|
||||
/nopt/5.0.0:
|
||||
resolution: {integrity: sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==}
|
||||
engines: {node: '>=6'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
abbrev: 1.1.1
|
||||
dev: false
|
||||
|
||||
/normalize-path/3.0.0:
|
||||
resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
|
||||
engines: {node: '>=0.10.0'}
|
||||
@@ -4422,6 +4578,20 @@ packages:
|
||||
dependencies:
|
||||
path-key: 3.1.1
|
||||
|
||||
/npmlog/4.1.2:
|
||||
resolution: {integrity: sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==}
|
||||
dependencies:
|
||||
are-we-there-yet: 1.1.5
|
||||
console-control-strings: 1.1.0
|
||||
gauge: 2.7.4
|
||||
set-blocking: 2.0.0
|
||||
dev: false
|
||||
|
||||
/number-is-nan/1.0.1:
|
||||
resolution: {integrity: sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: false
|
||||
|
||||
/nwsapi/2.2.0:
|
||||
resolution: {integrity: sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==}
|
||||
dev: true
|
||||
@@ -4429,7 +4599,6 @@ packages:
|
||||
/object-assign/4.1.1:
|
||||
resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dev: true
|
||||
|
||||
/object-hash/2.2.0:
|
||||
resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==}
|
||||
@@ -5031,7 +5200,6 @@ packages:
|
||||
/semver/6.3.0:
|
||||
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
|
||||
hasBin: true
|
||||
dev: true
|
||||
|
||||
/semver/7.3.5:
|
||||
resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==}
|
||||
@@ -5065,6 +5233,10 @@ packages:
|
||||
randombytes: 2.1.0
|
||||
dev: true
|
||||
|
||||
/set-blocking/2.0.0:
|
||||
resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=}
|
||||
dev: false
|
||||
|
||||
/set-cookie-parser/2.4.8:
|
||||
resolution: {integrity: sha512-edRH8mBKEWNVIVMKejNnuJxleqYE/ZSdcT8/Nem9/mmosx12pctd80s2Oy00KNZzrogMZS5mauK2/ymL1bvlvg==}
|
||||
dev: false
|
||||
@@ -5230,6 +5402,15 @@ packages:
|
||||
resolution: {integrity: sha512-/q/8Q4Bl4ZKAPjj8WerIBJWALKkaPRfrvhfF8k/B23i4nzrlRj2/go1m90In7nG/3XDSbOo0+pu6RvCTM9RGMQ==}
|
||||
dev: false
|
||||
|
||||
/string-width/1.0.2:
|
||||
resolution: {integrity: sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dependencies:
|
||||
code-point-at: 1.1.0
|
||||
is-fullwidth-code-point: 1.0.0
|
||||
strip-ansi: 3.0.1
|
||||
dev: false
|
||||
|
||||
/string-width/2.1.1:
|
||||
resolution: {integrity: sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==}
|
||||
engines: {node: '>=4'}
|
||||
@@ -5280,6 +5461,13 @@ packages:
|
||||
is-regexp: 1.0.0
|
||||
dev: false
|
||||
|
||||
/strip-ansi/3.0.1:
|
||||
resolution: {integrity: sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=}
|
||||
engines: {node: '>=0.10.0'}
|
||||
dependencies:
|
||||
ansi-regex: 2.1.1
|
||||
dev: false
|
||||
|
||||
/strip-ansi/4.0.0:
|
||||
resolution: {integrity: sha1-qEeQIusaw2iocTibY1JixQXuNo8=}
|
||||
engines: {node: '>=4'}
|
||||
@@ -5399,6 +5587,18 @@ packages:
|
||||
engines: {node: '>=6'}
|
||||
dev: true
|
||||
|
||||
/tar/6.1.2:
|
||||
resolution: {integrity: sha512-EwKEgqJ7nJoS+s8QfLYVGMDmAsj+StbI2AM/RTHeUSsOw6Z8bwNBRv5z3CY0m7laC5qUAqruLX5AhMuc5deY3Q==}
|
||||
engines: {node: '>= 10'}
|
||||
dependencies:
|
||||
chownr: 2.0.0
|
||||
fs-minipass: 2.1.0
|
||||
minipass: 3.1.3
|
||||
minizlib: 2.1.2
|
||||
mkdirp: 1.0.4
|
||||
yallist: 4.0.0
|
||||
dev: false
|
||||
|
||||
/terminal-link/2.1.1:
|
||||
resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==}
|
||||
engines: {node: '>=8'}
|
||||
@@ -5702,6 +5902,11 @@ packages:
|
||||
source-map: 0.7.3
|
||||
dev: true
|
||||
|
||||
/validator/13.6.0:
|
||||
resolution: {integrity: sha512-gVgKbdbHgtxpRyR8K0O6oFZPhhB5tT1jeEHZR0Znr9Svg03U0+r9DXWMrnRAB+HtCStDQKlaIZm42tVsVjqtjg==}
|
||||
engines: {node: '>= 0.10'}
|
||||
dev: false
|
||||
|
||||
/vary/1.1.2:
|
||||
resolution: {integrity: sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=}
|
||||
engines: {node: '>= 0.8'}
|
||||
@@ -5834,6 +6039,12 @@ packages:
|
||||
dependencies:
|
||||
isexe: 2.0.0
|
||||
|
||||
/wide-align/1.1.3:
|
||||
resolution: {integrity: sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==}
|
||||
dependencies:
|
||||
string-width: 1.0.2
|
||||
dev: false
|
||||
|
||||
/windows-release/4.0.0:
|
||||
resolution: {integrity: sha512-OxmV4wzDKB1x7AZaZgXMVsdJ1qER1ed83ZrTYd5Bwq2HfJVg3DJS8nqlAG4sMoJ7mu8cuRmLEYyU13BKwctRAg==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
@@ -2,9 +2,10 @@ import { Module } from '@nestjs/common'
|
||||
import { AppController } from './app.controller'
|
||||
import { AppService } from './app.service'
|
||||
import { InitModule } from './modules/init/init.module'
|
||||
import { UserModule } from './modules/user/user.module';
|
||||
|
||||
@Module({
|
||||
imports: [InitModule],
|
||||
imports: [InitModule, UserModule],
|
||||
controllers: [AppController],
|
||||
providers: [AppService],
|
||||
})
|
||||
|
||||
@@ -5,7 +5,8 @@ import { fastifyApp } from './core/adapt/fastify'
|
||||
import { isDev } from './utils'
|
||||
import { Logger } from '@nestjs/common'
|
||||
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger'
|
||||
const PORT = parseInt(process.env.PORT) || 2333
|
||||
// const PORT = parseInt(process.env.PORT) || 2333
|
||||
const PORT = 2333
|
||||
const APIVersion = 1
|
||||
const Origin = process.env.ORIGIN || ''
|
||||
|
||||
|
||||
18
src/modules/user/user.controller.spec.ts
Normal file
18
src/modules/user/user.controller.spec.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { UserController } from './user.controller';
|
||||
|
||||
describe('UserController', () => {
|
||||
let controller: UserController;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
controllers: [UserController],
|
||||
}).compile();
|
||||
|
||||
controller = module.get<UserController>(UserController);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(controller).toBeDefined();
|
||||
});
|
||||
});
|
||||
4
src/modules/user/user.controller.ts
Normal file
4
src/modules/user/user.controller.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
import { Controller } from '@nestjs/common';
|
||||
|
||||
@Controller('user')
|
||||
export class UserController {}
|
||||
0
src/modules/user/user.model.ts
Normal file
0
src/modules/user/user.model.ts
Normal file
9
src/modules/user/user.module.ts
Normal file
9
src/modules/user/user.module.ts
Normal file
@@ -0,0 +1,9 @@
|
||||
import { Module } from '@nestjs/common'
|
||||
import { UserController } from './user.controller'
|
||||
import { UserService } from './user.service'
|
||||
|
||||
@Module({
|
||||
controllers: [UserController],
|
||||
providers: [UserService],
|
||||
})
|
||||
export class UserModule {}
|
||||
18
src/modules/user/user.service.spec.ts
Normal file
18
src/modules/user/user.service.spec.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { Test, TestingModule } from '@nestjs/testing';
|
||||
import { UserService } from './user.service';
|
||||
|
||||
describe('UserService', () => {
|
||||
let service: UserService;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module: TestingModule = await Test.createTestingModule({
|
||||
providers: [UserService],
|
||||
}).compile();
|
||||
|
||||
service = module.get<UserService>(UserService);
|
||||
});
|
||||
|
||||
it('should be defined', () => {
|
||||
expect(service).toBeDefined();
|
||||
});
|
||||
});
|
||||
4
src/modules/user/user.service.ts
Normal file
4
src/modules/user/user.service.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
|
||||
@Injectable()
|
||||
export class UserService {}
|
||||
Reference in New Issue
Block a user