|
|
|
@ -1,5 +1,3 @@
|
|
|
|
|
import type { TSchema } from "@sinclair/typebox";
|
|
|
|
|
import { TypeCompiler } from "@sinclair/typebox/compiler";
|
|
|
|
|
import { initTRPC, TRPCError } from "@trpc/server";
|
|
|
|
|
import type { getDbClient } from "../../database/postgres";
|
|
|
|
|
import type { getOpenrouter } from "@server/provider.js";
|
|
|
|
@ -53,22 +51,4 @@ export const authProcedure = publicProcedure.use(
|
|
|
|
|
}
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Generate a TRPC-compatible validator function given a Typebox schema.
|
|
|
|
|
* This was copied from [https://github.com/sinclairzx81/typebox/blob/6cfcdc02cc813af2f1be57407c771fc4fadfc34a/example/trpc/readme.md].
|
|
|
|
|
* @param schema A Typebox schema
|
|
|
|
|
* @returns A TRPC-compatible validator function
|
|
|
|
|
*/
|
|
|
|
|
export function Validator<T extends TSchema>(schema: T) {
|
|
|
|
|
const check = TypeCompiler.Compile(schema);
|
|
|
|
|
return (value: unknown) => {
|
|
|
|
|
if (check.Check(value)) return value;
|
|
|
|
|
const err = check.Errors(value).First();
|
|
|
|
|
throw new TRPCError({
|
|
|
|
|
message: `${err?.message} for ${err?.path}`,
|
|
|
|
|
code: "BAD_REQUEST",
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const createCallerFactory = t.createCallerFactory;
|
|
|
|
|