AgentStack
SKILL verified MIT Self-run

Nestjs Prisma

skill-drvoss-everything-copilot-cli-nestjs-prisma · by drvoss

Use when building a NestJS application with Prisma — covers PrismaService setup as an injectable singleton, repository pattern integration, and testing with Prisma mocks.

No reviews yet
0 installs
14 views
0.0% view→install

Install

$ agentstack add skill-drvoss-everything-copilot-cli-nestjs-prisma

✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets Used
  • Dynamic code execution Used

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

Are you the author of Nestjs Prisma? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

NestJS + Prisma Combo Skill

When to Use

  • Setting up Prisma in a NestJS project for the first time
  • Implementing a data access layer using Prisma as the ORM
  • Writing unit tests for services that depend on Prisma
  • Debugging connection pooling or client lifecycle issues

Workflow

1. PrismaService Setup

// src/prisma/prisma.service.ts
import { Injectable, OnModuleInit, OnModuleDestroy } from "@nestjs/common"
import { PrismaClient } from "@prisma/client"

@Injectable()
export class PrismaService
  extends PrismaClient
  implements OnModuleInit, OnModuleDestroy
{
  async onModuleInit() {
    await this.$connect()
  }
  async onModuleDestroy() {
    await this.$disconnect()
  }
}
// src/prisma/prisma.module.ts
import { Global, Module } from "@nestjs/common"
import { PrismaService } from "./prisma.service"

@Global()
@Module({
  providers: [PrismaService],
  exports: [PrismaService],
})
export class PrismaModule {}

Import PrismaModule in AppModule once — @Global() makes it available everywhere.

2. Using PrismaService in a Feature Service

// src/users/users.service.ts
import { Injectable } from "@nestjs/common"
import { PrismaService } from "../prisma/prisma.service"

@Injectable()
export class UsersService {
  constructor(private prisma: PrismaService) {}

  async findAll() {
    return this.prisma.user.findMany({
      select: { id: true, name: true, email: true },
    })
  }

  async create(data: { name: string; email: string }) {
    return this.prisma.user.create({ data })
  }
}

3. Unit Testing with Prisma Mock

// src/users/users.service.spec.ts
import { Test } from "@nestjs/testing"
import { UsersService } from "./users.service"
import { PrismaService } from "../prisma/prisma.service"

const mockPrismaService = {
  user: {
    findMany: jest.fn(),
    create: jest.fn(),
  },
}

describe("UsersService", () => {
  let service: UsersService

  beforeEach(async () => {
    const module = await Test.createTestingModule({
      providers: [
        UsersService,
        { provide: PrismaService, useValue: mockPrismaService },
      ],
    }).compile()

    service = module.get(UsersService)
  })

  it("returns all users", async () => {
    mockPrismaService.user.findMany.mockResolvedValue([{ id: 1, name: "Alice" }])
    const result = await service.findAll()
    expect(result).toHaveLength(1)
  })
})

4. Environment Setup Checklist

# 1. Install
pnpm add @prisma/client
pnpm add -D prisma

# 2. Initialize
pnpm prisma init

# 3. Add DATABASE_URL to .env
# 4. Define schema then migrate
pnpm prisma migrate dev --name init

# 5. Generate client
pnpm prisma generate

Rules Applied

  • rules/frameworks/nestjs.md — module structure, DI, controllers, security
  • rules/frameworks/prisma.md — schema design, client lifecycle, query safety
  • rules/common/security.md — secrets, input validation

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet — be the first.

Versions

  • v0.1.0 Imported from the upstream source.