New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

convex-helpers

Package Overview
Dependencies
Maintainers
1
Versions
144
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

convex-helpers - npm Package Compare versions

Comparing version 0.1.6 to 0.1.7

22

dist/server/zod.d.ts

@@ -207,7 +207,19 @@ import { ZodTypeDef, z } from "zod";

type DefaultFunctionArgs = Record<string, unknown>;
type ConvexValidatorFromZodValidator<Z extends z.ZodTypeAny> = Z extends z.ZodNull ? Validator<null> : Z extends z.ZodNumber ? Validator<number> : Z extends z.ZodNaN ? Validator<number> : Z extends z.ZodBigInt ? Validator<bigint> : Z extends z.ZodBoolean ? Validator<boolean> : Z extends z.ZodString ? Validator<string> : Z extends z.ZodLiteral<infer Literal> ? Validator<Literal> : Z extends z.ZodArray<infer Inner> ? Validator<ConvexValidatorFromZodValidator<Inner>["type"][]> : Z extends z.ZodTuple<infer Inner> ? Validator<ConvexValidatorFromZodValidator<Inner[number]>["type"][]> : Z extends z.ZodObject<infer ZodShape> ? ReturnType<typeof v.object<{
[key in keyof ZodShape]: ConvexValidatorFromZodValidator<ZodShape[key]>;
}>> : Z extends z.ZodUnion<infer T> ? Validator<ConvexValidatorFromZodValidator<T[number]>["type"], false, ConvexValidatorFromZodValidator<T[number]>["fieldPaths"]> : Z extends z.ZodDiscriminatedUnion<any, infer T> ? Validator<ConvexValidatorFromZodValidator<T[number]>["type"], false, ConvexValidatorFromZodValidator<T[number]>["fieldPaths"]> : Z extends z.ZodEnum<infer T> ? Validator<T[number]> : Z extends z.ZodOptional<infer Inner> ? ConvexValidatorFromZodValidator<Inner> extends Validator<infer InnerConvex, false, infer InnerFieldPaths> ? Validator<InnerConvex | undefined, true, InnerFieldPaths> : never : Z extends z.ZodDefault<infer Inner> ? ConvexValidatorFromZodValidator<Inner> extends Validator<infer InnerConvex, false, infer InnerFieldPaths> ? Validator<InnerConvex | undefined, true, InnerFieldPaths> : never : Z extends z.ZodNullable<infer Inner> ? ConvexValidatorFromZodValidator<Inner> extends Validator<infer InnerConvex, infer InnerOptional, infer InnerFieldPaths> ? Validator<null | InnerConvex, InnerOptional, InnerFieldPaths> : never : Z extends z.ZodBranded<infer Inner, any> ? ConvexValidatorFromZodValidator<Inner> : Z extends z.ZodEffects<infer Inner> ? ConvexValidatorFromZodValidator<Inner> : Z extends z.ZodLazy<infer Inner> ? ConvexValidatorFromZodValidator<Inner> : Z extends z.ZodPipeline<infer Inner, any> ? ConvexValidatorFromZodValidator<Inner> : Z extends z.ZodReadonly<infer Inner> ? ConvexValidatorFromZodValidator<Inner> : Z extends z.ZodUnknown ? Validator<any, false, string> : Z extends z.ZodAny ? Validator<any, false, string> : never;
export declare function zodToConvex<Z extends z.ZodTypeAny>(zod: Z): ConvexValidatorFromZodValidator<Z>;
export declare function zodToConvexValidator<Z extends ZodValidator>(zod: Z): { [k in keyof Z]: ConvexValidatorFromZodValidator<Z[k]>; };
type ConvexValidatorFromZod<Z extends z.ZodTypeAny> = Z extends Zid<infer TableName> ? Validator<GenericId<TableName>> : Z extends z.ZodString ? Validator<string> : Z extends z.ZodNumber ? Validator<number> : Z extends z.ZodNaN ? Validator<number> : Z extends z.ZodBigInt ? Validator<bigint> : Z extends z.ZodBoolean ? Validator<boolean> : Z extends z.ZodNull ? Validator<null> : Z extends z.ZodUnknown ? Validator<any, false, string> : Z extends z.ZodAny ? Validator<any, false, string> : Z extends z.ZodArray<infer Inner> ? Validator<ConvexValidatorFromZod<Inner>["type"][]> : Z extends z.ZodObject<infer ZodShape> ? ReturnType<typeof v.object<{
[key in keyof ZodShape]: ConvexValidatorFromZod<ZodShape[key]>;
}>> : Z extends z.ZodUnion<infer T> ? Validator<ConvexValidatorFromZod<T[number]>["type"], false, ConvexValidatorFromZod<T[number]>["fieldPaths"]> : Z extends z.ZodDiscriminatedUnion<any, infer T> ? Validator<ConvexValidatorFromZod<T[number]>["type"], false, ConvexValidatorFromZod<T[number]>["fieldPaths"]> : Z extends z.ZodTuple<infer Inner> ? Validator<ConvexValidatorFromZod<Inner[number]>["type"][]> : Z extends z.ZodLazy<infer Inner> ? ConvexValidatorFromZod<Inner> : Z extends z.ZodLiteral<infer Literal> ? Validator<Literal> : Z extends z.ZodEnum<infer T> ? Validator<T[number]> : Z extends z.ZodEffects<infer Inner> ? ConvexValidatorFromZod<Inner> : Z extends z.ZodOptional<infer Inner> ? ConvexValidatorFromZod<Inner> extends Validator<infer InnerConvex, false, infer InnerFieldPaths> ? Validator<InnerConvex | undefined, true, InnerFieldPaths> : never : Z extends z.ZodNullable<infer Inner> ? ConvexValidatorFromZod<Inner> extends Validator<infer InnerConvex, infer InnerOptional, infer InnerFieldPaths> ? Validator<null | InnerConvex, InnerOptional, InnerFieldPaths> : never : Z extends z.ZodBranded<infer Inner, any> ? ConvexValidatorFromZod<Inner> : Z extends z.ZodDefault<infer Inner> ? ConvexValidatorFromZod<Inner> extends Validator<infer InnerConvex, false, infer InnerFieldPaths> ? Validator<InnerConvex | undefined, true, InnerFieldPaths> : never : Z extends z.ZodReadonly<infer Inner> ? ConvexValidatorFromZod<Inner> : Z extends z.ZodPipeline<infer Inner, any> ? ConvexValidatorFromZod<Inner> : never;
/**
* Turn a Zod validator into a Convex Validator.
* @param zod Zod validator can be a Zod object, or a Zod type like `z.string()`
* @returns Convex Validator (e.g. `v.string()` from "convex/values")
*/
export declare function zodToConvex<Z extends z.ZodTypeAny>(zod: Z): ConvexValidatorFromZod<Z>;
/**
* Like zodToConvex, but it takes in a bare object, as expected by Convex
* function arguments, or the argument to defineTable.
*
* @param zod Object with string keys and Zod validators as values
* @returns Object with the same keys, but with Convex validators as values
*/
export declare function zodToConvexFields<Z extends ZodValidator>(zod: Z): { [k in keyof Z]: ConvexValidatorFromZod<Z[k]>; };
interface ZidDef<TableName extends string> extends ZodTypeDef {

@@ -214,0 +226,0 @@ typeName: "ConvexId";

@@ -75,3 +75,3 @@ import { z } from "zod";

if ("args" in fn) {
const convexValidator = zodToConvexValidator(fn.args);
const convexValidator = zodToConvexFields(fn.args);
return query({

@@ -175,3 +175,3 @@ args: {

if ("args" in fn) {
const convexValidator = zodToConvexValidator(fn.args);
const convexValidator = zodToConvexFields(fn.args);
return mutation({

@@ -275,3 +275,3 @@ args: {

if ("args" in fn) {
const convexValidator = zodToConvexValidator(fn.args);
const convexValidator = zodToConvexFields(fn.args);
return action({

@@ -315,2 +315,7 @@ args: {

}
/**
* Turn a Zod validator into a Convex Validator.
* @param zod Zod validator can be a Zod object, or a Zod type like `z.string()`
* @returns Convex Validator (e.g. `v.string()` from "convex/values")
*/
export function zodToConvex(zod) {

@@ -342,3 +347,3 @@ const typeName = zod._def.typeName;

case "ZodObject":
return v.object(zodToConvexValidator(zod._def.shape()));
return v.object(zodToConvexFields(zod._def.shape()));
case "ZodUnion":

@@ -401,3 +406,10 @@ case "ZodDiscriminatedUnion":

}
export function zodToConvexValidator(zod) {
/**
* Like zodToConvex, but it takes in a bare object, as expected by Convex
* function arguments, or the argument to defineTable.
*
* @param zod Object with string keys and Zod validators as values
* @returns Object with the same keys, but with Convex validators as values
*/
export function zodToConvexFields(zod) {
return Object.fromEntries(Object.entries(zod).map(([k, v]) => [k, zodToConvex(v)]));

@@ -404,0 +416,0 @@ }

{
"name": "convex-helpers",
"version": "0.1.6",
"version": "0.1.7",
"description": "A collection of useful code to complement the official convex package.",

@@ -5,0 +5,0 @@ "exports": {

@@ -1,2 +0,2 @@

import { zCustomQuery, zodToConvexValidator } from "./zod";
import { zCustomQuery, zodToConvexFields } from "./zod";
import { z } from "zod";

@@ -160,3 +160,3 @@ import { v } from "convex/values";

sameType(
zodToConvexValidator({
zodToConvexFields({
s: z.string().email().max(5),

@@ -193,3 +193,3 @@ n: z.number(),

sameType(
zodToConvexValidator({
zodToConvexFields({
simpleArray: z.array(z.boolean()),

@@ -226,3 +226,3 @@ tuple: z.tuple([z.boolean(), z.boolean()]),

sameType(
zodToConvexValidator({
zodToConvexFields({
transformed: z.transformer(z.string(), {

@@ -229,0 +229,0 @@ type: "refinement",

@@ -106,3 +106,3 @@ import { ZodFirstPartyTypeKind, ZodTypeDef, z } from "zod";

if ("args" in fn) {
const convexValidator = zodToConvexValidator(fn.args);
const convexValidator = zodToConvexFields(fn.args);
return query({

@@ -231,3 +231,3 @@ args: {

if ("args" in fn) {
const convexValidator = zodToConvexValidator(fn.args);
const convexValidator = zodToConvexFields(fn.args);
return mutation({

@@ -356,3 +356,3 @@ args: {

if ("args" in fn) {
const convexValidator = zodToConvexValidator(fn.args);
const convexValidator = zodToConvexFields(fn.args);
return action({

@@ -506,5 +506,8 @@ args: {

type ConvexValidatorFromZodValidator<Z extends z.ZodTypeAny> =
Z extends z.ZodNull
? Validator<null>
type ConvexValidatorFromZod<Z extends z.ZodTypeAny> =
// Keep this in sync with zodToConvex implementation
Z extends Zid<infer TableName>
? Validator<GenericId<TableName>>
: Z extends z.ZodString
? Validator<string>
: Z extends z.ZodNumber

@@ -518,16 +521,14 @@ ? Validator<number>

? Validator<boolean>
: Z extends z.ZodString
? Validator<string>
: Z extends z.ZodLiteral<infer Literal>
? Validator<Literal>
: Z extends z.ZodNull
? Validator<null>
: Z extends z.ZodUnknown
? Validator<any, false, string>
: Z extends z.ZodAny
? Validator<any, false, string>
: Z extends z.ZodArray<infer Inner>
? Validator<ConvexValidatorFromZodValidator<Inner>["type"][]>
: Z extends z.ZodTuple<infer Inner>
? Validator<ConvexValidatorFromZodValidator<Inner[number]>["type"][]>
? Validator<ConvexValidatorFromZod<Inner>["type"][]>
: Z extends z.ZodObject<infer ZodShape>
? ReturnType<
typeof v.object<{
[key in keyof ZodShape]: ConvexValidatorFromZodValidator<
ZodShape[key]
>;
[key in keyof ZodShape]: ConvexValidatorFromZod<ZodShape[key]>;
}>

@@ -537,16 +538,24 @@ >

? Validator<
ConvexValidatorFromZodValidator<T[number]>["type"],
ConvexValidatorFromZod<T[number]>["type"],
false,
ConvexValidatorFromZodValidator<T[number]>["fieldPaths"]
ConvexValidatorFromZod<T[number]>["fieldPaths"]
>
: Z extends z.ZodDiscriminatedUnion<any, infer T>
? Validator<
ConvexValidatorFromZodValidator<T[number]>["type"],
ConvexValidatorFromZod<T[number]>["type"],
false,
ConvexValidatorFromZodValidator<T[number]>["fieldPaths"]
ConvexValidatorFromZod<T[number]>["fieldPaths"]
>
: Z extends z.ZodTuple<infer Inner>
? Validator<ConvexValidatorFromZod<Inner[number]>["type"][]>
: Z extends z.ZodLazy<infer Inner>
? ConvexValidatorFromZod<Inner>
: Z extends z.ZodLiteral<infer Literal>
? Validator<Literal>
: Z extends z.ZodEnum<infer T>
? Validator<T[number]>
: Z extends z.ZodEffects<infer Inner>
? ConvexValidatorFromZod<Inner>
: Z extends z.ZodOptional<infer Inner>
? ConvexValidatorFromZodValidator<Inner> extends Validator<
? ConvexValidatorFromZod<Inner> extends Validator<
infer InnerConvex,

@@ -558,36 +567,28 @@ false,

: never
: Z extends z.ZodDefault<infer Inner> // Treat like optional
? ConvexValidatorFromZodValidator<Inner> extends Validator<
: Z extends z.ZodNullable<infer Inner>
? ConvexValidatorFromZod<Inner> extends Validator<
infer InnerConvex,
false,
infer InnerOptional,
infer InnerFieldPaths
>
? Validator<InnerConvex | undefined, true, InnerFieldPaths>
? Validator<null | InnerConvex, InnerOptional, InnerFieldPaths>
: never
: Z extends z.ZodNullable<infer Inner>
? ConvexValidatorFromZodValidator<Inner> extends Validator<
: Z extends z.ZodBranded<infer Inner, any>
? ConvexValidatorFromZod<Inner>
: Z extends z.ZodDefault<infer Inner> // Treat like optional
? ConvexValidatorFromZod<Inner> extends Validator<
infer InnerConvex,
infer InnerOptional,
false,
infer InnerFieldPaths
>
? Validator<null | InnerConvex, InnerOptional, InnerFieldPaths>
? Validator<InnerConvex | undefined, true, InnerFieldPaths>
: never
: Z extends z.ZodBranded<infer Inner, any>
? ConvexValidatorFromZodValidator<Inner>
: Z extends z.ZodEffects<infer Inner>
? ConvexValidatorFromZodValidator<Inner>
: Z extends z.ZodLazy<infer Inner>
? ConvexValidatorFromZodValidator<Inner>
: Z extends z.ZodReadonly<infer Inner>
? ConvexValidatorFromZod<Inner>
: Z extends z.ZodPipeline<infer Inner, any> // Validate input type
? ConvexValidatorFromZodValidator<Inner>
: Z extends z.ZodReadonly<infer Inner>
? ConvexValidatorFromZodValidator<Inner>
: Z extends z.ZodUnknown
? Validator<any, false, string>
: Z extends z.ZodAny
? Validator<any, false, string>
? ConvexValidatorFromZod<Inner>
: // Some that are a bit unknown
// : Z extends z.ZodDate ? Validator<number>
// : Z extends z.ZodSymbol ? Validator<symbol>
// : Z extends z.ZodNever ? Validator<never>
// : Z extends z.ZodSymbol ? Validator<symbol>
// : Z extends z.ZodIntersection<infer T, infer U>

@@ -611,23 +612,28 @@ // ? Validator<

/**
* Turn a Zod validator into a Convex Validator.
* @param zod Zod validator can be a Zod object, or a Zod type like `z.string()`
* @returns Convex Validator (e.g. `v.string()` from "convex/values")
*/
export function zodToConvex<Z extends z.ZodTypeAny>(
zod: Z
): ConvexValidatorFromZodValidator<Z> {
): ConvexValidatorFromZod<Z> {
const typeName: ZodFirstPartyTypeKind | "ConvexId" = zod._def.typeName;
switch (typeName) {
case "ConvexId":
return v.id(zod._def.tableName) as ConvexValidatorFromZodValidator<Z>;
return v.id(zod._def.tableName) as ConvexValidatorFromZod<Z>;
case "ZodString":
return v.string() as ConvexValidatorFromZodValidator<Z>;
return v.string() as ConvexValidatorFromZod<Z>;
case "ZodNumber":
case "ZodNaN":
return v.number() as ConvexValidatorFromZodValidator<Z>;
return v.number() as ConvexValidatorFromZod<Z>;
case "ZodBigInt":
return v.int64() as ConvexValidatorFromZodValidator<Z>;
return v.int64() as ConvexValidatorFromZod<Z>;
case "ZodBoolean":
return v.boolean() as ConvexValidatorFromZodValidator<Z>;
return v.boolean() as ConvexValidatorFromZod<Z>;
case "ZodNull":
return v.null() as ConvexValidatorFromZodValidator<Z>;
return v.null() as ConvexValidatorFromZod<Z>;
case "ZodAny":
case "ZodUnknown":
return v.any() as ConvexValidatorFromZodValidator<Z>;
return v.any() as ConvexValidatorFromZod<Z>;
case "ZodArray":

@@ -638,7 +644,7 @@ const inner = zodToConvex(zod._def.type);

}
return v.array(inner) as ConvexValidatorFromZodValidator<Z>;
return v.array(inner) as ConvexValidatorFromZod<Z>;
case "ZodObject":
return v.object(
zodToConvexValidator(zod._def.shape())
) as ConvexValidatorFromZodValidator<Z>;
zodToConvexFields(zod._def.shape())
) as ConvexValidatorFromZod<Z>;
case "ZodUnion":

@@ -648,3 +654,3 @@ case "ZodDiscriminatedUnion":

...zod._def.options.map((v: z.ZodTypeAny) => zodToConvex(v))
) as ConvexValidatorFromZodValidator<Z>;
) as ConvexValidatorFromZod<Z>;
case "ZodTuple":

@@ -655,11 +661,7 @@ const allTypes = zod._def.items.map((v: z.ZodTypeAny) => zodToConvex(v));

}
return v.array(
v.union(...allTypes)
) as ConvexValidatorFromZodValidator<Z>;
return v.array(v.union(...allTypes)) as ConvexValidatorFromZod<Z>;
case "ZodLazy":
return zodToConvex(
zod._def.getter()
) as ConvexValidatorFromZodValidator<Z>;
return zodToConvex(zod._def.getter()) as ConvexValidatorFromZod<Z>;
case "ZodLiteral":
return v.literal(zod._def.value) as ConvexValidatorFromZodValidator<Z>;
return v.literal(zod._def.value) as ConvexValidatorFromZod<Z>;
case "ZodEnum":

@@ -670,9 +672,9 @@ return v.union(

)
) as ConvexValidatorFromZodValidator<Z>;
) as ConvexValidatorFromZod<Z>;
case "ZodEffects":
return zodToConvex(zod._def.schema) as ConvexValidatorFromZodValidator<Z>;
return zodToConvex(zod._def.schema) as ConvexValidatorFromZod<Z>;
case "ZodOptional":
return v.optional(
zodToConvex((zod as any).unwrap()) as any
) as ConvexValidatorFromZodValidator<Z>;
) as ConvexValidatorFromZod<Z>;
case "ZodNullable":

@@ -685,21 +687,17 @@ const nullable = zodToConvex((zod as any).unwrap());

v.union(v.null(), nullable as any)
) as ConvexValidatorFromZodValidator<Z>;
) as ConvexValidatorFromZod<Z>;
}
return v.union(v.null(), nullable) as ConvexValidatorFromZodValidator<Z>;
return v.union(v.null(), nullable) as ConvexValidatorFromZod<Z>;
case "ZodBranded":
return zodToConvex(
(zod as any).unwrap()
) as ConvexValidatorFromZodValidator<Z>;
return zodToConvex((zod as any).unwrap()) as ConvexValidatorFromZod<Z>;
case "ZodDefault":
const withDefault = zodToConvex(zod._def.innerType);
if (withDefault.isOptional) {
return withDefault as ConvexValidatorFromZodValidator<Z>;
return withDefault as ConvexValidatorFromZod<Z>;
}
return v.optional(withDefault) as ConvexValidatorFromZodValidator<Z>;
return v.optional(withDefault) as ConvexValidatorFromZod<Z>;
case "ZodReadonly":
return zodToConvex(
zod._def.innerType
) as ConvexValidatorFromZodValidator<Z>;
return zodToConvex(zod._def.innerType) as ConvexValidatorFromZod<Z>;
case "ZodPipeline":
return zodToConvex(zod._def.in) as ConvexValidatorFromZodValidator<Z>;
return zodToConvex(zod._def.in) as ConvexValidatorFromZod<Z>;
default:

@@ -724,6 +722,13 @@ throw new Error(`Unknown zod type: ${typeName}`);

export function zodToConvexValidator<Z extends ZodValidator>(zod: Z) {
/**
* Like zodToConvex, but it takes in a bare object, as expected by Convex
* function arguments, or the argument to defineTable.
*
* @param zod Object with string keys and Zod validators as values
* @returns Object with the same keys, but with Convex validators as values
*/
export function zodToConvexFields<Z extends ZodValidator>(zod: Z) {
return Object.fromEntries(
Object.entries(zod).map(([k, v]) => [k, zodToConvex(v)])
) as { [k in keyof Z]: ConvexValidatorFromZodValidator<Z[k]> };
) as { [k in keyof Z]: ConvexValidatorFromZod<Z[k]> };
}

@@ -730,0 +735,0 @@

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc