Skip to main content
Glama

Prisma MCP Server

Official
by prisma
Apache 2.0
4
44,192
  • Linux
  • Apple
pipe.ts6.27 kB
/* eslint-disable @typescript-eslint/no-unsafe-argument */ import type { A, F } from 'ts-toolbelt' import { skip } from './transduce' function pipeSync(fn: F.Function, ...fns: F.Function[]) { return (...args: unknown[]) => { let result = fn(...args) for (let i = 0; result !== skip && i < fns.length; ++i) { result = fns[i](result) } return result } } function pipeAsync(fn: F.Function, ...fns: F.Function[]) { return async (...args: unknown[]) => { let result = await fn(...args) for (let i = 0; result !== skip && i < fns.length; ++i) { result = await fns[i](result) } return result } } /** * Pipe the input and output of functions. * * @param fn parameter-taking function * @param fns subsequent piped functions * @returns */ const pipe = pipeSync as PipeMultiSync & { async: PipeMultiAsync } pipe.async = pipeAsync // TODO: use the one from ts-toolbelt (broken atm since ts 4.1) export declare type PipeMultiSync = { <R0, P extends any[]>(...fns: [F.Function<P, R0>]): F.Function<P, R0> <R0, R1, P extends any[]>(...fns: [F.Function<P, R0>, F.Function<[R0], R1>]): F.Function<P, R1> <R0, R1, R2, P extends any[]>( ...fns: [F.Function<P, R0>, F.Function<[R0], R1>, F.Function<[R1], R2>] ): F.Function<P, R2> <R0, R1, R2, R3, P extends any[]>( ...fns: [F.Function<P, R0>, F.Function<[R0], R1>, F.Function<[R1], R2>, F.Function<[R2], R3>] ): F.Function<P, R3> <R0, R1, R2, R3, R4, P extends any[]>( ...fns: [F.Function<P, R0>, F.Function<[R0], R1>, F.Function<[R1], R2>, F.Function<[R2], R3>, F.Function<[R3], R4>] ): F.Function<P, R4> <R0, R1, R2, R3, R4, R5, P extends any[]>( ...fns: [ F.Function<P, R0>, F.Function<[R0], R1>, F.Function<[R1], R2>, F.Function<[R2], R3>, F.Function<[R3], R4>, F.Function<[R4], R5>, ] ): F.Function<P, R5> <R0, R1, R2, R3, R4, R5, R6, P extends any[]>( ...fns: [ F.Function<P, R0>, F.Function<[R0], R1>, F.Function<[R1], R2>, F.Function<[R2], R3>, F.Function<[R3], R4>, F.Function<[R4], R5>, F.Function<[R5], R6>, ] ): F.Function<P, R6> <R0, R1, R2, R3, R4, R5, R6, R7, P extends any[]>( ...fns: [ F.Function<P, R0>, F.Function<[R0], R1>, F.Function<[R1], R2>, F.Function<[R2], R3>, F.Function<[R3], R4>, F.Function<[R4], R5>, F.Function<[R5], R6>, F.Function<[R6], R7>, ] ): F.Function<P, R7> <R0, R1, R2, R3, R4, R5, R6, R7, R8, P extends any[]>( ...fns: [ F.Function<P, R0>, F.Function<[R0], R1>, F.Function<[R1], R2>, F.Function<[R2], R3>, F.Function<[R3], R4>, F.Function<[R4], R5>, F.Function<[R5], R6>, F.Function<[R6], R7>, F.Function<[R7], R8>, ] ): F.Function<P, R8> <R0, R1, R2, R3, R4, R5, R6, R7, R8, R9, P extends any[]>( ...fns: [ F.Function<P, R0>, F.Function<[R0], R1>, F.Function<[R1], R2>, F.Function<[R2], R3>, F.Function<[R3], R4>, F.Function<[R4], R5>, F.Function<[R5], R6>, F.Function<[R6], R7>, F.Function<[R7], R8>, F.Function<[R8], R9>, ] ): F.Function<P, R9> } export declare type PipeMultiAsync = { // eslint-disable-next-line prettier/prettier <R0, P extends any[]>(...fns: [F.Function<P, R0>]): F.Function<P, Promise<A.Await<R0>>> <R0, R1, P extends any[]>( // eslint-disable-next-line prettier/prettier ...fns: [F.Function<P, R0>, F.Function<[A.Await<R0>], R1>] ): F.Function<P, Promise<A.Await<R1>>> <R0, R1, R2, P extends any[]>( ...fns: [F.Function<P, R0>, F.Function<[A.Await<R0>], R1>, F.Function<[A.Await<R1>], R2>] ): F.Function<P, Promise<A.Await<R2>>> <R0, R1, R2, R3, P extends any[]>( ...fns: [ F.Function<P, R0>, F.Function<[A.Await<R0>], R1>, F.Function<[A.Await<R1>], R2>, F.Function<[A.Await<R2>], R3>, ] ): F.Function<P, Promise<A.Await<R3>>> <R0, R1, R2, R3, R4, P extends any[]>( ...fns: [ F.Function<P, R0>, F.Function<[A.Await<R0>], R1>, F.Function<[A.Await<R1>], R2>, F.Function<[A.Await<R2>], R3>, F.Function<[A.Await<R3>], R4>, ] ): F.Function<P, Promise<A.Await<R4>>> <R0, R1, R2, R3, R4, R5, P extends any[]>( ...fns: [ F.Function<P, R0>, F.Function<[A.Await<R0>], R1>, F.Function<[A.Await<R1>], R2>, F.Function<[A.Await<R2>], R3>, F.Function<[A.Await<R3>], R4>, F.Function<[A.Await<R4>], R5>, ] ): F.Function<P, Promise<A.Await<R5>>> <R0, R1, R2, R3, R4, R5, R6, P extends any[]>( ...fns: [ F.Function<P, R0>, F.Function<[A.Await<R0>], R1>, F.Function<[A.Await<R1>], R2>, F.Function<[A.Await<R2>], R3>, F.Function<[A.Await<R3>], R4>, F.Function<[A.Await<R4>], R5>, F.Function<[A.Await<R5>], R6>, ] ): F.Function<P, Promise<A.Await<R6>>> <R0, R1, R2, R3, R4, R5, R6, R7, P extends any[]>( ...fns: [ F.Function<P, R0>, F.Function<[A.Await<R0>], R1>, F.Function<[A.Await<R1>], R2>, F.Function<[A.Await<R2>], R3>, F.Function<[A.Await<R3>], R4>, F.Function<[A.Await<R4>], R5>, F.Function<[A.Await<R5>], R6>, F.Function<[A.Await<R6>], R7>, ] ): F.Function<P, Promise<A.Await<R7>>> <R0, R1, R2, R3, R4, R5, R6, R7, R8, P extends any[]>( ...fns: [ F.Function<P, R0>, F.Function<[A.Await<R0>], R1>, F.Function<[A.Await<R1>], R2>, F.Function<[A.Await<R2>], R3>, F.Function<[A.Await<R3>], R4>, F.Function<[A.Await<R4>], R5>, F.Function<[A.Await<R5>], R6>, F.Function<[A.Await<R6>], R7>, F.Function<[A.Await<R7>], R8>, ] ): F.Function<P, Promise<A.Await<R8>>> <R0, R1, R2, R3, R4, R5, R6, R7, R8, R9, P extends any[]>( ...fns: [ F.Function<P, R0>, F.Function<[A.Await<R0>], R1>, F.Function<[A.Await<R1>], R2>, F.Function<[A.Await<R2>], R3>, F.Function<[A.Await<R3>], R4>, F.Function<[A.Await<R4>], R5>, F.Function<[A.Await<R5>], R6>, F.Function<[A.Await<R6>], R7>, F.Function<[A.Await<R7>], R8>, F.Function<[A.Await<R8>], R9>, ] ): F.Function<P, Promise<A.Await<R9>>> } export { pipe }

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