UNPKG

@algochad/prisma-core

Version:

A comprehensive NestJS library that provides EF-Core-like operations using Prisma and GraphQL. Features LINQ-style query builders, advanced data manipulation, GraphQL integration with genql, and a unified API for both Prisma and GraphQL operations. Includ

65 lines (64 loc) 2.06 kB
import { DatabaseDialect } from './database-dialect'; export interface IColumnInfo { name: string; type: 'string' | 'number' | 'boolean' | 'date' | 'json' | 'bytes' | 'decimal' | 'bigint'; isOptional: boolean; isArray: boolean; isId: boolean; isUnique: boolean; isList: boolean; relationName?: string; relationFromFields?: string[]; relationToFields?: string[]; default?: any; } export interface ITableSchema { tableName: string; modelName: string; columns: Map<string, IColumnInfo>; primaryKey: string[]; uniqueConstraints: string[][]; relations: Map<string, IRelationInfo>; indexes: IIndexInfo[]; } export interface IRelationInfo { name: string; type: 'one-to-one' | 'one-to-many' | 'many-to-one' | 'many-to-many'; model: string; fields: string[]; references: string[]; isOptional: boolean; } export interface IIndexInfo { name: string; fields: string[]; isUnique: boolean; type?: string; } export interface IDatabaseSchema { tables: Map<string, ITableSchema>; enums: Map<string, string[]>; dialect: DatabaseDialect; version: string; } export declare class SchemaInspector { private static schemaCache; private static lastInspectionTime; private static readonly CACHE_DURATION; static inspectSchema(prismaClient: any): Promise<IDatabaseSchema>; static getTableSchema(prismaClient: any, modelName: string): Promise<ITableSchema | null>; private static extractSchemaFromClient; private static extractTableSchema; private static determineRelationType; private static mapPrismaTypeToColumnType; private static getTableName; private static getDMMF; private static detectDialect; private static getVersion; private static getClientId; static clearCache(): void; static getCachedSchema(prismaClient: any): IDatabaseSchema | null; private static extractSchemaFromClientFallback; private static extractModelNamesFromClient; private static detectDialectFallback; }