Procedure
Typed metadata builders for Microsoft SQL Server stored procedure calls.
This module defines the Procedure values consumed by MssqlClient.call. make starts a procedure definition, param and outputParam add typed Tedious parameter metadata, withRows sets the expected row type, and compile binds input values before execution. The module also defines the typed result shape for output parameters and returned rows.
Combinators
Signature
declare function compile<
I extends Record<string, Parameter<any>>,
O extends Record<string, Parameter<any>>,
A,
>(
self: Procedure<I, O, A>,
): (input: {
[K in string | number | symbol]: I[K] extends Parameter<T> ? T : never;
}) => ProcedureWithValues<I, O, A>;outputParam
Adds a typed output parameter to a SQL Server stored procedure definition.
Signature
declare function outputParam<A>(): <N extends string, T extends DataType>(
name: N,
type: T,
options?: any,
) => <I extends Record<string, Parameter<any>>, O extends Record<string, Parameter<any>>>(
self: Procedure<I, O>,
) => Procedure<I, { [K in string | number | symbol]: O & { [K in string]: Parameter<A> }[K] }>;Adds a typed input parameter to a SQL Server stored procedure definition.
Signature
declare function param<A>(): <N extends string, T extends DataType>(
name: N,
type: T,
options?: any,
) => <I extends Record<string, Parameter<any>>, O extends Record<string, Parameter<any>>>(
self: Procedure<I, O>,
) => Procedure<{ [K in string | number | symbol]: I & { [K in string]: Parameter<A> }[K] }, O>;Sets the expected row type for a SQL Server stored procedure definition.
Signature
declare function withRows<A extends object = Row>(): <
I extends Record<string, Parameter<any>>,
O extends Record<string, Parameter<any>>,
>(
self: Procedure<I, O>,
) => Procedure<I, O, A>;Constructors
Models
Pipeable definition of a SQL Server stored procedure, tracking its input parameters, output parameters, and result row type.
Signature
interface Procedure<
I extends Record<string, Parameter.Parameter<any>>,
O extends Record<string, Parameter.Parameter<any>>,
A = never,
> extends Pipeable {
readonly _tag: "Procedure";
readonly "~@effect/sql-mssql/Procedure": {
readonly _A: Covariant<A>;
};
readonly name: string;
readonly outputParams: O;
readonly params: I;
}ProcedureWithValues interface
Stored procedure definition with concrete input values bound for execution.
Signature
interface ProcedureWithValues<
I extends Record<string, Parameter.Parameter<any>>,
O extends Record<string, Parameter.Parameter<any>>,
A,
> extends Procedure<I, O, A> {
readonly values: { [K in string | number | symbol]: I[K] extends Parameter<T> ? T : never };
}Other
Type IDs
Runtime type identifier used to mark SQL Server stored procedure definitions.
Signature
declare const TypeId: TypeId;Type-level identifier used to mark SQL Server stored procedure definitions.
Signature
type TypeId = "~@effect/sql-mssql/Procedure";
Binds input values to a SQL Server stored procedure definition, producing a value that can be executed with
MssqlClient.call.