convex-helpers 0.1.96 → 0.1.98

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -507,7 +507,7 @@ const vv = typedV(schema);
507
507
  export const replaceUser = internalMutation({
508
508
  args: {
509
509
  id: vv.id("accounts"),
510
- replace: object({
510
+ replace: vv.object({
511
511
  // You can provide the document with or without system fields.
512
512
  ...schema.tables.accounts.validator.fields,
513
513
  ...partial(systemFields("accounts")),
package/index.test.ts CHANGED
@@ -1,7 +1,32 @@
1
1
  import { v } from "convex/values";
2
- import { withoutSystemFields } from "./index.js";
2
+ import { withoutSystemFields, pick, omit } from "./index.js";
3
3
  import { test, expect, expectTypeOf } from "vitest";
4
4
 
5
+ test("pick", () => {
6
+ const obj = { a: "a", b: "b", c: "c" };
7
+ const picked = pick(obj, ["a", "b"]);
8
+ expect(picked).toEqual({ a: "a", b: "b" });
9
+ expect(pick(obj, [])).toEqual({});
10
+ expect(pick(obj, ["a", "b", "c"])).toEqual({ a: "a", b: "b", c: "c" });
11
+ expect(pick(obj, ["a", "b", "c", "d" as any])).toEqual({
12
+ a: "a",
13
+ b: "b",
14
+ c: "c",
15
+ });
16
+
17
+ expectTypeOf(picked).toEqualTypeOf<{ a: string; b: string }>();
18
+ });
19
+
20
+ test("omit", () => {
21
+ const obj = { a: "a", b: "b", c: "c" };
22
+ const omitted = omit(obj, ["a", "b"]);
23
+ expect(omitted).toEqual({ c: "c" });
24
+ expect(omit(obj, [])).toEqual({ a: "a", b: "b", c: "c" });
25
+ expect(omit(obj, ["a", "b", "c", "d" as any])).toEqual({});
26
+
27
+ expectTypeOf(omitted).toEqualTypeOf<{ c: string }>();
28
+ });
29
+
5
30
  test("withoutSystemFields", () => {
6
31
  const obj = { _id: "1", _creationTime: 1, a: "a" };
7
32
  const without = withoutSystemFields(obj);
@@ -20,6 +45,7 @@ test("withoutSystemFields type when it's a union", () => {
20
45
  | { _id: string; _creationTime: number };
21
46
  const without = withoutSystemFields(obj);
22
47
  expect(without).toEqual({ a: "a" });
48
+ // eslint-disable-next-line @typescript-eslint/no-empty-object-type
23
49
  expectTypeOf(without).toEqualTypeOf<{ a: string } | {}>();
24
50
  const obj2 = { _id: "1", _creationTime: 1, a: "a" } as
25
51
  | { _id: string; _creationTime: number; a: string }
@@ -35,7 +61,7 @@ test("withoutSystemFields works on validators too", () => {
35
61
  _creationTime: v.number(),
36
62
  a: v.string(),
37
63
  });
38
- const { _id, _creationTime, ...rest } = validator.fields;
64
+ const { _id, _creationTime, ..._rest } = validator.fields;
39
65
  const without = withoutSystemFields(validator.fields);
40
- expectTypeOf(without).toEqualTypeOf<typeof rest>();
66
+ expectTypeOf(without).toEqualTypeOf<typeof _rest>();
41
67
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "convex-helpers",
3
- "version": "0.1.96",
3
+ "version": "0.1.98",
4
4
  "description": "A collection of useful code to complement the official convex package.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["stream.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["stream.ts"],"names":[],"mappings":"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"}
package/server/stream.ts CHANGED
@@ -1,3 +1,4 @@
1
+ /* eslint-disable no-unexpected-multiline */
1
2
  import type { Value } from "convex/values";
2
3
  import { convexToJson, jsonToConvex } from "convex/values";
3
4
  import type {
package/validators.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { GenericValidator, Infer, ObjectType, PropertyValidators, VObject, VOptional, VString, VUnion, Validator } from "convex/values";
1
+ import type { GenericValidator, Infer, ObjectType, OptionalProperty, PropertyValidators, VLiteral, VObject, VOptional, VString, VUnion, Validator } from "convex/values";
2
2
  import type { Expand } from "./index.js";
3
3
  import type { DataModelFromSchemaDefinition, GenericDatabaseReader, GenericDataModel, SchemaDefinition, TableNamesInDataModel } from "convex/server";
4
4
  /**
@@ -18,7 +18,7 @@ import type { DataModelFromSchemaDefinition, GenericDatabaseReader, GenericDataM
18
18
  * @param args Values you want to use in a union of literals.
19
19
  * @returns A validator for the union of the literals.
20
20
  */
21
- export declare const literals: <V extends string | number | boolean | bigint, T extends V[]>(...args: T) => VUnion<T[number], any>;
21
+ export declare const literals: <T extends (string | number | boolean | bigint)[]>(...args: T) => VUnion<T[number], VLiteral<T[number]>[]>;
22
22
  /**
23
23
  * nullable define a validator that can be the value or null more consisely.
24
24
  *
@@ -29,32 +29,62 @@ export declare const nullable: <V extends Validator<any, "required", any>>(x: V)
29
29
  /**
30
30
  * partial helps you define an object of optional validators more concisely.
31
31
  *
32
- * e.g. `partial({a: v.string(), b: v.number()})` is equivalent to
32
+ * `partial({a: v.string(), b: v.number()})` is equivalent to
33
33
  * `{a: v.optional(v.string()), b: v.optional(v.number())}`
34
34
  *
35
35
  * @param obj The object of validators to make optional. e.g. {a: v.string()}
36
36
  * @returns A new object of validators that can be the value or undefined.
37
37
  */
38
- export declare const partial: <T extends PropertyValidators>(obj: T) => { [K in keyof T]: VOptional<T[K]>; };
39
- /** Any string value. */
38
+ export declare function partial<T extends PropertyValidators>(obj: T): {
39
+ [K in keyof T]: VOptional<T[K]>;
40
+ };
41
+ /**
42
+ * partial helps you define an object of optional validators more concisely.
43
+ *
44
+ * `partial(v.object({a: v.string(), b: v.number()}))` is equivalent to
45
+ * `v.object({a: v.optional(v.string()), b: v.optional(v.number())})`
46
+ *
47
+ * @param obj The object of validators to make optional. e.g. v.object({a: v.string()})
48
+ * @returns A new object of validators that can be the value or undefined.
49
+ */
50
+ export declare function partial<T, V extends Record<string, GenericValidator>, O extends OptionalProperty>(obj: VObject<T, V, O>): PartialVObject<T, V, O>;
51
+ /**
52
+ * partial helps you define a union of optional validators more concisely.
53
+ *
54
+ * `partial(v.union(v.object({a: v.string()}), v.object({b: v.number()})))`
55
+ * is equivalent to
56
+ * `v.union(v.object({a: v.optional(v.string())}), v.object({b: v.optional(v.number())}))`
57
+ *
58
+ * @param obj The union of validators to make optional. e.g. v.union(v.object({a: v.string()}), v.object({b: v.number()}))
59
+ * @returns A new union of validators that can be the value or undefined.
60
+ */
61
+ export declare function partial<T, V extends Validator<T, "required", any>[], O extends OptionalProperty>(obj: VUnion<T, V, O>): PartialVUnion<T, V, O>;
62
+ type PartialVObject<T, V extends Record<string, GenericValidator>, Optional extends OptionalProperty> = VObject<Partial<T>, {
63
+ [K in keyof V]: VOptional<V[K]>;
64
+ }, Optional>;
65
+ type PartialUnionMembers<Members extends readonly Validator<any, "required", any>[]> = {
66
+ [K in keyof Members]: Members[K] extends VObject<any, any, "required"> ? Members[K] extends VObject<infer MemberT, infer MemberV extends PropertyValidators, "required"> ? PartialVObject<MemberT, MemberV, "required"> : Members[K] : Members[K] extends VUnion<any, any, "required"> ? Members[K] extends VUnion<infer MemberT, infer MemberV, "required"> ? PartialVUnion<MemberT, MemberV, "required"> : Members[K] : Members[K];
67
+ };
68
+ type PartialVUnion<T, Members extends Validator<T, "required", any>[], Optional extends OptionalProperty> = VUnion<Partial<T>, PartialUnionMembers<Members>, Optional>;
69
+ /** @deprecated Use `v.string()` instead. Any string value. */
40
70
  export declare const string: VString<string, "required">;
41
- /** JavaScript number, represented as a float64 in the database. */
71
+ /** @deprecated Use `v.float64()` instead. JavaScript number, represented as a float64 in the database. */
42
72
  export declare const number: import("convex/values").VFloat64<number, "required">;
43
- /** JavaScript number, represented as a float64 in the database. */
73
+ /** @deprecated Use `v.float64()` instead. JavaScript number, represented as a float64 in the database. */
44
74
  export declare const float64: import("convex/values").VFloat64<number, "required">;
45
- /** boolean value. For typing it only as true, use `l(true)` */
75
+ /** @deprecated Use `v.boolean()` instead. boolean value. For typing it only as true, use `l(true)` */
46
76
  export declare const boolean: import("convex/values").VBoolean<boolean, "required">;
47
- /** bigint, though stored as an int64 in the database. */
48
- export declare const bigint: import("convex/values").VInt64<bigint, "required">;
49
- /** bigint, though stored as an int64 in the database. */
77
+ /** @deprecated Use `v.int64()` instead. bigint, though stored as an int64 in the database. */
78
+ export declare const biging: import("convex/values").VInt64<bigint, "required">;
79
+ /** @deprecated Use `v.int64()` instead. bigint, though stored as an int64 in the database. */
50
80
  export declare const int64: import("convex/values").VInt64<bigint, "required">;
51
- /** Any Convex value */
81
+ /** @deprecated Use `v.any()` instead. Any Convex value */
52
82
  export declare const any: import("convex/values").VAny<any, "required", string>;
53
- /** Null value. Underscore is so it doesn't shadow the null builtin */
83
+ /** @deprecated Use `v.null()` instead. Null value. Underscore is so it doesn't shadow the null builtin */
54
84
  export declare const null_: import("convex/values").VNull<null, "required">;
55
- /** Re-export values from v without having to do v.* */
56
- export declare const id: <TableName extends string>(tableName: TableName) => import("convex/values").VId<import("convex/values").GenericId<TableName>, "required">, object: <T_2 extends PropertyValidators>(fields: T_2) => VObject<import("convex/server").Expand<{ [Property in { [Property_1 in keyof T_2]: T_2[Property_1]["isOptional"] extends "optional" ? Property_1 : never; }[keyof T_2]]?: Exclude<Infer<T_2[Property]>, undefined> | undefined; } & { [Property_1 in Exclude<keyof T_2, { [Property in keyof T_2]: T_2[Property]["isOptional"] extends "optional" ? Property : never; }[keyof T_2]>]: Infer<T_2[Property_1]>; }>, T_2, "required", { [Property_2 in keyof T_2]: Property_2 | `${Property_2 & string}.${T_2[Property_2]["fieldPaths"]}`; }[keyof T_2] & string>, array: <T_1 extends Validator<any, "required", any>>(element: T_1) => import("convex/values").VArray<T_1["type"][], T_1, "required">, bytes: () => import("convex/values").VBytes<ArrayBuffer, "required">, literal: <T extends string | number | bigint | boolean>(literal: T) => import("convex/values").VLiteral<T, "required">, optional: <T_4 extends GenericValidator>(value: T_4) => VOptional<T_4>, union: <T_3 extends Validator<any, "required", any>[]>(...members: T_3) => VUnion<T_3[number]["type"], T_3, "required", T_3[number]["fieldPaths"]>;
57
- /** ArrayBuffer validator. */
85
+ /** @deprecated Use `v.*()` instead. */
86
+ export declare const id: <TableName extends string>(tableName: TableName) => import("convex/values").VId<import("convex/values").GenericId<TableName>, "required">, object: <T_2 extends PropertyValidators>(fields: T_2) => VObject<import("convex/server").Expand<{ [Property in { [Property_1 in keyof T_2]: T_2[Property_1]["isOptional"] extends "optional" ? Property_1 : never; }[keyof T_2]]?: Exclude<Infer<T_2[Property]>, undefined> | undefined; } & { [Property_1 in Exclude<keyof T_2, { [Property in keyof T_2]: T_2[Property]["isOptional"] extends "optional" ? Property : never; }[keyof T_2]>]: Infer<T_2[Property_1]>; }>, T_2, "required", { [Property_2 in keyof T_2]: Property_2 | `${Property_2 & string}.${T_2[Property_2]["fieldPaths"]}`; }[keyof T_2] & string>, array: <T_1 extends Validator<any, "required", any>>(element: T_1) => import("convex/values").VArray<T_1["type"][], T_1, "required">, bytes: () => import("convex/values").VBytes<ArrayBuffer, "required">, literal: <T extends string | number | bigint | boolean>(literal: T) => VLiteral<T, "required">, optional: <T_4 extends GenericValidator>(value: T_4) => VOptional<T_4>, union: <T_3 extends Validator<any, "required", any>[]>(...members: T_3) => VUnion<T_3[number]["type"], T_3, "required", T_3[number]["fieldPaths"]>;
87
+ /** @deprecated Use `v.bytes()` instead. ArrayBuffer validator. */
58
88
  export declare const arrayBuffer: import("convex/values").VBytes<ArrayBuffer, "required">;
59
89
  /**
60
90
  * Utility to get the validators for fields associated with a table.
@@ -129,7 +159,7 @@ export declare function typedV<Schema extends SchemaDefinition<any, boolean>>(sc
129
159
  boolean: () => import("convex/values").VBoolean<boolean, "required">;
130
160
  string: () => VString<string, "required">;
131
161
  bytes: () => import("convex/values").VBytes<ArrayBuffer, "required">;
132
- literal: <T extends string | number | bigint | boolean>(literal: T) => import("convex/values").VLiteral<T, "required">;
162
+ literal: <T extends string | number | bigint | boolean>(literal: T) => VLiteral<T, "required">;
133
163
  array: <T_1 extends Validator<any, "required", any>>(element: T_1) => import("convex/values").VArray<T_1["type"][], T_1, "required">;
134
164
  object: <T_2 extends PropertyValidators>(fields: T_2) => VObject<import("convex/server").Expand<{ [Property in { [Property_1 in keyof T_2]: T_2[Property_1]["isOptional"] extends "optional" ? Property_1 : never; }[keyof T_2]]?: Exclude<Infer<T_2[Property]>, undefined> | undefined; } & { [Property_1 in Exclude<keyof T_2, { [Property in keyof T_2]: T_2[Property]["isOptional"] extends "optional" ? Property : never; }[keyof T_2]>]: Infer<T_2[Property_1]>; }>, T_2, "required", { [Property_2 in keyof T_2]: Property_2 | `${Property_2 & string}.${T_2[Property_2]["fieldPaths"]}`; }[keyof T_2] & string>;
135
165
  record: <Key extends Validator<string, "required", any>, Value extends Validator<any, "required", any>>(keys: Key, values: Value) => import("convex/values").VRecord<Record<Infer<Key>, Value["type"]>, Key, Value, "required", string>;
@@ -247,4 +277,5 @@ export declare function validate<T extends Validator<any, any, any>>(validator:
247
277
  * @returns The parsed value, without fields not specified in the validator.
248
278
  */
249
279
  export declare function parse<T extends Validator<any, any, any>>(validator: T, value: unknown): Infer<T>;
280
+ export {};
250
281
  //# sourceMappingURL=validators.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["validators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["validators.ts"],"names":[],"mappings":"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"}
package/validators.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { v } from "convex/values";
2
+ import { assert } from "convex-helpers";
2
3
  /**
3
4
  * Helper for defining a union of literals more concisely.
4
5
  *
@@ -17,9 +18,6 @@ import { v } from "convex/values";
17
18
  * @returns A validator for the union of the literals.
18
19
  */
19
20
  export const literals = (...args) => {
20
- // The `any` above is unfortunate, because then we cannot get proper types
21
- // for `validator.members`, but without it, TypeScript seems to have a hard
22
- // time inferring the TS type for the first parameter.
23
21
  return v.union(...args.map(v.literal));
24
22
  };
25
23
  /**
@@ -29,42 +27,86 @@ export const literals = (...args) => {
29
27
  * @returns A new validator that can be the value or null.
30
28
  */
31
29
  export const nullable = (x) => v.union(v.null(), x);
30
+ export function partial(fieldsOrObjOrUnion) {
31
+ if (fieldsOrObjOrUnion.isConvexValidator) {
32
+ if (fieldsOrObjOrUnion.kind === "object") {
33
+ return partialVObject(fieldsOrObjOrUnion);
34
+ }
35
+ if (fieldsOrObjOrUnion.kind === "union") {
36
+ return partialUnion(fieldsOrObjOrUnion);
37
+ }
38
+ throw new Error("partial only works with union or object Validators, or a Record<string, Validator> currently");
39
+ }
40
+ return partialFields(fieldsOrObjOrUnion);
41
+ }
32
42
  /**
33
- * partial helps you define an object of optional validators more concisely.
43
+ * partialFields helps you define an object of optional validators more concisely.
34
44
  *
35
- * e.g. `partial({a: v.string(), b: v.number()})` is equivalent to
45
+ * e.g. `partialFields({a: v.string(), b: v.number()})` is equivalent to
36
46
  * `{a: v.optional(v.string()), b: v.optional(v.number())}`
37
47
  *
38
48
  * @param obj The object of validators to make optional. e.g. {a: v.string()}
39
49
  * @returns A new object of validators that can be the value or undefined.
40
50
  */
41
- export const partial = (obj) => {
51
+ function partialFields(obj) {
42
52
  return Object.fromEntries(Object.entries(obj).map(([k, vv]) => [
43
53
  k,
44
54
  vv.isOptional === "optional" ? vv : v.optional(vv),
45
55
  ]));
46
- };
56
+ }
57
+ /**
58
+ * partialObject helps you define an object of optional validators more concisely.
59
+ *
60
+ * e.g. `partialObject({a: v.string(), b: v.number()})` is equivalent to
61
+ * `{a: v.optional(v.string()), b: v.optional(v.number())}`
62
+ *
63
+ * @param obj The object of validators to make optional. e.g. {a: v.string()}
64
+ * @returns A new object of validators that can be the value or undefined.
65
+ */
66
+ function partialVObject(obj) {
67
+ const o = v.object(partialFields(obj.fields));
68
+ if (obj.isOptional === "optional") {
69
+ return v.optional(o);
70
+ }
71
+ return o;
72
+ }
73
+ function partialUnion(union) {
74
+ const u = v.union(...union.members.map((m) => {
75
+ assert(m.isOptional === "required", "Union members cannot be optional");
76
+ if (m.kind === "object") {
77
+ return partialVObject(m);
78
+ }
79
+ if (m.kind === "union") {
80
+ return partialUnion(m);
81
+ }
82
+ throw new Error(`Invalid union member type: ${m.kind}`);
83
+ }));
84
+ if (union.isOptional === "optional") {
85
+ return v.optional(u);
86
+ }
87
+ return u;
88
+ }
47
89
  // Shorthand for defining validators that look like types.
48
- /** Any string value. */
90
+ /** @deprecated Use `v.string()` instead. Any string value. */
49
91
  export const string = v.string();
50
- /** JavaScript number, represented as a float64 in the database. */
92
+ /** @deprecated Use `v.float64()` instead. JavaScript number, represented as a float64 in the database. */
51
93
  export const number = v.float64();
52
- /** JavaScript number, represented as a float64 in the database. */
94
+ /** @deprecated Use `v.float64()` instead. JavaScript number, represented as a float64 in the database. */
53
95
  export const float64 = v.float64();
54
- /** boolean value. For typing it only as true, use `l(true)` */
96
+ /** @deprecated Use `v.boolean()` instead. boolean value. For typing it only as true, use `l(true)` */
55
97
  export const boolean = v.boolean();
56
- /** bigint, though stored as an int64 in the database. */
57
- export const bigint = v.int64();
58
- /** bigint, though stored as an int64 in the database. */
98
+ /** @deprecated Use `v.int64()` instead. bigint, though stored as an int64 in the database. */
99
+ export const biging = v.int64();
100
+ /** @deprecated Use `v.int64()` instead. bigint, though stored as an int64 in the database. */
59
101
  export const int64 = v.int64();
60
- /** Any Convex value */
102
+ /** @deprecated Use `v.any()` instead. Any Convex value */
61
103
  export const any = v.any();
62
- /** Null value. Underscore is so it doesn't shadow the null builtin */
104
+ /** @deprecated Use `v.null()` instead. Null value. Underscore is so it doesn't shadow the null builtin */
63
105
  export const null_ = v.null();
64
- /** Re-export values from v without having to do v.* */
106
+ /** @deprecated Use `v.*()` instead. */
65
107
  export const { id, object, array, bytes, literal, optional, union } = v;
66
- /** ArrayBuffer validator. */
67
- export const arrayBuffer = bytes();
108
+ /** @deprecated Use `v.bytes()` instead. ArrayBuffer validator. */
109
+ export const arrayBuffer = v.bytes();
68
110
  /**
69
111
  * Utility to get the validators for fields associated with a table.
70
112
  * e.g. for systemFields("users") it would return:
@@ -353,7 +395,7 @@ export function validate(validator, value, opts) {
353
395
  prototype?.constructor?.name === "Object";
354
396
  if (!isSimple) {
355
397
  expected =
356
- prototype?.constructor?.name ?? (typeof prototype || "object");
398
+ (prototype?.constructor?.name ?? typeof prototype) || "object";
357
399
  valid = false;
358
400
  break;
359
401
  }
package/validators.ts CHANGED
@@ -2,7 +2,9 @@ import type {
2
2
  GenericValidator,
3
3
  Infer,
4
4
  ObjectType,
5
+ OptionalProperty,
5
6
  PropertyValidators,
7
+ VLiteral,
6
8
  VObject,
7
9
  VOptional,
8
10
  VString,
@@ -18,6 +20,7 @@ import type {
18
20
  SchemaDefinition,
19
21
  TableNamesInDataModel,
20
22
  } from "convex/server";
23
+ import { assert } from "convex-helpers";
21
24
 
22
25
  /**
23
26
  * Helper for defining a union of literals more concisely.
@@ -36,17 +39,13 @@ import type {
36
39
  * @param args Values you want to use in a union of literals.
37
40
  * @returns A validator for the union of the literals.
38
41
  */
39
- export const literals = <
40
- V extends string | number | boolean | bigint,
41
- T extends V[],
42
- >(
42
+ export const literals = <T extends (string | number | boolean | bigint)[]>(
43
43
  ...args: T
44
- ): VUnion<T[number], any> => {
45
- // The `any` above is unfortunate, because then we cannot get proper types
46
- // for `validator.members`, but without it, TypeScript seems to have a hard
47
- // time inferring the TS type for the first parameter.
48
-
49
- return v.union(...args.map(v.literal)) as any;
44
+ ) => {
45
+ return v.union(...args.map(v.literal)) as VUnion<
46
+ T[number],
47
+ VLiteral<T[number]>[]
48
+ >;
50
49
  };
51
50
 
52
51
  /**
@@ -61,45 +60,190 @@ export const nullable = <V extends Validator<any, "required", any>>(x: V) =>
61
60
  /**
62
61
  * partial helps you define an object of optional validators more concisely.
63
62
  *
64
- * e.g. `partial({a: v.string(), b: v.number()})` is equivalent to
63
+ * `partial({a: v.string(), b: v.number()})` is equivalent to
64
+ * `{a: v.optional(v.string()), b: v.optional(v.number())}`
65
+ *
66
+ * @param obj The object of validators to make optional. e.g. {a: v.string()}
67
+ * @returns A new object of validators that can be the value or undefined.
68
+ */
69
+ export function partial<T extends PropertyValidators>(
70
+ obj: T,
71
+ ): {
72
+ [K in keyof T]: VOptional<T[K]>;
73
+ };
74
+ /**
75
+ * partial helps you define an object of optional validators more concisely.
76
+ *
77
+ * `partial(v.object({a: v.string(), b: v.number()}))` is equivalent to
78
+ * `v.object({a: v.optional(v.string()), b: v.optional(v.number())})`
79
+ *
80
+ * @param obj The object of validators to make optional. e.g. v.object({a: v.string()})
81
+ * @returns A new object of validators that can be the value or undefined.
82
+ */
83
+ export function partial<
84
+ T,
85
+ V extends Record<string, GenericValidator>,
86
+ O extends OptionalProperty,
87
+ >(obj: VObject<T, V, O>): PartialVObject<T, V, O>;
88
+ /**
89
+ * partial helps you define a union of optional validators more concisely.
90
+ *
91
+ * `partial(v.union(v.object({a: v.string()}), v.object({b: v.number()})))`
92
+ * is equivalent to
93
+ * `v.union(v.object({a: v.optional(v.string())}), v.object({b: v.optional(v.number())}))`
94
+ *
95
+ * @param obj The union of validators to make optional. e.g. v.union(v.object({a: v.string()}), v.object({b: v.number()}))
96
+ * @returns A new union of validators that can be the value or undefined.
97
+ */
98
+ export function partial<
99
+ T,
100
+ V extends Validator<T, "required", any>[],
101
+ O extends OptionalProperty,
102
+ >(obj: VUnion<T, V, O>): PartialVUnion<T, V, O>;
103
+ export function partial(
104
+ fieldsOrObjOrUnion:
105
+ | PropertyValidators
106
+ | VObject<any, any, any>
107
+ | VUnion<any, any[], any>,
108
+ ) {
109
+ if (fieldsOrObjOrUnion.isConvexValidator) {
110
+ if (fieldsOrObjOrUnion.kind === "object") {
111
+ return partialVObject(fieldsOrObjOrUnion);
112
+ }
113
+ if (fieldsOrObjOrUnion.kind === "union") {
114
+ return partialUnion(fieldsOrObjOrUnion);
115
+ }
116
+ throw new Error(
117
+ "partial only works with union or object Validators, or a Record<string, Validator> currently",
118
+ );
119
+ }
120
+ return partialFields(fieldsOrObjOrUnion as PropertyValidators);
121
+ }
122
+
123
+ /**
124
+ * partialFields helps you define an object of optional validators more concisely.
125
+ *
126
+ * e.g. `partialFields({a: v.string(), b: v.number()})` is equivalent to
65
127
  * `{a: v.optional(v.string()), b: v.optional(v.number())}`
66
128
  *
67
129
  * @param obj The object of validators to make optional. e.g. {a: v.string()}
68
130
  * @returns A new object of validators that can be the value or undefined.
69
131
  */
70
- export const partial = <T extends PropertyValidators>(obj: T) => {
132
+ function partialFields<T extends PropertyValidators>(
133
+ obj: T,
134
+ ): {
135
+ [K in keyof T]: VOptional<T[K]>;
136
+ } {
71
137
  return Object.fromEntries(
72
138
  Object.entries(obj).map(([k, vv]) => [
73
139
  k,
74
140
  vv.isOptional === "optional" ? vv : v.optional(vv),
75
141
  ]),
76
- ) as {
77
- [K in keyof T]: VOptional<T[K]>;
78
- };
142
+ ) as any;
143
+ }
144
+
145
+ /**
146
+ * partialObject helps you define an object of optional validators more concisely.
147
+ *
148
+ * e.g. `partialObject({a: v.string(), b: v.number()})` is equivalent to
149
+ * `{a: v.optional(v.string()), b: v.optional(v.number())}`
150
+ *
151
+ * @param obj The object of validators to make optional. e.g. {a: v.string()}
152
+ * @returns A new object of validators that can be the value or undefined.
153
+ */
154
+ function partialVObject<
155
+ T,
156
+ V extends Record<string, GenericValidator>,
157
+ Optional extends OptionalProperty,
158
+ >(obj: VObject<T, V, Optional>): PartialVObject<T, V, Optional> {
159
+ const o = v.object(partialFields(obj.fields));
160
+ if (obj.isOptional === "optional") {
161
+ return v.optional(o) as any;
162
+ }
163
+ return o as any;
164
+ }
165
+
166
+ type PartialVObject<
167
+ T,
168
+ V extends Record<string, GenericValidator>,
169
+ Optional extends OptionalProperty,
170
+ > = VObject<
171
+ Partial<T>,
172
+ {
173
+ [K in keyof V]: VOptional<V[K]>;
174
+ },
175
+ Optional
176
+ >;
177
+
178
+ type PartialUnionMembers<
179
+ Members extends readonly Validator<any, "required", any>[],
180
+ > = {
181
+ [K in keyof Members]: Members[K] extends VObject<any, any, "required">
182
+ ? Members[K] extends VObject<
183
+ infer MemberT,
184
+ infer MemberV extends PropertyValidators,
185
+ "required"
186
+ >
187
+ ? PartialVObject<MemberT, MemberV, "required">
188
+ : Members[K]
189
+ : Members[K] extends VUnion<any, any, "required">
190
+ ? Members[K] extends VUnion<infer MemberT, infer MemberV, "required">
191
+ ? PartialVUnion<MemberT, MemberV, "required">
192
+ : Members[K]
193
+ : Members[K];
79
194
  };
80
195
 
196
+ function partialUnion<
197
+ T,
198
+ V extends Validator<T, "required", any>[],
199
+ Optional extends OptionalProperty,
200
+ >(union: VUnion<T, V, Optional>): PartialVUnion<T, V, Optional> {
201
+ const u = v.union(
202
+ ...union.members.map((m) => {
203
+ assert(m.isOptional === "required", "Union members cannot be optional");
204
+ if (m.kind === "object") {
205
+ return partialVObject(m) as VObject<any, any, "required">;
206
+ }
207
+ if (m.kind === "union") {
208
+ return partialUnion(m) as VUnion<any, any[], "required">;
209
+ }
210
+ throw new Error(`Invalid union member type: ${m.kind}`);
211
+ }),
212
+ ) as any;
213
+ if (union.isOptional === "optional") {
214
+ return v.optional(u) as any;
215
+ }
216
+ return u as any;
217
+ }
218
+
219
+ type PartialVUnion<
220
+ T,
221
+ Members extends Validator<T, "required", any>[],
222
+ Optional extends OptionalProperty,
223
+ > = VUnion<Partial<T>, PartialUnionMembers<Members>, Optional>;
224
+
81
225
  // Shorthand for defining validators that look like types.
82
226
 
83
- /** Any string value. */
227
+ /** @deprecated Use `v.string()` instead. Any string value. */
84
228
  export const string = v.string();
85
- /** JavaScript number, represented as a float64 in the database. */
229
+ /** @deprecated Use `v.float64()` instead. JavaScript number, represented as a float64 in the database. */
86
230
  export const number = v.float64();
87
- /** JavaScript number, represented as a float64 in the database. */
231
+ /** @deprecated Use `v.float64()` instead. JavaScript number, represented as a float64 in the database. */
88
232
  export const float64 = v.float64();
89
- /** boolean value. For typing it only as true, use `l(true)` */
233
+ /** @deprecated Use `v.boolean()` instead. boolean value. For typing it only as true, use `l(true)` */
90
234
  export const boolean = v.boolean();
91
- /** bigint, though stored as an int64 in the database. */
92
- export const bigint = v.int64();
93
- /** bigint, though stored as an int64 in the database. */
235
+ /** @deprecated Use `v.int64()` instead. bigint, though stored as an int64 in the database. */
236
+ export const biging = v.int64();
237
+ /** @deprecated Use `v.int64()` instead. bigint, though stored as an int64 in the database. */
94
238
  export const int64 = v.int64();
95
- /** Any Convex value */
239
+ /** @deprecated Use `v.any()` instead. Any Convex value */
96
240
  export const any = v.any();
97
- /** Null value. Underscore is so it doesn't shadow the null builtin */
241
+ /** @deprecated Use `v.null()` instead. Null value. Underscore is so it doesn't shadow the null builtin */
98
242
  export const null_ = v.null();
99
- /** Re-export values from v without having to do v.* */
243
+ /** @deprecated Use `v.*()` instead. */
100
244
  export const { id, object, array, bytes, literal, optional, union } = v;
101
- /** ArrayBuffer validator. */
102
- export const arrayBuffer = bytes();
245
+ /** @deprecated Use `v.bytes()` instead. ArrayBuffer validator. */
246
+ export const arrayBuffer = v.bytes();
103
247
 
104
248
  /**
105
249
  * Utility to get the validators for fields associated with a table.
@@ -478,7 +622,7 @@ export function validate<T extends Validator<any, any, any>>(
478
622
 
479
623
  if (!isSimple) {
480
624
  expected =
481
- prototype?.constructor?.name ?? (typeof prototype || "object");
625
+ (prototype?.constructor?.name ?? typeof prototype) || "object";
482
626
  valid = false;
483
627
  break;
484
628
  }