open-index/open-npm huggingface dataset:
npm package: @objective-inc/prisma-client-extension-with-objective
Description: Prisma client extension with Objective
Author: Objective, Inc.
Latest version: 0.0.9

# 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

1. Install the extension:

```
npm i @objective-inc/prisma-client-extension-with-objective
```

2. Set up your Prisma Client with the extension:

```typescript
import { PrismaClient } from '@prisma/client'
import { withObjectiveFns } from 'prisma-extension-with-objective'
const prisma = new PrismaClient().$extends(withObjectiveFns({
    apiKey: process.env.OBJECTIVE_API_KEY
}))
```

3. Use the extended methods in your code:

```typescript
// Create a record and sync with Objective.inc
const newUser = await prisma.user.createWithObjective({
    data: {
        name: 'John Doe',
        email: 'john@example.com',
    },
})
// 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:

1. `createWithObjective`: Creates a record in your database and sends it to Objective.inc.
2. `updateWithObjective`: Updates a record in your database and Objective.inc.
3. `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.

## Learn More

- [Prisma Client Extensions Documentation](https://www.prisma.io/docs/concepts/components/prisma-client/client-extensions)
- [Objective.inc API Documentation](https://docs.objective.inc)