UNPKG

lightning-auth-and-payment

Version:

Lightning Network authentication and payment processing library for modern web applications

85 lines 3.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PrismaDatabaseAdapter = void 0; exports.createPrismaAdapter = createPrismaAdapter; /** * Generic Prisma database adapter for the Lightning Auth library * * This adapter provides a bridge between the lightning-auth-and-payment library * and Prisma ORM, making it easy to integrate Lightning authentication and payments * with any Prisma-based application. * * @example * ```typescript * import { PrismaClient } from '@prisma/client'; * import { PrismaDatabaseAdapter } from 'lightning-auth-and-payment/adapters'; * * const prisma = new PrismaClient(); * const databaseAdapter = new PrismaDatabaseAdapter(prisma); * ``` */ class PrismaDatabaseAdapter { constructor(prisma) { this.prisma = prisma; // User operations this.user = { findUnique: (args) => this.prisma.user.findUnique(args), findFirst: () => this.prisma.user.findFirst(), create: (args) => this.prisma.user.create(args), }; // Session operations this.session = { create: (args) => this.prisma.session.create(args), deleteMany: (args) => this.prisma.session.deleteMany(args), }; // Invoice operations this.invoice = { findUnique: (args) => this.prisma.invoice.findUnique(args), findFirst: (args) => this.prisma.invoice.findFirst(args), update: (args) => this.prisma.invoice.update(args), create: (args) => this.prisma.invoice.create(args), count: (args) => this.prisma.invoice.count(args), }; // Series operations (optional - for content management) this.series = { findUnique: (args) => this.prisma.series?.findUnique(args) || Promise.resolve(null), }; // LNURL challenge operations this.lnurlChallenge = { create: (args) => this.prisma.lnurlChallenge.create(args), findUnique: (args) => this.prisma.lnurlChallenge.findUnique(args), update: (args) => this.prisma.lnurlChallenge.update(args), delete: (args) => this.prisma.lnurlChallenge.delete(args), deleteMany: (args) => this.prisma.lnurlChallenge.deleteMany(args), count: () => this.prisma.lnurlChallenge.count(), }; // LNURL login operations this.lnurlLogin = { create: (args) => this.prisma.lnurlLogin.create(args), findUnique: (args) => this.prisma.lnurlLogin.findUnique(args), upsert: (args) => this.prisma.lnurlLogin.upsert(args), delete: (args) => this.prisma.lnurlLogin.delete(args), deleteMany: (args) => this.prisma.lnurlLogin.deleteMany(args), }; // Transaction support this.$transaction = (operations) => this.prisma.$transaction(operations); } } exports.PrismaDatabaseAdapter = PrismaDatabaseAdapter; /** * Factory function to create a PrismaDatabaseAdapter * * @param prisma - PrismaClient instance * @returns PrismaDatabaseAdapter instance * * @example * ```typescript * import { createPrismaAdapter } from 'lightning-auth-and-payment/adapters'; * * const adapter = createPrismaAdapter(prisma); * ``` */ function createPrismaAdapter(prisma) { return new PrismaDatabaseAdapter(prisma); } //# sourceMappingURL=prisma-database-adapter.js.map