@objective-inc/prisma-client-extension-with-objective
v0.0.9
Published
Prisma client extension with Objective
Downloads
8
Readme
Prisma Client Extension for Objective.inc Integration
This Prisma Client extension provides seamless integration with Objective.inc's object store. It extends Prisma's functionality to automatically sync your database operations with Objective.inc, ensuring that your data remains consistent across both platforms.
Features
- Automatically create objects in Objective.inc when creating records in your database
- Update objects in Objective.inc when updating records in your database
- Delete objects from Objective.inc when deleting records from your database
Required Environment Variables
To use this extension, you need to set the following environment variable:
OBJECTIVE_API_KEY
: Your Objective.inc API key
Getting Started
- Install the extension:
npm i @objective-inc/prisma-client-extension-with-objective
- Set up your Prisma Client with the extension:
import { PrismaClient } from '@prisma/client'
import { withObjectiveFns } from 'prisma-extension-with-objective'
const prisma = new PrismaClient().$extends(withObjectiveFns({
apiKey: process.env.OBJECTIVE_API_KEY
}))
- Use the extended methods in your code:
// Create a record and sync with Objective.inc
const newUser = await prisma.user.createWithObjective({
data: {
name: 'John Doe',
email: '[email protected]',
},
})
// Update a record and sync with Objective.inc
const updatedUser = await prisma.user.updateWithObjective('user-id', {
where: { id: 'user-id' },
data: {
name: 'Jane Doe',
},
})
// Delete a record and remove from Objective.inc
const deletedUser = await prisma.user.deleteWithObjective({
where: { id: 'user-id' },
})
How It Works
The extension adds three new methods to all Prisma models:
createWithObjective
: Creates a record in your database and sends it to Objective.inc.updateWithObjective
: Updates a record in your database and Objective.inc.deleteWithObjective
: Deletes a record from your database and Objective.inc.
These methods ensure that your data is always in sync between your database and Objective.inc's object store.
For more details on the implementation, check the index.ts
file in the src
directory.