Skip to main content
Glama

Prisma MCP Server

Official
by prisma
Apache 2.0
4
44,192
  • Linux
  • Apple
common.ts14.8 kB
import indent from 'indent-string' import { TAB_SIZE } from './constants' import type { TSClientOptions } from './TSClient' export const commonCodeJS = ({ runtimeBase, runtimeNameJs, browser, clientVersion, engineVersion, generator, }: TSClientOptions): string => ` Object.defineProperty(exports, "__esModule", { value: true }); ${ browser ? ` const { Decimal, objectEnumValues, makeStrictEnum, Public, getRuntime, skip } = require('${runtimeBase}/${runtimeNameJs}.js') ` : ` const { PrismaClientKnownRequestError, PrismaClientUnknownRequestError, PrismaClientRustPanicError, PrismaClientInitializationError, PrismaClientValidationError, getPrismaClient, sqltag, empty, join, raw, skip, Decimal, Debug, objectEnumValues, makeStrictEnum, Extensions, warnOnce, defineDmmfProperty, Public, getRuntime, createParam, } = require('${runtimeBase}/${runtimeNameJs}.js') ` } const Prisma = {} exports.Prisma = Prisma exports.$Enums = {} /** * Prisma Client JS version: ${clientVersion} * Query Engine version: ${engineVersion} */ Prisma.prismaVersion = { client: "${clientVersion}", engine: "${engineVersion}" } Prisma.PrismaClientKnownRequestError = ${notSupportOnBrowser('PrismaClientKnownRequestError', browser)}; Prisma.PrismaClientUnknownRequestError = ${notSupportOnBrowser('PrismaClientUnknownRequestError', browser)} Prisma.PrismaClientRustPanicError = ${notSupportOnBrowser('PrismaClientRustPanicError', browser)} Prisma.PrismaClientInitializationError = ${notSupportOnBrowser('PrismaClientInitializationError', browser)} Prisma.PrismaClientValidationError = ${notSupportOnBrowser('PrismaClientValidationError', browser)} Prisma.Decimal = Decimal /** * Re-export of sql-template-tag */ Prisma.sql = ${notSupportOnBrowser('sqltag', browser)} Prisma.empty = ${notSupportOnBrowser('empty', browser)} Prisma.join = ${notSupportOnBrowser('join', browser)} Prisma.raw = ${notSupportOnBrowser('raw', browser)} Prisma.validator = Public.validator /** * Extensions */ Prisma.getExtensionContext = ${notSupportOnBrowser('Extensions.getExtensionContext', browser)} Prisma.defineExtension = ${notSupportOnBrowser('Extensions.defineExtension', browser)} /** * Shorthand utilities for JSON filtering */ Prisma.DbNull = objectEnumValues.instances.DbNull Prisma.JsonNull = objectEnumValues.instances.JsonNull Prisma.AnyNull = objectEnumValues.instances.AnyNull Prisma.NullTypes = { DbNull: objectEnumValues.classes.DbNull, JsonNull: objectEnumValues.classes.JsonNull, AnyNull: objectEnumValues.classes.AnyNull } ${buildPrismaSkipJs(generator.previewFeatures)} ` export const notSupportOnBrowser = (fnc: string, browser?: boolean) => { if (browser) { return `() => { const runtimeName = getRuntime().prettyName; throw new Error(\`${fnc} is unable to run in this browser environment, or has been bundled for the browser (running in \${runtimeName}). In case this error is unexpected for you, please report it in https://pris.ly/prisma-prisma-bug-report\`, )}` } return fnc } export const commonCodeTS = ({ runtimeBase, runtimeNameTs, clientVersion, engineVersion, generator, }: TSClientOptions) => ({ tsWithoutNamespace: () => `import * as runtime from '${runtimeBase}/${runtimeNameTs}'; import $Types = runtime.Types // general types import $Public = runtime.Types.Public import $Utils = runtime.Types.Utils import $Extensions = runtime.Types.Extensions import $Result = runtime.Types.Result export type PrismaPromise<T> = $Public.PrismaPromise<T> `, ts: () => `export import DMMF = runtime.DMMF export type PrismaPromise<T> = $Public.PrismaPromise<T> /** * Validator */ export import validator = runtime.Public.validator /** * Prisma Errors */ export import PrismaClientKnownRequestError = runtime.PrismaClientKnownRequestError export import PrismaClientUnknownRequestError = runtime.PrismaClientUnknownRequestError export import PrismaClientRustPanicError = runtime.PrismaClientRustPanicError export import PrismaClientInitializationError = runtime.PrismaClientInitializationError export import PrismaClientValidationError = runtime.PrismaClientValidationError /** * Re-export of sql-template-tag */ export import sql = runtime.sqltag export import empty = runtime.empty export import join = runtime.join export import raw = runtime.raw export import Sql = runtime.Sql ${buildPrismaSkipTs(generator.previewFeatures)} /** * Decimal.js */ export import Decimal = runtime.Decimal export type DecimalJsLike = runtime.DecimalJsLike /** * Metrics */ export type Metrics = runtime.Metrics export type Metric<T> = runtime.Metric<T> export type MetricHistogram = runtime.MetricHistogram export type MetricHistogramBucket = runtime.MetricHistogramBucket /** * Extensions */ export import Extension = $Extensions.UserArgs export import getExtensionContext = runtime.Extensions.getExtensionContext export import Args = $Public.Args export import Payload = $Public.Payload export import Result = $Public.Result export import Exact = $Public.Exact /** * Prisma Client JS version: ${clientVersion} * Query Engine version: ${engineVersion} */ export type PrismaVersion = { client: string } export const prismaVersion: PrismaVersion /** * Utility Types */ export import Bytes = runtime.Bytes export import JsonObject = runtime.JsonObject export import JsonArray = runtime.JsonArray export import JsonValue = runtime.JsonValue export import InputJsonObject = runtime.InputJsonObject export import InputJsonArray = runtime.InputJsonArray export import InputJsonValue = runtime.InputJsonValue /** * Types of the values used to represent different kinds of \`null\` values when working with JSON fields. * * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field */ namespace NullTypes { ${buildNullClass('DbNull')} ${buildNullClass('JsonNull')} ${buildNullClass('AnyNull')} } /** * Helper for filtering JSON entries that have \`null\` on the database (empty on the db) * * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field */ export const DbNull: NullTypes.DbNull /** * Helper for filtering JSON entries that have JSON \`null\` values (not empty on the db) * * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field */ export const JsonNull: NullTypes.JsonNull /** * Helper for filtering JSON entries that are \`Prisma.DbNull\` or \`Prisma.JsonNull\` * * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field */ export const AnyNull: NullTypes.AnyNull type SelectAndInclude = { select: any include: any } type SelectAndOmit = { select: any omit: any } /** * Get the type of the value, that the Promise holds. */ export type PromiseType<T extends PromiseLike<any>> = T extends PromiseLike<infer U> ? U : T; /** * Get the return type of a function which returns a Promise. */ export type PromiseReturnType<T extends (...args: any) => $Utils.JsPromise<any>> = PromiseType<ReturnType<T>> /** * From T, pick a set of properties whose keys are in the union K */ type Prisma__Pick<T, K extends keyof T> = { [P in K]: T[P]; }; export type Enumerable<T> = T | Array<T>; export type RequiredKeys<T> = { [K in keyof T]-?: {} extends Prisma__Pick<T, K> ? never : K }[keyof T] export type TruthyKeys<T> = keyof { [K in keyof T as T[K] extends false | undefined | null ? never : K]: K } export type TrueKeys<T> = TruthyKeys<Prisma__Pick<T, RequiredKeys<T>>> /** * Subset * @desc From \`T\` pick properties that exist in \`U\`. Simple version of Intersection */ export type Subset<T, U> = { [key in keyof T]: key extends keyof U ? T[key] : never; }; /** * SelectSubset * @desc From \`T\` pick properties that exist in \`U\`. Simple version of Intersection. * Additionally, it validates, if both select and include are present. If the case, it errors. */ export type SelectSubset<T, U> = { [key in keyof T]: key extends keyof U ? T[key] : never } & (T extends SelectAndInclude ? 'Please either choose \`select\` or \`include\`.' : T extends SelectAndOmit ? 'Please either choose \`select\` or \`omit\`.' : {}) /** * Subset + Intersection * @desc From \`T\` pick properties that exist in \`U\` and intersect \`K\` */ export type SubsetIntersection<T, U, K> = { [key in keyof T]: key extends keyof U ? T[key] : never } & K type Without<T, U> = { [P in Exclude<keyof T, keyof U>]?: never }; /** * XOR is needed to have a real mutually exclusive union type * https://stackoverflow.com/questions/42123407/does-typescript-support-mutually-exclusive-types */ type XOR<T, U> = T extends object ? U extends object ? (Without<T, U> & U) | (Without<U, T> & T) : U : T /** * Is T a Record? */ type IsObject<T extends any> = T extends Array<any> ? False : T extends Date ? False : T extends Uint8Array ? False : T extends BigInt ? False : T extends object ? True : False /** * If it's T[], return T */ export type UnEnumerate<T extends unknown> = T extends Array<infer U> ? U : T /** * From ts-toolbelt */ type __Either<O extends object, K extends Key> = Omit<O, K> & { // Merge all but K [P in K]: Prisma__Pick<O, P & keyof O> // With K possibilities }[K] type EitherStrict<O extends object, K extends Key> = Strict<__Either<O, K>> type EitherLoose<O extends object, K extends Key> = ComputeRaw<__Either<O, K>> type _Either< O extends object, K extends Key, strict extends Boolean > = { 1: EitherStrict<O, K> 0: EitherLoose<O, K> }[strict] type Either< O extends object, K extends Key, strict extends Boolean = 1 > = O extends unknown ? _Either<O, K, strict> : never export type Union = any type PatchUndefined<O extends object, O1 extends object> = { [K in keyof O]: O[K] extends undefined ? At<O1, K> : O[K] } & {} /** Helper Types for "Merge" **/ export type IntersectOf<U extends Union> = ( U extends unknown ? (k: U) => void : never ) extends (k: infer I) => void ? I : never export type Overwrite<O extends object, O1 extends object> = { [K in keyof O]: K extends keyof O1 ? O1[K] : O[K]; } & {}; type _Merge<U extends object> = IntersectOf<Overwrite<U, { [K in keyof U]-?: At<U, K>; }>>; type Key = string | number | symbol; type AtBasic<O extends object, K extends Key> = K extends keyof O ? O[K] : never; type AtStrict<O extends object, K extends Key> = O[K & keyof O]; type AtLoose<O extends object, K extends Key> = O extends unknown ? AtStrict<O, K> : never; export type At<O extends object, K extends Key, strict extends Boolean = 1> = { 1: AtStrict<O, K>; 0: AtLoose<O, K>; }[strict]; export type ComputeRaw<A extends any> = A extends Function ? A : { [K in keyof A]: A[K]; } & {}; export type OptionalFlat<O> = { [K in keyof O]?: O[K]; } & {}; type _Record<K extends keyof any, T> = { [P in K]: T; }; // cause typescript not to expand types and preserve names type NoExpand<T> = T extends unknown ? T : never; // this type assumes the passed object is entirely optional type AtLeast<O extends object, K extends string> = NoExpand< O extends unknown ? | (K extends keyof O ? { [P in K]: O[P] } & O : O) | {[P in keyof O as P extends K ? P : never]-?: O[P]} & O : never>; type _Strict<U, _U = U> = U extends unknown ? U & OptionalFlat<_Record<Exclude<Keys<_U>, keyof U>, never>> : never; export type Strict<U extends object> = ComputeRaw<_Strict<U>>; /** End Helper Types for "Merge" **/ export type Merge<U extends object> = ComputeRaw<_Merge<Strict<U>>>; /** A [[Boolean]] */ export type Boolean = True | False // /** // 1 // */ export type True = 1 /** 0 */ export type False = 0 export type Not<B extends Boolean> = { 0: 1 1: 0 }[B] export type Extends<A1 extends any, A2 extends any> = [A1] extends [never] ? 0 // anything \`never\` is false : A1 extends A2 ? 1 : 0 export type Has<U extends Union, U1 extends Union> = Not< Extends<Exclude<U1, U>, U1> > export type Or<B1 extends Boolean, B2 extends Boolean> = { 0: { 0: 0 1: 1 } 1: { 0: 1 1: 1 } }[B1][B2] export type Keys<U extends Union> = U extends unknown ? keyof U : never type Cast<A, B> = A extends B ? A : B; export const type: unique symbol; /** * Used by group by */ export type GetScalarType<T, O> = O extends object ? { [P in keyof T]: P extends keyof O ? O[P] : never } : never type FieldPaths< T, U = Omit<T, '_avg' | '_sum' | '_count' | '_min' | '_max'> > = IsObject<T> extends True ? U : T type GetHavingFields<T> = { [K in keyof T]: Or< Or<Extends<'OR', K>, Extends<'AND', K>>, Extends<'NOT', K> > extends True ? // infer is only needed to not hit TS limit // based on the brilliant idea of Pierre-Antoine Mills // https://github.com/microsoft/TypeScript/issues/30188#issuecomment-478938437 T[K] extends infer TK ? GetHavingFields<UnEnumerate<TK> extends object ? Merge<UnEnumerate<TK>> : never> : never : {} extends FieldPaths<T[K]> ? never : K }[keyof T] /** * Convert tuple to union */ type _TupleToUnion<T> = T extends (infer E)[] ? E : never type TupleToUnion<K extends readonly any[]> = _TupleToUnion<K> type MaybeTupleToUnion<T> = T extends any[] ? TupleToUnion<T> : T /** * Like \`Pick\`, but additionally can also accept an array of keys */ type PickEnumerable<T, K extends Enumerable<keyof T> | keyof T> = Prisma__Pick<T, MaybeTupleToUnion<K>> /** * Exclude all keys with underscores */ type ExcludeUnderscoreKeys<T extends string> = T extends \`_$\{string}\` ? never : T export type FieldRef<Model, FieldType> = runtime.FieldRef<Model, FieldType> type FieldRefInputType<Model, FieldType> = Model extends never ? never : FieldRef<Model, FieldType> `, }) function buildNullClass(name: string) { const source = `/** * Type of \`Prisma.${name}\`. * * You cannot use other instances of this class. Please use the \`Prisma.${name}\` value. * * @see https://www.prisma.io/docs/concepts/components/prisma-client/working-with-fields/working-with-json-fields#filtering-on-a-json-field */ class ${name} { private ${name}: never private constructor() }` return indent(source, TAB_SIZE) } function buildPrismaSkipTs(previewFeatures: string[]) { if (previewFeatures.includes('strictUndefinedChecks')) { return ` /** * Prisma.skip */ export import skip = runtime.skip ` } return '' } function buildPrismaSkipJs(previewFeatures: string[]) { if (previewFeatures.includes('strictUndefinedChecks')) { return ` Prisma.skip = skip ` } return '' }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/prisma/prisma'

If you have feedback or need assistance with the MCP directory API, please join our Discord server