Skip to main content
Glama

Prisma MCP Server

Official
by prisma
Apache 2.0
4
44,192
  • Linux
  • Apple
buildGetWasmModule.test.ts3.43 kB
import { capitalize } from '@prisma/client-common' import { describe, expect, it } from 'vitest' import { supportedInternalRuntimes } from '../../src/runtime-targets' import { buildGetWasmModule, type BuildWasmModuleOptions as Options } from '../../src/utils/wasm' import { assertTypeScriptIsValid } from '../assert-typescript-is-valid' /** * Fixed input values for `buildGetWasmModule`. */ const ACTIVE_CONNECTOR_TYPE = 'postgresql' satisfies Options['activeProvider'] const RUNTIME_BASE = '.' satisfies Options['runtimeBase'] type MakeTypeScriptFilesInput = { component: Options['component'] output: string } function makeTypeScriptFiles({ component, output }: MakeTypeScriptFilesInput) { const CONFIG_BANNER = `let config = { ${component}Wasm: undefined } as { ${component}Wasm?: { getRuntime: () => Promise<unknown> getQuery${capitalize(component)}WasmModule: () => Promise<WebAssembly.Module> } } ` return { './buildGetWasmModule.ts': `${CONFIG_BANNER}${output}`, [`./query_${component}_bg.postgresql.mjs`]: 'export const runtime = ``', [`./query_${component}_bg.postgresql.js`]: 'module.exports = { runtime: `` }', [`./query_${component}_bg.js`]: 'export const runtime = ``', [`./query_${component}_bg.postgresql.wasm-base64.js`]: 'module.exports = { wasm: `` }\n', [`./query_${component}_bg.postgresql.wasm-base64.mjs`]: 'export const wasm = ``\n', } as const } /** * Possible input values for `buildGetWasmModule`. */ const components = ['engine', 'compiler'] as const satisfies Array<Options['component']> const runtimeNames = ['library', 'client', 'wasm-compiler-edge', 'edge'] as const satisfies Array< Options['runtimeName'] > const targets = supportedInternalRuntimes const moduleFormats = ['cjs', 'esm'] as const satisfies Array<Options['moduleFormat']> type CombinationName = `${Options['component']}-${Options['runtimeName']}-${Options['target']}-${Options['moduleFormat']}` function makeTestCombinations() { const combinations: Array<Omit<Options, 'runtimeBase' | 'activeProvider'> & { testName: CombinationName }> = [] for (const component of components) { for (const runtimeName of runtimeNames) { for (const target of targets) { // Skip impossible combinations if (['edge', 'wasm-compiler-edge'].includes(runtimeName) && !['vercel-edge', 'workerd'].includes(target)) { continue } for (const moduleFormat of moduleFormats) { const testName = `${component}-${runtimeName}-${target}-${moduleFormat}` as const combinations.push({ testName, component, runtimeName, target, moduleFormat, }) } } } } return combinations } const allCombinations = makeTestCombinations() describe('buildGetWasmModule', () => { it.concurrent.each(allCombinations)( 'generates valid TypeScript', ({ testName, component, moduleFormat, runtimeName, target }) => { const output = buildGetWasmModule({ component, runtimeName, runtimeBase: RUNTIME_BASE, target, activeProvider: ACTIVE_CONNECTOR_TYPE, moduleFormat, }) expect(output).toMatchSnapshot(`${testName}.ts`) assertTypeScriptIsValid({ moduleFormat, files: makeTypeScriptFiles({ component, output }), }) }, ) })

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