Skip to content

Commit

Permalink
refactor(monorepo): Migrate from nx to turbo (#153)
Browse files Browse the repository at this point in the history
Co-authored-by: rajdip-b <agentR47@gmail.com>
  • Loading branch information
kriptonian1 and rajdip-b authored Feb 25, 2024
1 parent 46833aa commit 88b4b00
Show file tree
Hide file tree
Showing 83 changed files with 756 additions and 946 deletions.
1 change: 0 additions & 1 deletion .eslintignore

This file was deleted.

61 changes: 0 additions & 61 deletions .eslintrc.json

This file was deleted.

3 changes: 2 additions & 1 deletion .github/workflows/stage-api.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:

env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
DATABASE_URL: ${{ secrets.DATABASE_URL }}

jobs:
deploy-api-stage:
Expand All @@ -20,4 +21,4 @@ jobs:
run: |
curl -L https://fly.io/install.sh | sh
- name: Deploy to stage
run: ~/.fly/bin/fly deploy --config fly.api.toml --dockerfile ./apps/api/Dockerfile --app keyshade-api-stage --access-token ${{ secrets.FLY_ACCESS_TOKEN }} --build-arg SENTRY_AUTH_TOKEN=${SENTRY_AUTH_TOKEN} --build-arg SENTRY_PROJECT=keyshade-api --build-arg SENTRY_ORG=keyshade --build-arg SENTRY_ENVIRONMENT=stage
run: ~/.fly/bin/fly deploy --config fly.api.toml --dockerfile ./apps/api/Dockerfile --app keyshade-api-stage --access-token ${{ secrets.FLY_ACCESS_TOKEN }} --build-arg SENTRY_AUTH_TOKEN=${SENTRY_AUTH_TOKEN} --build-arg SENTRY_PROJECT=keyshade-api --build-arg SENTRY_ORG=keyshade --build-arg SENTRY_ENVIRONMENT=stage --build-arg DATABASE_URL=${DATABASE_URL}
7 changes: 4 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,6 @@ testem.log
.DS_Store
Thumbs.db

.nx/cache

# Next.js
.next
.vscode
Expand All @@ -49,9 +47,12 @@ Thumbs.db
pnpm-lock.yaml

# Database
data/
/data
# Sentry Config File
.sentryclirc

# Sentry Config File
.env.sentry-build-plugin

# turbo
.turbo
2 changes: 1 addition & 1 deletion .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

pnpm run lint:fix && pnpm run prettier:fix && pnpm run test:api
pnpm lint && pnpm format && pnpm test:api
5 changes: 3 additions & 2 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Add files here to ignore them from prettier formatting
/dist
/coverage
/.nx/cache
auto-changelog-template.hbs
/data
/node_modules
.turbo
25 changes: 25 additions & 0 deletions apps/api/.eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
module.exports = {
parser: '@typescript-eslint/parser',
parserOptions: {
project: 'tsconfig.json',
tsconfigRootDir: __dirname,
sourceType: 'module',
},
plugins: ['@typescript-eslint/eslint-plugin'],
extends: [
'plugin:@typescript-eslint/recommended',
'plugin:prettier/recommended',
],
root: true,
env: {
node: true,
jest: true,
},
ignorePatterns: ['.eslintrc.js'],
rules: {
'@typescript-eslint/interface-name-prefix': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
},
};
18 changes: 0 additions & 18 deletions apps/api/.eslintrc.json

This file was deleted.

30 changes: 17 additions & 13 deletions apps/api/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,31 @@ FROM node:20-alpine AS build

WORKDIR /app

RUN apk add --no-cache bash
ARG SENTRY_ORG=${SENTRY_ORG}
ARG SENTRY_PROJECT=${SENTRY_PROJECT}
ARG SENTRY_ENVIRONMENT=${SENTRY_ENVIRONMENT}
ARG SENTRY_AUTH_TOKEN=${SENTRY_AUTH_TOKEN}
ARG DATABASE_URL=${DATABASE_URL}

RUN npm i -g pnpm

COPY package.json .
COPY tsconfig.base.json .
COPY turbo.json .
COPY pnpm-workspace.yaml .

RUN pnpm install
COPY apps/api/package.json apps/api/package.json
COPY apps/api/tsconfig.json apps/api/tsconfig.json

COPY apps/api apps/api
COPY apps/api/src apps/api/src

COPY apps/api/startup.sh .
RUN chmod +x startup.sh
COPY packages packages

ARG SENTRY_ORG=${SENTRY_ORG}
ARG SENTRY_PROJECT=${SENTRY_PROJECT}
ARG SENTRY_ENVIRONMENT=${SENTRY_ENVIRONMENT}
ARG SENTRY_AUTH_TOKEN=${SENTRY_AUTH_TOKEN}
RUN pnpm install

RUN pnpm run db:generate-types
RUN pnpm run build:api
RUN pnpm db:generate-types
RUN pnpm build:api
RUN pnpm sourcemaps:api

EXPOSE 4200

ENTRYPOINT ["/bin/bash", "startup.sh"]
ENTRYPOINT ["node", "apps/api/dist/main.js"]
9 changes: 9 additions & 0 deletions apps/api/nest-cli.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"$schema": "https://json.schemastore.org/nest-cli",
"collection": "@nestjs/schematics",
"sourceRoot": "src",
"compilerOptions": {
"deleteOutDir": true
},
"entryFile": "main.js"
}
85 changes: 85 additions & 0 deletions apps/api/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
{
"name": "api",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"build": "nest build",
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
"start": "node dist/main",
"dev": "nest start --watch",
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"test": "jest",
"sourcemaps": "sentry-cli sourcemaps inject ./dist && sentry-cli sourcemaps upload ./dist || echo 'Failed to upload source maps to Sentry'"
},
"dependencies": {
"@nestjs/common": "^10.0.0",
"@nestjs/config": "^3.2.0",
"@nestjs/core": "^10.0.0",
"@nestjs/jwt": "^10.2.0",
"@nestjs/passport": "^10.0.3",
"@nestjs/platform-express": "^10.0.0",
"@nestjs/platform-fastify": "^10.3.3",
"@nestjs/schedule": "^4.0.1",
"@nestjs/swagger": "^7.3.0",
"@prisma/client": "^5.10.1",
"@supabase/supabase-js": "^2.39.6",
"chalk": "^4.1.2",
"class-transformer": "^0.5.1",
"class-validator": "^0.14.1",
"eccrypto": "^1.1.6",
"moment": "^2.30.1",
"nodemailer": "^6.9.9",
"passport-github2": "^0.1.12",
"prisma": "^5.10.1",
"reflect-metadata": "^0.2.0",
"rxjs": "^7.8.1",
"uuid": "^9.0.1"
},
"devDependencies": {
"@nestjs/cli": "^10.0.0",
"@nestjs/schematics": "^10.0.0",
"@nestjs/testing": "^10.0.0",
"@types/eccrypto": "^1.1.6",
"@types/express": "^4.17.17",
"@types/jest": "^29.5.2",
"@types/node": "^20.3.1",
"@types/supertest": "^6.0.0",
"@typescript-eslint/eslint-plugin": "^6.0.0",
"@typescript-eslint/parser": "^6.0.0",
"eslint": "^8.42.0",
"eslint-config-prettier": "^9.0.0",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-prettier": "^5.0.0",
"jest": "^29.5.0",
"jest-mock-extended": "^3.0.5",
"prettier": "^3.0.0",
"source-map-support": "^0.5.21",
"supertest": "^6.3.3",
"ts-jest": "^29.1.0",
"ts-loader": "^9.4.3",
"ts-node": "^10.9.1",
"tsconfig-paths": "^4.2.0",
"typescript": "^5.1.3"
},
"jest": {
"moduleFileExtensions": [
"js",
"json",
"ts"
],
"rootDir": "src",
"testRegex": ".*\\.spec\\.ts$",
"transform": {
"^.+\\.(t|j)s$": "ts-jest"
},
"collectCoverageFrom": [
"**/*.(t|j)s"
],
"coverageDirectory": "../coverage",
"testEnvironment": "node"
},
"keywords": [],
"author": "",
"license": "ISC"
}
Loading

0 comments on commit 88b4b00

Please sign in to comment.