Update Prisma adapter and type annotations

Replaces usage of PrismaBetterSQLite3 with PrismaBetterSqlite3 for consistency and correct casing. Updates type annotations in several components and API router for improved type safety. Also adjusts PrismaClient import paths in db files.
This commit is contained in:
CanbiZ
2025-11-28 13:02:34 +01:00
parent 1a1dbe6975
commit 7fa132e09c
6 changed files with 12 additions and 13 deletions

View File

@@ -2,15 +2,14 @@ import 'dotenv/config'
import { defineConfig } from 'prisma/config' import { defineConfig } from 'prisma/config'
export default defineConfig({ export default defineConfig({
earlyAccess: true,
schema: 'prisma/schema.prisma', schema: 'prisma/schema.prisma',
migrate: { migrate: {
migrations: 'prisma/migrations', migrations: 'prisma/migrations',
}, },
studio: { studio: {
adapter: async () => { adapter: async () => {
const { PrismaBetterSQLite3 } = await import('@prisma/adapter-better-sqlite3') const { PrismaBetterSqlite3 } = await import('@prisma/adapter-better-sqlite3')
return new PrismaBetterSQLite3({ url: process.env.DATABASE_URL! }) return new PrismaBetterSqlite3({ url: process.env.DATABASE_URL! })
}, },
}, },
}) })

View File

@@ -164,7 +164,7 @@ export function DownloadedScriptsTab({
// Use Map to deduplicate by slug/name // Use Map to deduplicate by slug/name
const scriptMap = new Map<string, ScriptCardType>(); const scriptMap = new Map<string, ScriptCardType>();
scriptCardsData.cards?.forEach((script) => { scriptCardsData.cards?.forEach((script: ScriptCardType) => {
if (script?.name && script?.slug) { if (script?.name && script?.slug) {
// Use slug as unique identifier, only keep first occurrence // Use slug as unique identifier, only keep first occurrence
if (!scriptMap.has(script.slug)) { if (!scriptMap.has(script.slug)) {

View File

@@ -169,7 +169,7 @@ export function ScriptsGrid({ onInstallScript }: ScriptsGridProps) {
// Use Map to deduplicate by slug/name // Use Map to deduplicate by slug/name
const scriptMap = new Map<string, ScriptCardType>(); const scriptMap = new Map<string, ScriptCardType>();
scriptCardsData.cards?.forEach((script) => { scriptCardsData.cards?.forEach((script: ScriptCardType) => {
if (script?.name && script?.slug) { if (script?.name && script?.slug) {
// Use slug as unique identifier, only keep first occurrence // Use slug as unique identifier, only keep first occurrence
if (!scriptMap.has(script.slug)) { if (!scriptMap.has(script.slug)) {

View File

@@ -189,7 +189,7 @@ export const scriptsRouter = createTRPCRouter({
} }
// Enhance cards with category information and additional script data // Enhance cards with category information and additional script data
const cardsWithCategories = cards.map(card => { const cardsWithCategories = cards.map((card: ScriptCard) => {
const script = scripts.find(s => s.slug === card.slug); const script = scripts.find(s => s.slug === card.slug);
const categoryNames: string[] = script?.categories?.map(id => categoryMap[id]).filter((name): name is string => typeof name === 'string') ?? []; const categoryNames: string[] = script?.categories?.map(id => categoryMap[id]).filter((name): name is string => typeof name === 'string') ?? [];
@@ -226,7 +226,7 @@ export const scriptsRouter = createTRPCRouter({
// Filter cards to only include scripts from enabled repositories // Filter cards to only include scripts from enabled repositories
// For backward compatibility, include scripts without repository_url // For backward compatibility, include scripts without repository_url
const filteredCards = cardsWithCategories.filter(card => { const filteredCards = cardsWithCategories.filter((card: ScriptCard) => {
const repoUrl = card.repository_url; const repoUrl = card.repository_url;
// If script has no repository_url, include it for backward compatibility // If script has no repository_url, include it for backward compatibility

View File

@@ -1,10 +1,10 @@
import 'dotenv/config' import 'dotenv/config'
import { PrismaClient } from '../../prisma/generated/prisma/client.js' import { PrismaClient } from '../../prisma/generated/prisma'
import { PrismaBetterSQLite3 } from '@prisma/adapter-better-sqlite3' import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'
const globalForPrisma = globalThis; const globalForPrisma = globalThis;
const adapter = new PrismaBetterSQLite3({ url: process.env.DATABASE_URL! }); const adapter = new PrismaBetterSqlite3({ url: process.env.DATABASE_URL });
export const prisma = globalForPrisma.prisma ?? new PrismaClient({ adapter }); export const prisma = globalForPrisma.prisma ?? new PrismaClient({ adapter });

View File

@@ -1,10 +1,10 @@
import 'dotenv/config' import 'dotenv/config'
import { PrismaClient } from '../../prisma/generated/prisma/client.js' import { PrismaClient } from '../../prisma/generated/prisma'
import { PrismaBetterSQLite3 } from '@prisma/adapter-better-sqlite3' import { PrismaBetterSqlite3 } from '@prisma/adapter-better-sqlite3'
const globalForPrisma = globalThis as { prisma?: PrismaClient }; const globalForPrisma = globalThis as { prisma?: PrismaClient };
const adapter = new PrismaBetterSQLite3({ url: process.env.DATABASE_URL! }); const adapter = new PrismaBetterSqlite3({ url: process.env.DATABASE_URL! });
export const prisma: PrismaClient = globalForPrisma.prisma ?? new PrismaClient({ export const prisma: PrismaClient = globalForPrisma.prisma ?? new PrismaClient({
adapter, adapter,