Daniel
11/17/2021, 6:43 PMthdxr
11/17/2021, 6:48 PMNick Laffey
11/17/2021, 9:23 PMtype-graphql
and zod
to make our own Decorators:
import { ArgumentValidationError, createMethodDecorator } from "type-graphql";
import { z } from "zod";
export function ValidateArgs(schema: z.ZodSchema<any>, argName?: string): MethodDecorator {
return createMethodDecorator((data, next) => {
try {
if (argName) {
schema.parse(data.args[argName]);
} else {
schema.parse(data.args);
}
} catch (err: any) {
throw new ArgumentValidationError(err);
}
return next();
});
}
Nick Laffey
11/17/2021, 9:23 PM@ValidateArgs(organizationFindOneSchema)
@Query(() => Organization, { nullable: true })
async organizationFindOne(@Arg("id") id: string): Promise<Organization | undefined> {
return this.organizationService.findOne(id);
}
thdxr
11/18/2021, 1:33 AMthdxr
11/18/2021, 1:33 AMDaniel
11/18/2021, 1:37 AMthdxr
11/18/2021, 1:39 AMDaniel
11/18/2021, 1:41 AMDaniel
11/18/2021, 4:57 PM