Skip to content

broisnischal/prisma-fns

This branch is 1 commit ahead of master.

Folders and files

NameName
Last commit message
Last commit date
Jan 26, 2024
Feb 11, 2024
Jan 26, 2024
Jan 26, 2024
Feb 14, 2024
Feb 15, 2024
Feb 11, 2024
Feb 14, 2024
Jan 26, 2024
Feb 11, 2024
Jan 25, 2024
Jan 26, 2024
Jan 26, 2024
Jan 26, 2024
Feb 11, 2024
Jan 25, 2024
Feb 11, 2024
Feb 11, 2024
Jan 26, 2024
Feb 14, 2024
Jun 5, 2024
Feb 11, 2024
Feb 15, 2024
Feb 15, 2024
Jan 25, 2024
Jan 25, 2024

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.