prisma-fns icon indicating copy to clipboard operation
prisma-fns copied to clipboard

a revolutionary utility extension for seamless Prisma integration.

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
  • [x] Extensions
    • [x] 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
      • [x] log perf logger
      • [ ] coming up
  • [ ] Docs website
    • [ ] Create docs website
    • [ ] Example Implementation
  • [ ] Tests
    • [ ] Unit tests
      • [ ] extensions
  • [x] Deploy to production
    • [x] Set up hosting environment
    • [x] Configure CI/CD pipeline
    • [x] 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.