UNPKG

@prisma-extensions/soft-delete

Version:

Soft Delete can be used to hide records instead of deleting them, making them recoverable later.

54 lines (49 loc) 1.38 kB
import type { Prisma } from '@prisma/client' export function softDelete<Model, Args extends object>( this: Model, args: Prisma.Exact<Args, Prisma.Args<Model, 'delete'>>, ): Promise<Prisma.Result<Model, Args, 'update'>> { // @ts-expect-error: Requires more types from Prisma return this.update({ ...args, data: { deletedAt: new Date(), }, }) } export function softDeleteMany<Model, Args extends object>( this: Model, args?: Prisma.Exact<Args, Prisma.Args<Model, 'deleteMany'>>, ): Promise<Prisma.Result<Model, Args, 'updateMany'>> { // @ts-expect-error: Requires more types from Prisma return this.updateMany({ ...args, data: { deletedAt: new Date(), }, }) } export function softRestore<Model, Args extends object>( this: Model, args: Prisma.Exact<Args, Prisma.Args<Model, 'delete'>>, ): Promise<Prisma.Result<Model, Args, 'update'>> { // @ts-expect-error: Requires more types from Prisma return this.update({ ...args, data: { deletedAt: null, }, }) } export function softRestoreMany<Model, Args extends object>( this: Model, args?: Prisma.Exact<Args, Prisma.Args<Model, 'deleteMany'>>, ): Promise<Prisma.Result<Model, Args, 'updateMany'>> { // @ts-expect-error: Requires more types from Prisma return this.updateMany({ ...args, data: { deletedAt: null, }, }) }