Skip to main content
Glama

Prisma MCP Server

Official
by prisma
Apache 2.0
4
44,213
  • Linux
  • Apple
tests.ts5.97 kB
import { ClientEngineType } from '@prisma/internals' import fs from 'fs/promises' import path from 'path' import testMatrix from './_matrix' const libraryRuntime = 'runtime/library' const binaryRuntime = 'runtime/binary' const edgeRuntime = 'runtime/edge' const wasmRuntime = 'runtime/wasm-engine-edge' const nftAnnotation = '// file annotations for bundling tools' const wasmFileUsage = '#wasm-engine-loader' testMatrix.setupTestSuite( ({ engineType, clientRuntime, generatorType }, suiteMeta, clientMeta) => { const clientEntrypoint = `generated/prisma/client/${clientRuntime === 'node' ? 'index' : clientRuntime}.js` const clientEntrypointPath = path.join(suiteMeta.generatedFolder, clientEntrypoint) describeIf(generatorType === 'prisma-client-js')('runtime bundles in JS client', () => { test('imports correct runtime', async () => { const generatedClientContents = await fs.readFile(clientEntrypointPath, 'utf-8') if (clientMeta.dataProxy && clientRuntime === 'edge') { expect(generatedClientContents).toContain(edgeRuntime) expect(generatedClientContents).not.toContain(libraryRuntime) expect(generatedClientContents).not.toContain(binaryRuntime) expect(generatedClientContents).not.toContain(wasmRuntime) } else if (clientMeta.dataProxy && engineType === ClientEngineType.Library) { expect(generatedClientContents).toContain(libraryRuntime) expect(generatedClientContents).not.toContain(edgeRuntime) expect(generatedClientContents).not.toContain(binaryRuntime) expect(generatedClientContents).not.toContain(wasmRuntime) } else if (clientMeta.dataProxy && engineType === ClientEngineType.Binary) { expect(generatedClientContents).toContain(binaryRuntime) expect(generatedClientContents).not.toContain(edgeRuntime) expect(generatedClientContents).not.toContain(libraryRuntime) expect(generatedClientContents).not.toContain(wasmRuntime) } else if (engineType === ClientEngineType.Library && clientRuntime === 'node') { expect(generatedClientContents).toContain(libraryRuntime) expect(generatedClientContents).not.toContain(edgeRuntime) expect(generatedClientContents).not.toContain(binaryRuntime) expect(generatedClientContents).not.toContain(wasmRuntime) } else if (engineType === ClientEngineType.Binary && clientRuntime === 'node') { expect(generatedClientContents).toContain(binaryRuntime) expect(generatedClientContents).not.toContain(edgeRuntime) expect(generatedClientContents).not.toContain(libraryRuntime) expect(generatedClientContents).not.toContain(wasmRuntime) } else if (clientMeta.driverAdapter && clientRuntime === 'node') { expect(generatedClientContents).toContain(libraryRuntime) expect(generatedClientContents).not.toContain(edgeRuntime) expect(generatedClientContents).not.toContain(binaryRuntime) expect(generatedClientContents).not.toContain(wasmRuntime) } else if (clientMeta.driverAdapter && clientRuntime === 'edge') { expect(generatedClientContents).toContain(edgeRuntime) expect(generatedClientContents).not.toContain(libraryRuntime) expect(generatedClientContents).not.toContain(binaryRuntime) expect(generatedClientContents).not.toContain(wasmRuntime) } else if (clientMeta.driverAdapter && clientRuntime === 'wasm-engine-edge') { expect(generatedClientContents).toContain(wasmRuntime) expect(generatedClientContents).not.toContain(libraryRuntime) expect(generatedClientContents).not.toContain(binaryRuntime) expect(generatedClientContents).not.toContain(edgeRuntime) } else { throw new Error('Unhandled case') } }) test('imported files have the expected annotations', async () => { const generatedClientContents = await fs.readFile(clientEntrypointPath, 'utf-8') if (clientMeta.dataProxy && clientRuntime === 'edge') { expect(generatedClientContents).not.toContain(nftAnnotation) expect(generatedClientContents).not.toContain(wasmFileUsage) } else if (clientMeta.dataProxy && engineType === ClientEngineType.Library) { expect(generatedClientContents).not.toContain(nftAnnotation) expect(generatedClientContents).not.toContain(wasmFileUsage) } else if (clientMeta.dataProxy && engineType === ClientEngineType.Binary) { expect(generatedClientContents).not.toContain(nftAnnotation) expect(generatedClientContents).not.toContain(wasmFileUsage) } else if (engineType === ClientEngineType.Library && clientRuntime === 'node') { expect(generatedClientContents).toContain(nftAnnotation) expect(generatedClientContents).not.toContain(wasmFileUsage) } else if (engineType === ClientEngineType.Binary && clientRuntime === 'node') { expect(generatedClientContents).toContain(nftAnnotation) expect(generatedClientContents).not.toContain(wasmFileUsage) } else if (clientMeta.driverAdapter && clientRuntime === 'node') { expect(generatedClientContents).toContain(nftAnnotation) expect(generatedClientContents).not.toContain(wasmFileUsage) } else if (clientMeta.driverAdapter && clientRuntime === 'edge') { expect(generatedClientContents).not.toContain(nftAnnotation) expect(generatedClientContents).not.toContain(wasmFileUsage) } else if (clientMeta.driverAdapter && clientRuntime === 'wasm-engine-edge') { expect(generatedClientContents).not.toContain(nftAnnotation) expect(generatedClientContents).toContain(wasmFileUsage) } else { throw new Error('Unhandled case') } }) }) }, { skipDefaultClientInstance: true, }, )

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