Skip to content

broisnischal/prisma-fns

Repository files navigation

Prisma-Fns

npm version GitHub Repo stars GitHub top language License

Prisma-Fns is a revolutionary utility extension for seamless Prisma integration. It enhances your workflow, simplifies common tasks and functions, and boosts the efficiency of your Prisma-powered applications.

Installation

npm install prisma-fns

Basic Usage

Get Values

// getValues (field, where)
const prisma = new PrismaClient().$extends(getValues);

const user = await prisma.user.getValues("email", {
  email: {
    contains: "@",
  },
});

Log

// console.log
const prisma = new PrismaClient().$extends(log);

const user = await prisma.user.findFirst();

prisma.$log(user);

Exists

const prisma = new PrismaClient().$extends(exists);

// returns boolean
const user = await prisma.user.exists({
  id: 1,
});

logPerf

const prisma = new PrismaClient().$extends(logPerf);

const user = await prisma.user.findFirst();


// logs in console
{
  model: 'User',
  operation: 'findFirst',
  args: {},
  time: 25.3997129797935
}

remember

// creates singleton
const prisma = new PrismaClient().$extends(remember);

save

// saves object
const prisma = new PrismaClient().$extends(save);

generate slug

const prisma = new PrismaClient().$extends(generateSlug);

const user = await prisma.user.findFirst();

// returns slug
user.slug;

Progress

  • Custom Generators
  • Extensions
    • Generate Singleton client
    • Fuzzy search feature for specified model
    • Increase Decrease Math Operations for field in provided model
    • Pagination utils
    • Luxon for date time fields
    • Query Optimization Extension
      • Toggle via slug
      • Compare and Update
      • Auto select field/model
      • auto generate slug in provided model
      • deselect password when querying
      • more coming soon...
    • Extras
      • log perf logger
      • coming up
  • Docs website
    • Create docs website
    • Example Implementation
  • Tests
    • Unit tests
      • extensions
  • Deploy to production
    • Set up hosting environment
    • Configure CI/CD pipeline
    • Deploy package

Contributing

If you'd like to contribute, please follow our contribution guidelines.

Support

If you like the project, please consider supporting us by giving a ⭐️ on Github.

Bugs

If you find a bug, please file an issue on our issue tracker on GitHub

License

prisma-fns is open-source software licensed under the MIT license.