MCPcopy
hub / github.com/Effect-TS/effect / findOne

Function findOne

packages/sql/src/SqlSchema.ts:60–74  ·  view source on GitHub ↗
(
  options: {
    readonly Request: Schema.Schema<IA, II, IR>
    readonly Result: Schema.Schema<A, AI, AR>
    readonly execute: (request: II) => Effect.Effect<ReadonlyArray<unknown>, E, R>
  }
)

Source from the content-addressed store, hash-verified

58 * @category constructor
59 */
60export const findOne = <IR, II, IA, AR, AI, A, R, E>(
61 options: {
62 readonly Request: Schema.Schema<IA, II, IR>
63 readonly Result: Schema.Schema<A, AI, AR>
64 readonly execute: (request: II) => Effect.Effect<ReadonlyArray<unknown>, E, R>
65 }
66) => {
67 const encodeRequest = Schema.encode(options.Request)
68 const decode = Schema.decodeUnknown(options.Result)
69 return (request: IA): Effect.Effect<Option.Option<A>, E | ParseError, R | IR | AR> =>
70 Effect.flatMap(
71 Effect.flatMap(encodeRequest(request), options.execute),
72 (arr) => Array.isArray(arr) && arr.length > 0 ? Effect.asSome(decode(arr[0])) : Effect.succeedNone
73 )
74}
75
76/**
77 * Run a sql query with a request schema and a result schema and return the first result.

Callers

nothing calls this directly

Calls 2

encodeMethod · 0.80
decodeFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…