Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,9 @@ jobs:
- run: pnpm install --frozen-lockfile
- uses: nrwl/nx-set-shas@v4

# Generate Prisma clients for affected projects before running other targets
- run: pnpm exec nx affected -t prisma-generate

# Prepend any command with "nx-cloud record --" to record its logs to Nx Cloud
# - run: pnpm exec nx-cloud record -- echo Hello World
# Nx Affected runs only tasks affected by the changes in this PR/commit. Learn more: https://nx.dev/ci/features/affected
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -48,4 +48,5 @@ test-output
apps/*/.env
e2e/*/.env
.vscode
.cursor
.cursor
apps/url-shortener/src/prisma/generated/*
9 changes: 1 addition & 8 deletions apps/url-shortener/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,7 @@
"executor": "@nx-tools/nx-prisma:format"
},
"prisma-generate": {
"executor": "nx:run-commands",
"options": {
"command": "prisma generate",
"args": [
"--sql"
],
"cwd": "apps/url-shortener"
}
"executor": "@nx-tools/nx-prisma:generate"
},
"prisma-migrate": {
"executor": "@nx-tools/nx-prisma:migrate"
Expand Down
6 changes: 4 additions & 2 deletions apps/url-shortener/prisma/schema.prisma
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
generator client {
provider = "prisma-client-js"
previewFeatures = ["typedSql"]
provider = "prisma-client"
output = "../src/prisma/generated"
engineType = "client"
moduleFormat = "cjs"
}

datasource db {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Inject, Injectable } from '@nestjs/common';
import { Prisma } from '@prisma/client';
import { Prisma } from '../../../prisma/generated/client';
import { PrismaService } from '../../../prisma/prisma.service';
import { COUNTER_BATCH_SIZE } from '../../counter.constants';
import { BatchCounterService } from '../base/batch-counter.service';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { Injectable } from '@nestjs/common';
import { getNextShortUrlId } from '@prisma/client/sql';
import { Prisma } from '../../../prisma/generated/client';
import { PrismaService } from '../../../prisma/prisma.service';
import { CounterService } from '../../counter.service';

Expand All @@ -10,7 +10,10 @@ export class PostgresCounterService extends CounterService {
}

async getNextCount(): Promise<number> {
const result = await this.prisma.$queryRawTyped(getNextShortUrlId());
const result = await this.prisma.$queryRaw<{ nextval: bigint }[]>(
Prisma.sql`SELECT nextval('next_shortend_urls_id_seq') AS nextval`,
);

const nextSequenceNum = result[0].nextval;

return Number(nextSequenceNum);
Expand Down
2 changes: 2 additions & 0 deletions apps/url-shortener/src/prisma/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
export * from './prisma.module';
export * from './prisma.service';
10 changes: 9 additions & 1 deletion apps/url-shortener/src/prisma/prisma.service.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
import { Injectable, OnModuleDestroy, OnModuleInit } from '@nestjs/common';
import { PrismaClient } from '@prisma/client';
import { PrismaPg } from '@prisma/adapter-pg';
import { PrismaClient } from './generated/client';

@Injectable()
export class PrismaService
extends PrismaClient
implements OnModuleInit, OnModuleDestroy
{
constructor() {
const adapter = new PrismaPg({
connectionString: process.env['DATABASE_URL'],
});
super({ adapter });
}

async onModuleInit() {
await this.$connect();
}
Expand Down
1 change: 1 addition & 0 deletions apps/url-shortener/webpack.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ module.exports = {
optimization: false,
outputHashing: 'none',
generatePackageJson: true,
sourceMap: false,
}),
],
};
5 changes: 3 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@
"@nestjs/platform-express": "^11.1.3",
"@nestjs/platform-fastify": "^11.1.6",
"@nestjs/swagger": "^11.2.0",
"@prisma/client": "^6.9.0",
"@prisma/client": "^6.17.0",
"@prisma/adapter-pg": "^6.17.0",
"axios": "^1.10.0",
"class-validator": "^0.14.2",
"fastify": "^5.6.1",
Expand Down Expand Up @@ -59,7 +60,7 @@
"nx": "21.2.0",
"pino-pretty": "^13.0.0",
"prettier": "^3.0.0",
"prisma": "^6.9.0",
"prisma": "^6.17.0",
"supertest": "^7.1.1",
"ts-jest": "^29.4.0",
"ts-node": "10.9.1",
Expand Down
Loading