New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

prisma-name-mapper

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

prisma-name-mapper

A Prisma generator that outputs a TypeScript map of model and field names to their database names.

latest
Source
npmnpm
Version
1.0.2
Version published
Maintainers
1
Created
Source

🧭 Prisma Name Mapper 🧭


A custom Prisma generator that creates a TypeScript mapping of your model and field names to their database-level names. Stop guessing and start knowing exactly what your database columns are called.

🤔 What is this?

When you use Prisma, you often define your models in camelCase and your database tables and columns in snake_case using @@map and @map. This is great for your code, but what happens when you need to write a raw SQL query, create a migration script, or build a data utility? You end up guessing the database names or constantly checking your schema.prisma file.

Prisma Name Mapper solves this by automatically generating a TypeScript object that maps your Prisma model and field names to their corresponding database names.

🚀 Getting Started

1. Installation

Install the package as a development dependency in your project.

# Using npm
$ npm install -D prisma-name-mapper

# Using pnpm
$ pnpm add -D prisma-name-mapper

# Using bun
$ bun add -d prisma-name-mapper

2. Configuration

In your schema.prisma file, add the dbnames generator:

// schema.prisma

generator dbnames {
  provider = "prisma-name-mapper"
  // (Required) Define a custom output path.
  output = "../generated/mapper.ts"
}

model User {
  // ... your models
}

3. Generate the Map

Run the prisma generate command. The mapper file will be created at your specified output path.

$ bunx prisma generate

📦 Example Output

Given a Prisma schema like this:

// schema.prisma

model User {
  id        String   @id @default(cuid()) @map("user_id")
  fullName  String   @map("full_name")
  createdAt DateTime @map("created_at")

  @@map("users")
}

This generator will create the following file, giving you type-safe access to your database names:

// 🔴 AUTO-GENERATED FILE — DO NOT EDIT! 🔴
//
// This file is automatically generated by prisma-name-mapper.
// Do not edit this file directly.

export const PrismaNameMapper = {
  User: {
    tableName: "users",
    schema: null,
    fields: {
      id: "user_id",
      fullName: "full_name",
      createdAt: "created_at",
    },
  },
} as const;

✨ Why Use It?

This utility becomes incredibly useful in a variety of scenarios:

  • Raw SQL Queries: Write type-safe raw SQL queries without hardcoding table or column names.
import { PrismaNameMapper } from "@/prisma/generated/mapper";
import { prisma } from "@/lib/prisma/client";

const userId = "some-user-id";
const userTable = Prisma.raw(PrismaNameMapper.User.tableName);
const userIdCol = Prisma.raw(PrismaNameMapper.User.fields.id);

const query = Prisma.sql`
  SELECT * FROM ${userTable} WHERE ${userIdCol} = $1
`;
const users = await prisma.$queryRaw(query userId);
  • Database Utilities & Seeding: Build scripts for migrations, seeding, or data manipulation with confidence.
// A script to count users

const userTable = PrismaNameMapper.User.tableName;
console.log(`There are ${count} rows in the ${userTable} table.`);
  • Logging & Auditing: Create detailed logs that reference the exact database columns being modified.

  • Dynamic APIs: Build dynamic API endpoints or data services that need to know about the underlying database schema.

🤝 Contributing

Contributions are welcome! If you have a feature request, bug report, or want to improve the code, please open an issue or submit a pull request.

📜 License

This project is licensed under the MIT License. See the LICENSE file for details.

Made with ❤️ – Built for the Community 🤲

Keywords

prisma

FAQs

Package last updated on 07 Aug 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts