schematox 1.2.4 → 1.3.0-alpha

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
@@ -2,7 +2,7 @@
2
2
 
3
3
  Schematox is a lightweight typesafe schema defined parser. All schemas are JSON compatible.
4
4
 
5
- The library is focusing on fixed set of schema types: boolean, literal, number, string, array, object, record, tuple, union. Each schema can have parameters: optional, nullable, description. Each primitive schema has "brand" parameter as mean of making its subject type [nominal](https://github.com/Microsoft/TypeScript/wiki/FAQ#can-i-make-a-type-alias-nominal). The rest parameters is schema specific range limiters.
5
+ The library is focusing on fixed set of schema types: boolean, literal, number, bigint, string, array, object, record, tuple, union. Each schema can have parameters: optional, nullable, description. Each primitive schema has "brand" parameter as mean of making its subject type [nominal](https://github.com/Microsoft/TypeScript/wiki/FAQ#can-i-make-a-type-alias-nominal). The rest parameters is schema specific range limiters.
6
6
 
7
7
  Library supports static schema definition which means your schemas could be completely independent from schematox. One could use such schemas as source for generation other structures like DB models.
8
8
 
@@ -19,6 +19,7 @@ The library is small so exploring README.md is enough for understanding its API,
19
19
  - [Boolean](#boolean)
20
20
  - [Literal](#literal)
21
21
  - [Number](#number)
22
+ - [BigInt](#bigint)
22
23
  - [String](#string)
23
24
  - [Compound Schema](#compound-schema)
24
25
  - [Array](#array)
@@ -37,12 +38,12 @@ npm install schematox
37
38
 
38
39
  ## Minimal Requirements
39
40
 
40
- - ECMAScript version: `2018`
41
+ - ECMAScript version: `2020`
41
42
  - TypeScript version: `5.3.2`
42
43
 
43
44
  ## Features
44
45
 
45
- - Statically defined **JSON** compatible schema
46
+ - Statically defined **JSON** compatible schema (easy to serialize/deserialize/generate/store/transfer)
46
47
  - Programmatically defined schema (**struct**, **construct**)
47
48
  - Check defined schema correctness using non generic type **Schema**
48
49
  - Ether-style error handling (no unexpected throws)
@@ -105,7 +106,7 @@ parsed.data
105
106
 
106
107
  ### Struct
107
108
 
108
- Is commonly accepted way of schema, as seen in [zod](https://github.com/colinhacks/zod) or [superstruct](https://github.com/ianstormtaylor/superstruct) library:
109
+ Is commonly accepted way of schema definition, as seen in [zod](https://github.com/colinhacks/zod) or [superstruct](https://github.com/ianstormtaylor/superstruct) library:
109
110
 
110
111
  ```typescript
111
112
  import { object, string } from 'schematox'
@@ -237,7 +238,7 @@ const schema = {
237
238
  nullable: true,
238
239
  brand: ['x', 'y'],
239
240
  min: 1,
240
- max: 2,
241
+ max: 4,
241
242
  description: 'x',
242
243
  } as const satisfies Schema
243
244
 
@@ -246,13 +247,40 @@ const struct = number()
246
247
  .nullable()
247
248
  .brand('x', 'y')
248
249
  .min(1)
249
- .max(2)
250
+ .max(4)
250
251
  .description('x')
251
252
 
252
253
  // (number & { __x: 'y' }) | undefined | null
253
254
  type FromSchema = Infer<typeof schema>
254
255
  type FromStruct = Infer<typeof struct>
255
- //
256
+ ```
257
+
258
+ ### BigInt
259
+
260
+ Native support for JavaScript's `bigint` primitive type.
261
+
262
+ ```typescript
263
+ const schema = {
264
+ type: 'bigint',
265
+ optional: true,
266
+ nullable: true,
267
+ brand: ['x', 'y'],
268
+ min: '1',
269
+ max: '4',
270
+ description: 'x',
271
+ } as const satisfies Schema
272
+
273
+ const struct = bigint()
274
+ .optional()
275
+ .nullable()
276
+ .brand('x', 'y')
277
+ .min('1')
278
+ .max('4')
279
+ .description('x')
280
+
281
+ // (bigint & { __x: 'y' }) | undefined | null
282
+ type FromSchema = Infer<typeof schema>
283
+ type FromStruct = Infer<typeof struct>
256
284
  ```
257
285
 
258
286
  ## Compound Schema
@@ -6,6 +6,7 @@ export declare const PARAMS_BY_SCHEMA_TYPE: {
6
6
  readonly boolean: Set<"optional" | "nullable" | "brand" | "description">;
7
7
  readonly literal: Set<"optional" | "nullable" | "brand" | "description">;
8
8
  readonly number: Set<"optional" | "nullable" | "brand" | "description" | "min" | "max">;
9
+ readonly bigint: Set<"optional" | "nullable" | "brand" | "description" | "min" | "max">;
9
10
  readonly string: Set<"optional" | "nullable" | "brand" | "description" | "minLength" | "maxLength">;
10
11
  readonly array: Set<"optional" | "nullable" | "description" | "minLength" | "maxLength">;
11
12
  readonly object: Set<"optional" | "nullable" | "description">;
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;CAGb,CAAA;AAGV,eAAO,MAAM,qBAAqB;;;;;;;;;;CAWxB,CAAA;AAEV,eAAO,MAAM,eAAe;;;CAGlB,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,UAAU;;;CAGb,CAAA;AAGV,eAAO,MAAM,qBAAqB;;;;;;;;;;;CAYxB,CAAA;AAEV,eAAO,MAAM,eAAe;;;CAGlB,CAAA"}
package/dist/constants.js CHANGED
@@ -7,6 +7,7 @@ export const PARAMS_BY_SCHEMA_TYPE = {
7
7
  boolean: new Set(['optional', 'nullable', 'brand', 'description']),
8
8
  literal: new Set(['optional', 'nullable', 'brand', 'description']),
9
9
  number: new Set(['optional', 'nullable', 'brand', 'description', 'min', 'max']),
10
+ bigint: new Set(['optional', 'nullable', 'brand', 'description', 'min', 'max']),
10
11
  string: new Set(['optional', 'nullable', 'brand', 'description', 'minLength', 'maxLength']),
11
12
  //
12
13
  array: new Set(['optional', 'nullable', 'description', 'minLength', 'maxLength']),
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,eAAe;CACrB,CAAA;AAEV,kBAAkB;AAClB,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO,EAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,CAAU,CAAC;IAC5E,OAAO,EAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,CAAU,CAAC;IAC5E,MAAM,EAAI,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;IAC1F,MAAM,EAAI,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAU,CAAC;IACtG,EAAE;IACF,KAAK,EAAK,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAU,CAAC;IAC7F,MAAM,EAAI,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAU,CAAC;IACnE,MAAM,EAAI,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAU,CAAC;IAC7F,KAAK,EAAK,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAU,CAAC;IACnE,KAAK,EAAK,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAU,CAAC;CAC3D,CAAA;AAEV,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,WAAW;CACX,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,cAAc;IAC3B,YAAY,EAAE,eAAe;CACrB,CAAA;AAEV,kBAAkB;AAClB,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,OAAO,EAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,CAAU,CAAC;IAC5E,OAAO,EAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,CAAU,CAAC;IAC5E,MAAM,EAAI,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;IAC1F,MAAM,EAAI,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,KAAK,CAAU,CAAC;IAC1F,MAAM,EAAI,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAU,CAAC;IACtG,EAAE;IACF,KAAK,EAAK,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAU,CAAC;IAC7F,MAAM,EAAI,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAU,CAAC;IACnE,MAAM,EAAI,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,CAAU,CAAC;IAC7F,KAAK,EAAK,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAU,CAAC;IACnE,KAAK,EAAK,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,aAAa,CAAU,CAAC;CAC3D,CAAA;AAEV,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,WAAW;CACX,CAAA"}
package/dist/index.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  export { ERROR_CODE, PARAMS_BY_SCHEMA_TYPE } from './constants';
2
2
  export { parse } from './parse';
3
- export { makeStruct, boolean, literal, number, string, array, object, record, tuple, union, } from './struct';
3
+ export { makeStruct, boolean, literal, number, bigint, string, array, object, record, tuple, union, } from './struct';
4
4
  export { error, success, tCh } from './utils';
5
5
  export type { ErrorCode, ErrorPath, InvalidSubject, ParseError, ParseResult, ParseSuccess, PrettifyObject, } from './types/utils';
6
6
  export type { Infer, InferSchema, InferPrimitive, InferArray, InferObject, InferRecord, InferUnion, } from './types/infer';
7
- export type { Schema, PrimitiveSchema, ArraySchema, ObjectSchema, RecordSchema, UnionSchema, BrandSchema, BooleanSchema, LiteralSchema, NumberSchema, StringSchema, } from './types/schema';
7
+ export type { Schema, PrimitiveSchema, ArraySchema, ObjectSchema, RecordSchema, UnionSchema, BrandSchema, BigIntSchema, BooleanSchema, LiteralSchema, NumberSchema, StringSchema, BigIntString, } from './types/schema';
8
8
  export type { Struct, StructShape, StructParams } from './types/struct';
9
9
  export type { ExtendParams, ExtendBrand, ExtendOptional, ExtendNullable, } from './types/extensions';
10
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAE/D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,OAAO,EACL,UAAU,EAEV,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EAEN,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,KAAK,GACN,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAE7C,YAAY,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAA;AAEtB,YAAY,EACV,KAAK,EAEL,WAAW,EACX,cAAc,EAEd,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,eAAe,CAAA;AAEtB,YAAY,EACV,MAAM,EACN,eAAe,EAEf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EAEX,WAAW,EAEX,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,GACb,MAAM,gBAAgB,CAAA;AAEvB,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEvE,YAAY,EACV,YAAY,EAEZ,WAAW,EACX,cAAc,EACd,cAAc,GACf,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAE/D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,OAAO,EACL,UAAU,EAEV,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM,EAEN,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,KAAK,GACN,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAE7C,YAAY,EACV,SAAS,EACT,SAAS,EACT,cAAc,EACd,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,eAAe,CAAA;AAEtB,YAAY,EACV,KAAK,EAEL,WAAW,EACX,cAAc,EAEd,UAAU,EACV,WAAW,EACX,WAAW,EACX,UAAU,GACX,MAAM,eAAe,CAAA;AAEtB,YAAY,EACV,MAAM,EACN,eAAe,EAEf,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,WAAW,EAEX,WAAW,EAEX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EAEZ,YAAY,GACb,MAAM,gBAAgB,CAAA;AAEvB,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAEvE,YAAY,EACV,YAAY,EAEZ,WAAW,EACX,cAAc,EACd,cAAc,GACf,MAAM,oBAAoB,CAAA"}
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ export { ERROR_CODE, PARAMS_BY_SCHEMA_TYPE } from './constants';
2
2
  export { parse } from './parse';
3
3
  export { makeStruct,
4
4
  //
5
- boolean, literal, number, string,
5
+ boolean, literal, number, bigint, string,
6
6
  //
7
7
  array, object, record, tuple, union, } from './struct';
8
8
  export { error, success, tCh } from './utils';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAE/D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,OAAO,EACL,UAAU;AACV,EAAE;AACF,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM;AACN,EAAE;AACF,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,KAAK,GACN,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAE/D,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAE/B,OAAO,EACL,UAAU;AACV,EAAE;AACF,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,MAAM;AACN,EAAE;AACF,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,KAAK,GACN,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAA6B,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3E,OAAO,KAAK,EACV,MAAM,EAYP,MAAM,gBAAgB,CAAA;AAevB,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACpC,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,OAAO,GACf,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAA6B,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3E,OAAO,KAAK,EACV,MAAM,EAaP,MAAM,gBAAgB,CAAA;AAgBvB,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACpC,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,OAAO,GACf,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA"}
package/dist/parse.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import { ERROR_CODE } from './constants';
2
2
  import { error, success } from './utils';
3
3
  const PARSE_FN_BY_SCHEMA_KIND = {
4
+ bigint: parseBigInt,
4
5
  boolean: parseBoolean,
5
6
  literal: parseLiteral,
6
7
  number: parseNumber,
@@ -24,6 +25,45 @@ function parseRecursively(errorPath, schema, subject) {
24
25
  }
25
26
  return PARSE_FN_BY_SCHEMA_KIND[schema.type](errorPath, schema, subject);
26
27
  }
28
+ function parseBigInt(errorPath, schema, subject) {
29
+ if (typeof subject !== 'bigint') {
30
+ return error([
31
+ {
32
+ code: ERROR_CODE.invalidType,
33
+ path: errorPath,
34
+ subject,
35
+ schema,
36
+ },
37
+ ]);
38
+ }
39
+ if (typeof schema.min === 'string') {
40
+ const min = BigInt(schema.min);
41
+ if (subject < min) {
42
+ return error([
43
+ {
44
+ code: ERROR_CODE.invalidRange,
45
+ path: errorPath,
46
+ subject,
47
+ schema,
48
+ },
49
+ ]);
50
+ }
51
+ }
52
+ if (typeof schema.max === 'string') {
53
+ const max = BigInt(schema.max);
54
+ if (subject > max) {
55
+ return error([
56
+ {
57
+ code: ERROR_CODE.invalidRange,
58
+ path: errorPath,
59
+ subject,
60
+ schema,
61
+ },
62
+ ]);
63
+ }
64
+ }
65
+ return success(subject);
66
+ }
27
67
  function parseBoolean(errorPath, schema, subject) {
28
68
  if (typeof subject !== 'boolean') {
29
69
  return error([
@@ -143,7 +183,7 @@ function parseArray(errorPath, schema, subject) {
143
183
  const updatedErrorPath = [...errorPath, i];
144
184
  const parsed = parseRecursively(updatedErrorPath, nestedSchema, nestedValue);
145
185
  if (parsed.error) {
146
- invalidSubjects = invalidSubjects !== null && invalidSubjects !== void 0 ? invalidSubjects : [];
186
+ invalidSubjects = invalidSubjects ?? [];
147
187
  for (const invalidSubject of parsed.error) {
148
188
  invalidSubjects.push(invalidSubject);
149
189
  }
@@ -162,7 +202,7 @@ function parseArray(errorPath, schema, subject) {
162
202
  ]);
163
203
  }
164
204
  }
165
- if (invalidSubjects === null || invalidSubjects === void 0 ? void 0 : invalidSubjects.length) {
205
+ if (invalidSubjects?.length) {
166
206
  return error(invalidSubjects);
167
207
  }
168
208
  if (typeof schema.minLength === 'number' &&
@@ -201,7 +241,7 @@ function parseObject(errorPath, schema, subject) {
201
241
  const updatedErrorPath = [...errorPath, key];
202
242
  const parsed = parseRecursively(updatedErrorPath, nestedSchema, nestedValue);
203
243
  if (parsed.error) {
204
- invalidSubjects = invalidSubjects !== null && invalidSubjects !== void 0 ? invalidSubjects : [];
244
+ invalidSubjects = invalidSubjects ?? [];
205
245
  for (const invalidSubject of parsed.error) {
206
246
  invalidSubjects.push(invalidSubject);
207
247
  }
@@ -211,7 +251,7 @@ function parseObject(errorPath, schema, subject) {
211
251
  result[key] = parsed.data;
212
252
  }
213
253
  }
214
- if (invalidSubjects === null || invalidSubjects === void 0 ? void 0 : invalidSubjects.length) {
254
+ if (invalidSubjects?.length) {
215
255
  return error(invalidSubjects);
216
256
  }
217
257
  return success(result);
@@ -241,7 +281,7 @@ function parseRecord(errorPath, schema, subject) {
241
281
  const updatedErrorPath = [...errorPath, key];
242
282
  const parsed = parseRecursively(updatedErrorPath, schema.of, nestedValue);
243
283
  if (parsed.error) {
244
- invalidSubjects = invalidSubjects !== null && invalidSubjects !== void 0 ? invalidSubjects : [];
284
+ invalidSubjects = invalidSubjects ?? [];
245
285
  for (const invalidSubject of parsed.error) {
246
286
  invalidSubjects.push(invalidSubject);
247
287
  }
@@ -272,7 +312,7 @@ function parseRecord(errorPath, schema, subject) {
272
312
  },
273
313
  ]);
274
314
  }
275
- if (invalidSubjects === null || invalidSubjects === void 0 ? void 0 : invalidSubjects.length) {
315
+ if (invalidSubjects?.length) {
276
316
  return error(invalidSubjects);
277
317
  }
278
318
  return success(result);
@@ -296,7 +336,7 @@ function parseTuple(errorPath, schema, subject) {
296
336
  const updatedErrorPath = [...errorPath, i];
297
337
  const parsed = parseRecursively(updatedErrorPath, nestedSchema, nestedValue);
298
338
  if (parsed.error) {
299
- invalidSubjects = invalidSubjects !== null && invalidSubjects !== void 0 ? invalidSubjects : [];
339
+ invalidSubjects = invalidSubjects ?? [];
300
340
  for (const invalidSubject of parsed.error) {
301
341
  invalidSubjects.push(invalidSubject);
302
342
  }
@@ -304,7 +344,7 @@ function parseTuple(errorPath, schema, subject) {
304
344
  }
305
345
  result.push(parsed.data);
306
346
  }
307
- if (invalidSubjects === null || invalidSubjects === void 0 ? void 0 : invalidSubjects.length) {
347
+ if (invalidSubjects?.length) {
308
348
  return error(invalidSubjects);
309
349
  }
310
350
  return success(result);
package/dist/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAqBxC,MAAM,uBAAuB,GAAG;IAC9B,MAAM,EAAE,WAAW;IACnB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,EAAE;IACF,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,UAAU;CAClB,CAAA;AAOD,MAAM,UAAU,KAAK,CAAC,MAAc,EAAE,OAAgB;IACpD,OAAO,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AAC9C,CAAC;AAED,SAAS,gBAAgB,CACvB,SAAoB,EACpB,MAAc,EACd,OAAgB;IAEhB,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACtD,OAAO,OAAO,CAAC,SAAS,CAAC,CAAA;IAC3B,CAAC;IAED,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;QACjD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAA;IACtB,CAAC;IAED,OAAO,uBAAuB,CAAC,MAAM,CAAC,IAAI,CAAC,CACzC,SAAS,EACT,MAAe,EACf,OAAO,CACR,CAAA;AACH,CAAC;AAED,SAAS,WAAW,CAClB,SAAoB,EACpB,MAAoB,EACpB,OAAgB;IAEhB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;YACX;gBACE,IAAI,EAAE,UAAU,CAAC,WAAW;gBAC5B,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,MAAM;aACP;SACF,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAE9B,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;gBACX;oBACE,IAAI,EAAE,UAAU,CAAC,YAAY;oBAC7B,IAAI,EAAE,SAAS;oBACf,OAAO;oBACP,MAAM;iBACP;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAE9B,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;YAClB,OAAO,KAAK,CAAC;gBACX;oBACE,IAAI,EAAE,UAAU,CAAC,YAAY;oBAC7B,IAAI,EAAE,SAAS;oBACf,OAAO;oBACP,MAAM;iBACP;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,YAAY,CACnB,SAAoB,EACpB,MAAqB,EACrB,OAAgB;IAEhB,IAAI,OAAO,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;YACX;gBACE,IAAI,EAAE,UAAU,CAAC,WAAW;gBAC5B,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,MAAM;aACP;SACF,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,YAAY,CACnB,SAAoB,EACpB,MAAqB,EACrB,OAAgB;IAEhB,IAAI,OAAO,KAAK,MAAM,CAAC,EAAE,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;YACX;gBACE,IAAI,EAAE,UAAU,CAAC,WAAW;gBAC5B,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,MAAM;aACP;SACF,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,WAAW,CAClB,SAAoB,EACpB,MAAoB,EACpB,OAAgB;IAEhB,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC;QACtE,OAAO,KAAK,CAAC;YACX;gBACE,IAAI,EAAE,UAAU,CAAC,WAAW;gBAC5B,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,MAAM;aACP;SACF,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;gBACX;oBACE,IAAI,EAAE,UAAU,CAAC,YAAY;oBAC7B,IAAI,EAAE,SAAS;oBACf,OAAO;oBACP,MAAM;iBACP;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,IAAI,OAAO,GAAG,MAAM,CAAC,GAAG,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;gBACX;oBACE,IAAI,EAAE,UAAU,CAAC,YAAY;oBAC7B,IAAI,EAAE,SAAS;oBACf,OAAO;oBACP,MAAM;iBACP;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,WAAW,CAClB,SAAoB,EACpB,MAAoB,EACpB,OAAgB;IAEhB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,KAAK,CAAC;YACX;gBACE,IAAI,EAAE,UAAU,CAAC,WAAW;gBAC5B,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,MAAM;aACP;SACF,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;gBACX;oBACE,IAAI,EAAE,UAAU,CAAC,YAAY;oBAC7B,IAAI,EAAE,SAAS;oBACf,OAAO;oBACP,MAAM;iBACP;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;gBACX;oBACE,IAAI,EAAE,UAAU,CAAC,YAAY;oBAC7B,IAAI,EAAE,SAAS;oBACf,OAAO;oBACP,MAAM;iBACP;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA;AACzB,CAAC;AAED,SAAS,UAAU,CACjB,SAAoB,EACpB,MAA2B,EAC3B,OAAgB;IAEhB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;YACX;gBACE,IAAI,EAAE,UAAU,CAAC,WAAW;gBAC5B,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,MAAM;aACP;SACF,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAAc,EAAE,CAAA;IAC5B,IAAI,eAA6C,CAAA;IAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAA;QAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAE9B,MAAM,gBAAgB,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;QAE5E,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,eAAe,GAAG,eAAe,IAAI,EAAE,CAAA;YAEvC,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC1C,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACtC,CAAC;YACD,SAAQ;QACV,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAExB,IACE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;YACpC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAChC,CAAC;YACD,OAAO,KAAK,CAAC;gBACX;oBACE,IAAI,EAAE,UAAU,CAAC,YAAY;oBAC7B,IAAI,EAAE,SAAS;oBACf,OAAO;oBACP,MAAM;iBACP;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAI,eAAe,EAAE,MAAM,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,eAAe,CAAC,CAAA;IAC/B,CAAC;IAED,IACE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QACpC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,SAAS,EAChC,CAAC;QACD,OAAO,KAAK,CAAC;YACX;gBACE,IAAI,EAAE,UAAU,CAAC,YAAY;gBAC7B,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,MAAM;aACP;SACF,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;AACxB,CAAC;AAED,SAAS,WAAW,CAClB,SAAoB,EACpB,MAA4C,EAC5C,OAAgB;IAEhB,IACE,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,OAAO,CAAC,WAAW,KAAK,MAAM,EAC9B,CAAC;QACD,OAAO,KAAK,CAAC;YACX;gBACE,IAAI,EAAE,UAAU,CAAC,WAAW;gBAC5B,IAAI,EAAE,SAAS;gBACf,MAAM;gBACN,OAAO;aACR;SACF,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,IAAI,eAA6C,CAAA;IAEjD,wCAAwC;IACxC,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,OAAkC,CAAA;QACvD,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,GAAG,CAAW,CAAA;QAC7C,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAA;QAErC,MAAM,gBAAgB,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;QAE5E,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,eAAe,GAAG,eAAe,IAAI,EAAE,CAAA;YAEvC,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC1C,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACtC,CAAC;YACD,SAAQ;QACV,CAAC;QAED,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE,CAAC;YAC5D,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,IAAI,eAAe,EAAE,MAAM,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,eAAe,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;AACxB,CAAC;AAED,SAAS,WAAW,CAClB,SAAoB,EACpB,MAA4B,EAC5B,OAAgB;IAEhB,IACE,OAAO,OAAO,KAAK,QAAQ;QAC3B,OAAO,KAAK,IAAI;QAChB,OAAO,CAAC,WAAW,KAAK,MAAM,EAC9B,CAAC;QACD,OAAO,KAAK,CAAC;YACX;gBACE,IAAI,EAAE,UAAU,CAAC,WAAW;gBAC5B,IAAI,EAAE,SAAS;gBACf,MAAM;gBACN,OAAO;aACR;SACF,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAA4B,EAAE,CAAA;IAC1C,IAAI,eAA6C,CAAA;IACjD,IAAI,iBAAiB,GAAG,CAAC,CAAA;IAEzB,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,WAAW,GAAI,OAAmC,CAAC,GAAG,CAAC,CAAA;QAE7D,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;YAC9B,uDAAuD;YACvD,SAAQ;QACV,CAAC;QAED,MAAM,gBAAgB,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,CAAC,CAAA;QAC5C,MAAM,MAAM,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAA;QAEzE,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,eAAe,GAAG,eAAe,IAAI,EAAE,CAAA;YAEvC,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC1C,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACtC,CAAC;YACD,SAAQ;QACV,CAAC;QAED,iBAAiB,EAAE,CAAA;QAEnB,IACE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;YACpC,iBAAiB,GAAG,MAAM,CAAC,SAAS,EACpC,CAAC;YACD,OAAO,KAAK,CAAC;gBACX;oBACE,IAAI,EAAE,UAAU,CAAC,YAAY;oBAC7B,IAAI,EAAE,SAAS;oBACf,OAAO;oBACP,MAAM;iBACP;aACF,CAAC,CAAA;QACJ,CAAC;QAED,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA;IAC3B,CAAC;IAED,IACE,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ;QACpC,iBAAiB,GAAG,MAAM,CAAC,SAAS,EACpC,CAAC;QACD,OAAO,KAAK,CAAC;YACX;gBACE,IAAI,EAAE,UAAU,CAAC,YAAY;gBAC7B,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,MAAM;aACP;SACF,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,eAAe,EAAE,MAAM,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,eAAe,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;AACxB,CAAC;AAED,SAAS,UAAU,CACjB,SAAoB,EACpB,MAAkC,EAClC,OAAgB;IAEhB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;YACX;gBACE,IAAI,EAAE,UAAU,CAAC,WAAW;gBAC5B,IAAI,EAAE,SAAS;gBACf,OAAO;gBACP,MAAM;aACP;SACF,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAAc,EAAE,CAAA;IAC5B,IAAI,eAA6C,CAAA;IAEjD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,CAAE,CAAA;QAClC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAE9B,MAAM,gBAAgB,GAAG,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAA;QAC1C,MAAM,MAAM,GAAG,gBAAgB,CAAC,gBAAgB,EAAE,YAAY,EAAE,WAAW,CAAC,CAAA;QAE5E,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,eAAe,GAAG,eAAe,IAAI,EAAE,CAAA;YAEvC,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;gBAC1C,eAAe,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACtC,CAAC;YACD,SAAQ;QACV,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IAED,IAAI,eAAe,EAAE,MAAM,EAAE,CAAC;QAC5B,OAAO,KAAK,CAAC,eAAe,CAAC,CAAA;IAC/B,CAAC;IAED,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;AACxB,CAAC;AAED,SAAS,UAAU,CACjB,SAAoB,EACpB,MAAkC,EAClC,OAAgB;IAEhB,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;QAClC,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAA;QAE9D,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC/B,OAAO,MAAM,CAAA;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;QACX;YACE,IAAI,EAAE,UAAU,CAAC,WAAW;YAC5B,IAAI,EAAE,SAAS;YACf,OAAO;YACP,MAAM;SACP;KACF,CAAC,CAAA;AACJ,CAAC"}
package/dist/struct.d.ts CHANGED
@@ -14,6 +14,9 @@ export declare function literal<T extends string | number | boolean>(of: T): Str
14
14
  export declare function number(): Struct<{
15
15
  type: "number";
16
16
  }>;
17
+ export declare function bigint(): Struct<{
18
+ type: "bigint";
19
+ }>;
17
20
  export declare function string(): Struct<{
18
21
  type: "string";
19
22
  }>;
@@ -28,14 +31,14 @@ export declare function object<T extends Record<string, StructShape<Schema>>>(of
28
31
  type: "object";
29
32
  of: { [K in keyof T]: T[K]["__schema"]; };
30
33
  }>;
31
- export declare function record<T extends StructShape<Schema>>(of: T, key?: undefined): Struct<{
32
- type: 'record';
33
- of: T['__schema'];
34
- }>;
35
- export declare function record<T extends StructShape<Schema>, U extends StructShape<StringSchema>>(of: T, key: U): Struct<{
36
- type: 'record';
37
- of: T['__schema'];
38
- key: U['__schema'];
34
+ export declare function record<T extends StructShape<Schema>, U extends StructShape<StringSchema> | undefined>(of: T, key?: U): Struct<{
35
+ type: "record";
36
+ of: T["__schema"];
37
+ key: NonNullable<U>["__schema"];
38
+ } | {
39
+ type: "record";
40
+ of: T["__schema"];
41
+ key?: undefined;
39
42
  }>;
40
43
  export declare function tuple<T extends [StructShape<Schema>, ...Array<StructShape<Schema>>]>(of: T): Struct<{
41
44
  readonly type: "tuple";
@@ -1 +1 @@
1
- {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAe,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,KAAK,EAAE,MAAM,EAAgB,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEvE,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AAkElE;;IAEI;AAEJ,wBAAgB,OAAO;;GAEtB;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,EAAE,EAAE,CAAC;;;GAEjE;AAED,wBAAgB,MAAM;;GAErB;AAED,wBAAgB,MAAM;;GAErB;AAED;;IAEI;AAEJ,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;;;GAKzD;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;;;GAW1E;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAClD,EAAE,EAAE,CAAC,EACL,GAAG,CAAC,EAAE,SAAS,GACd,MAAM,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAA;CAAE,CAAC,CAAA;AAEhD,wBAAgB,MAAM,CACpB,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAC7B,CAAC,SAAS,WAAW,CAAC,YAAY,CAAC,EAEnC,EAAE,EAAE,CAAC,EACL,GAAG,EAAE,CAAC,GACL,MAAM,CAAC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IAAC,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,CAAA;CAAE,CAAC,CAAA;AAcpE,wBAAgB,KAAK,CACnB,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAC9D,EAAE,EAAE,CAAC;;;GAON;AAED,wBAAgB,KAAK,CACnB,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAC9D,EAAE,EAAE,CAAC;UAEG,OAAO;;GAahB"}
1
+ {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EAGN,YAAY,EACb,MAAM,gBAAgB,CAAA;AACvB,OAAO,KAAK,EAAE,MAAM,EAAgB,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAEvE,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;AA0ElE;;IAEI;AAEJ,wBAAgB,OAAO;;GAEtB;AAED,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,OAAO,EAAE,EAAE,EAAE,CAAC;;;GAEjE;AAED,wBAAgB,MAAM;;GAErB;AAED,wBAAgB,MAAM;;GAErB;AAED,wBAAgB,MAAM;;GAErB;AAED;;IAEI;AAEJ,wBAAgB,KAAK,CAAC,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,CAAC;;;GAKzD;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC;;;GAW1E;AAED,wBAAgB,MAAM,CACpB,CAAC,SAAS,WAAW,CAAC,MAAM,CAAC,EAC7B,CAAC,SAAS,WAAW,CAAC,YAAY,CAAC,GAAG,SAAS,EAC/C,EAAE,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;;;;;;;;GAUf;AAED,wBAAgB,KAAK,CACnB,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAC9D,EAAE,EAAE,CAAC;;;GAON;AAED,wBAAgB,KAAK,CACnB,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAC9D,EAAE,EAAE,CAAC;UAEG,OAAO;;GAahB"}
package/dist/struct.js CHANGED
@@ -38,10 +38,20 @@ export function makeStruct(schema) {
38
38
  };
39
39
  }
40
40
  if (params.has('min')) {
41
- result.min = (min) => makeStruct({ ...schema, min });
41
+ if (schema.type === 'bigint') {
42
+ result.min = (min) => makeStruct({ ...schema, min });
43
+ }
44
+ else {
45
+ result.min = (min) => makeStruct({ ...schema, min });
46
+ }
42
47
  }
43
48
  if (params.has('max')) {
44
- result.max = (max) => makeStruct({ ...schema, max });
49
+ if (schema.type === 'bigint') {
50
+ result.max = (max) => makeStruct({ ...schema, max });
51
+ }
52
+ else {
53
+ result.max = (max) => makeStruct({ ...schema, max });
54
+ }
45
55
  }
46
56
  if (params.has('minLength')) {
47
57
  result.minLength = (minLength) => makeStruct({ ...schema, minLength });
@@ -63,6 +73,9 @@ export function literal(of) {
63
73
  export function number() {
64
74
  return makeStruct({ type: 'number' });
65
75
  }
76
+ export function bigint() {
77
+ return makeStruct({ type: 'bigint' });
78
+ }
66
79
  export function string() {
67
80
  return makeStruct({ type: 'string' });
68
81
  }
@@ -86,14 +99,13 @@ export function object(of) {
86
99
  return makeStruct(schema);
87
100
  }
88
101
  export function record(of, key) {
89
- if (key !== undefined) {
90
- return makeStruct({
102
+ return makeStruct(key
103
+ ? {
91
104
  type: 'record',
92
105
  of: of.__schema,
93
106
  key: key.__schema,
94
- });
95
- }
96
- return makeStruct({ type: 'record', of: of.__schema });
107
+ }
108
+ : { type: 'record', of: of.__schema });
97
109
  }
98
110
  export function tuple(of) {
99
111
  const schema = {
@@ -1 +1 @@
1
- {"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"struct.js","sourceRoot":"","sources":["../src/struct.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Schema, ArraySchema, ObjectSchema, RecordSchema, TupleSchema, UnionSchema, PrimitiveSchema, BooleanSchema, LiteralSchema, NumberSchema, StringSchema, BrandSchema } from './schema';
1
+ import type { Schema, ArraySchema, ObjectSchema, RecordSchema, TupleSchema, UnionSchema, PrimitiveSchema, BigIntSchema, BooleanSchema, LiteralSchema, NumberSchema, StringSchema, BrandSchema } from './schema';
2
2
  import type { StructShape } from './struct';
3
3
  import type { PrettifyObject } from './utils';
4
4
  import type { ExtendParams, ExtendBrand } from './extensions';
@@ -10,7 +10,7 @@ export type InferSchema<T> = ExtendParams<T, T extends PrimitiveSchema ? InferPr
10
10
  export type InferBrand<T extends BrandSchema> = T extends BrandSchema<infer Category, infer SubCategory> ? Category extends string ? {
11
11
  [K in `__${Category}`]: SubCategory;
12
12
  } : never : never;
13
- export type InferPrimitive<T> = T extends StringSchema ? string : T extends NumberSchema ? number : T extends BooleanSchema ? boolean : T extends LiteralSchema<infer U> ? U : never;
13
+ export type InferPrimitive<T> = T extends BigIntSchema ? bigint : T extends BooleanSchema ? boolean : T extends NumberSchema ? number : T extends StringSchema ? string : T extends LiteralSchema<infer U> ? U : never;
14
14
  export type InferArray<T> = T extends ArraySchema<infer U> ? Array<InferSchema<U>> : never;
15
15
  export type InferObject<T> = T extends ObjectSchema<infer U> ? PrettifyObject<{
16
16
  [K in keyof U as U[K] extends {
@@ -1 +1 @@
1
- {"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../src/types/infer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"infer.d.ts","sourceRoot":"","sources":["../../src/types/infer.ts"],"names":[],"mappings":"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"}
@@ -72,7 +72,7 @@ export type PrimitiveSchemaShared = SchemaShared & {
72
72
  **/
73
73
  brand?: BrandSchema;
74
74
  };
75
- export type PrimitiveSchema = StringSchema | NumberSchema | BooleanSchema | LiteralSchema;
75
+ export type PrimitiveSchema = BigIntSchema | BooleanSchema | LiteralSchema | NumberSchema | StringSchema;
76
76
  export type BooleanSchema = PrimitiveSchemaShared & {
77
77
  type: 'boolean';
78
78
  };
@@ -86,6 +86,12 @@ export type NumberSchema = PrimitiveSchemaShared & {
86
86
  min?: number;
87
87
  max?: number;
88
88
  };
89
+ export type BigIntString = `${bigint}`;
90
+ export type BigIntSchema = PrimitiveSchemaShared & {
91
+ type: 'bigint';
92
+ min?: BigIntString;
93
+ max?: BigIntString;
94
+ };
89
95
  export type LiteralSchema<T extends string | number | boolean = string | number | boolean> = PrimitiveSchemaShared & {
90
96
  type: 'literal';
91
97
  of: T;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/types/schema.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { ParseResult } from './utils';
2
2
  import type { StandardSchemaV1 } from './standard-schema';
3
- import type { Schema, ArraySchema, ObjectSchema, RecordSchema, TupleSchema, UnionSchema, BrandSchema, BooleanSchema, LiteralSchema, NumberSchema, StringSchema } from './schema';
3
+ import type { Schema, ArraySchema, ObjectSchema, RecordSchema, TupleSchema, UnionSchema, BrandSchema, BigIntSchema, BooleanSchema, LiteralSchema, NumberSchema, StringSchema, BigIntString } from './schema';
4
4
  import type { InferSchema } from './infer';
5
5
  export type Struct<T extends Schema> = Omit<Pick<{
6
6
  optional: () => Struct<T & {
@@ -18,12 +18,16 @@ export type Struct<T extends Schema> = Omit<Pick<{
18
18
  maxLength: <U extends number>(maxLength: U) => Struct<T & {
19
19
  maxLength: U;
20
20
  }>;
21
- min: <U extends number>(min: U) => Struct<T & {
22
- min: U;
23
- }>;
24
- max: <U extends number>(max: U) => Struct<T & {
21
+ max: T extends BigIntSchema ? <U extends BigIntString>(max: U) => Struct<T & {
22
+ max: U;
23
+ }> : <U extends number>(max: U) => Struct<T & {
25
24
  max: U;
26
25
  }>;
26
+ min: T extends BigIntSchema ? <U extends BigIntString>(min: U) => Struct<T & {
27
+ min: U;
28
+ }> : <U extends number>(min: U) => Struct<T & {
29
+ min: U;
30
+ }>;
27
31
  description: <U extends string>(description: U) => Struct<T & {
28
32
  description: U;
29
33
  }>;
@@ -36,6 +40,7 @@ export type StructShape<T> = {
36
40
  __schema: T;
37
41
  };
38
42
  type ParamsBySchemaType = {
43
+ bigint: ExtractParams<BigIntSchema>;
39
44
  boolean: ExtractParams<BooleanSchema>;
40
45
  literal: ExtractParams<LiteralSchema>;
41
46
  number: ExtractParams<NumberSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../src/types/struct.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"struct.d.ts","sourceRoot":"","sources":["../../src/types/struct.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,8 @@
1
1
  {
2
2
  "name": "schematox",
3
- "version": "1.2.4",
3
+ "version": "1.3.0-alpha",
4
4
  "scripts": {
5
5
  "build": "tsc",
6
- "prepublishOnly": "npm run build && bash release-check.sh",
7
6
  "test": "jest",
8
7
  "test:watch": "jest --watch",
9
8
  "test:coverage": "jest --coverage",
package/src/constants.ts CHANGED
@@ -8,6 +8,7 @@ export const PARAMS_BY_SCHEMA_TYPE = {
8
8
  boolean: new Set(['optional', 'nullable', 'brand', 'description'] as const),
9
9
  literal: new Set(['optional', 'nullable', 'brand', 'description'] as const),
10
10
  number: new Set(['optional', 'nullable', 'brand', 'description', 'min', 'max'] as const),
11
+ bigint: new Set(['optional', 'nullable', 'brand', 'description', 'min', 'max'] as const),
11
12
  string: new Set(['optional', 'nullable', 'brand', 'description', 'minLength', 'maxLength'] as const),
12
13
  //
13
14
  array: new Set(['optional', 'nullable', 'description', 'minLength', 'maxLength'] as const),
package/src/index.ts CHANGED
@@ -8,6 +8,7 @@ export {
8
8
  boolean,
9
9
  literal,
10
10
  number,
11
+ bigint,
11
12
  string,
12
13
  //
13
14
  array,
@@ -52,10 +53,13 @@ export type {
52
53
  //
53
54
  BrandSchema,
54
55
  //
56
+ BigIntSchema,
55
57
  BooleanSchema,
56
58
  LiteralSchema,
57
59
  NumberSchema,
58
60
  StringSchema,
61
+ //
62
+ BigIntString,
59
63
  } from './types/schema'
60
64
 
61
65
  export type { Struct, StructShape, StructParams } from './types/struct'
package/src/parse.ts CHANGED
@@ -13,6 +13,7 @@ import type {
13
13
  TupleSchema,
14
14
  UnionSchema,
15
15
  //
16
+ BigIntSchema,
16
17
  BooleanSchema,
17
18
  LiteralSchema,
18
19
  NumberSchema,
@@ -20,6 +21,7 @@ import type {
20
21
  } from './types/schema'
21
22
 
22
23
  const PARSE_FN_BY_SCHEMA_KIND = {
24
+ bigint: parseBigInt,
23
25
  boolean: parseBoolean,
24
26
  literal: parseLiteral,
25
27
  number: parseNumber,
@@ -61,6 +63,55 @@ function parseRecursively(
61
63
  )
62
64
  }
63
65
 
66
+ function parseBigInt(
67
+ errorPath: ErrorPath,
68
+ schema: BigIntSchema,
69
+ subject: unknown
70
+ ) {
71
+ if (typeof subject !== 'bigint') {
72
+ return error([
73
+ {
74
+ code: ERROR_CODE.invalidType,
75
+ path: errorPath,
76
+ subject,
77
+ schema,
78
+ },
79
+ ])
80
+ }
81
+
82
+ if (typeof schema.min === 'string') {
83
+ const min = BigInt(schema.min)
84
+
85
+ if (subject < min) {
86
+ return error([
87
+ {
88
+ code: ERROR_CODE.invalidRange,
89
+ path: errorPath,
90
+ subject,
91
+ schema,
92
+ },
93
+ ])
94
+ }
95
+ }
96
+
97
+ if (typeof schema.max === 'string') {
98
+ const max = BigInt(schema.max)
99
+
100
+ if (subject > max) {
101
+ return error([
102
+ {
103
+ code: ERROR_CODE.invalidRange,
104
+ path: errorPath,
105
+ subject,
106
+ schema,
107
+ },
108
+ ])
109
+ }
110
+ }
111
+
112
+ return success(subject)
113
+ }
114
+
64
115
  function parseBoolean(
65
116
  errorPath: ErrorPath,
66
117
  schema: BooleanSchema,
package/src/struct.ts CHANGED
@@ -2,7 +2,12 @@ import { PARAMS_BY_SCHEMA_TYPE, STANDARD_SCHEMA } from './constants'
2
2
  import { parse } from './parse'
3
3
 
4
4
  import type { StandardSchemaV1 } from './types/standard-schema'
5
- import type { Schema, BrandSchema, StringSchema } from './types/schema'
5
+ import type {
6
+ Schema,
7
+ BigIntString,
8
+ BrandSchema,
9
+ StringSchema,
10
+ } from './types/schema'
6
11
  import type { Struct, StructParams, StructShape } from './types/struct'
7
12
 
8
13
  export function makeStruct<T extends Schema>(schema: T): Struct<T>
@@ -51,11 +56,19 @@ export function makeStruct(schema: Schema) {
51
56
  }
52
57
 
53
58
  if (params.has('min')) {
54
- result.min = (min: number) => makeStruct({ ...schema, min })
59
+ if (schema.type === 'bigint') {
60
+ result.min = (min: BigIntString) => makeStruct({ ...schema, min })
61
+ } else {
62
+ result.min = (min: number) => makeStruct({ ...schema, min })
63
+ }
55
64
  }
56
65
 
57
66
  if (params.has('max')) {
58
- result.max = (max: number) => makeStruct({ ...schema, max })
67
+ if (schema.type === 'bigint') {
68
+ result.max = (max: BigIntString) => makeStruct({ ...schema, max })
69
+ } else {
70
+ result.max = (max: number) => makeStruct({ ...schema, max })
71
+ }
59
72
  }
60
73
 
61
74
  if (params.has('minLength')) {
@@ -87,6 +100,10 @@ export function number() {
87
100
  return makeStruct({ type: 'number' })
88
101
  }
89
102
 
103
+ export function bigint() {
104
+ return makeStruct({ type: 'bigint' })
105
+ }
106
+
90
107
  export function string() {
91
108
  return makeStruct({ type: 'string' })
92
109
  }
@@ -115,29 +132,19 @@ export function object<T extends Record<string, StructShape<Schema>>>(of: T) {
115
132
  return makeStruct(schema)
116
133
  }
117
134
 
118
- export function record<T extends StructShape<Schema>>(
119
- of: T,
120
- key?: undefined
121
- ): Struct<{ type: 'record'; of: T['__schema'] }>
122
-
123
135
  export function record<
124
136
  T extends StructShape<Schema>,
125
- U extends StructShape<StringSchema>,
126
- >(
127
- of: T,
128
- key: U
129
- ): Struct<{ type: 'record'; of: T['__schema']; key: U['__schema'] }>
130
-
131
- export function record(of: StructShape<any>, key?: StructShape<any>) {
132
- if (key !== undefined) {
133
- return makeStruct({
134
- type: 'record',
135
- of: of.__schema,
136
- key: key.__schema,
137
- })
138
- }
139
-
140
- return makeStruct({ type: 'record', of: of.__schema })
137
+ U extends StructShape<StringSchema> | undefined,
138
+ >(of: T, key?: U) {
139
+ return makeStruct(
140
+ key
141
+ ? {
142
+ type: 'record',
143
+ of: of.__schema as T['__schema'],
144
+ key: key.__schema as (typeof key)['__schema'],
145
+ }
146
+ : { type: 'record', of: of.__schema as T['__schema'] }
147
+ )
141
148
  }
142
149
 
143
150
  export function tuple<
@@ -9,6 +9,7 @@ import type {
9
9
  //
10
10
  PrimitiveSchema,
11
11
  //
12
+ BigIntSchema,
12
13
  BooleanSchema,
13
14
  LiteralSchema,
14
15
  NumberSchema,
@@ -52,15 +53,17 @@ export type InferBrand<T extends BrandSchema> =
52
53
  : never
53
54
  : never
54
55
 
55
- export type InferPrimitive<T> = T extends StringSchema
56
- ? string
57
- : T extends NumberSchema
58
- ? number
59
- : T extends BooleanSchema
60
- ? boolean
61
- : T extends LiteralSchema<infer U>
62
- ? U
63
- : never
56
+ export type InferPrimitive<T> = T extends BigIntSchema
57
+ ? bigint
58
+ : T extends BooleanSchema
59
+ ? boolean
60
+ : T extends NumberSchema
61
+ ? number
62
+ : T extends StringSchema
63
+ ? string
64
+ : T extends LiteralSchema<infer U>
65
+ ? U
66
+ : never
64
67
 
65
68
  export type InferArray<T> =
66
69
  T extends ArraySchema<infer U> ? Array<InferSchema<U>> : never
@@ -74,10 +74,11 @@ export type PrimitiveSchemaShared = SchemaShared & {
74
74
  }
75
75
 
76
76
  export type PrimitiveSchema =
77
- | StringSchema
78
- | NumberSchema
77
+ | BigIntSchema
79
78
  | BooleanSchema
80
79
  | LiteralSchema
80
+ | NumberSchema
81
+ | StringSchema
81
82
 
82
83
  export type BooleanSchema = PrimitiveSchemaShared & {
83
84
  type: 'boolean'
@@ -95,6 +96,14 @@ export type NumberSchema = PrimitiveSchemaShared & {
95
96
  max?: number /* <= */
96
97
  }
97
98
 
99
+ export type BigIntString = `${bigint}`
100
+
101
+ export type BigIntSchema = PrimitiveSchemaShared & {
102
+ type: 'bigint'
103
+ min?: BigIntString /* >= */
104
+ max?: BigIntString /* <= */
105
+ }
106
+
98
107
  export type LiteralSchema<
99
108
  T extends string | number | boolean = string | number | boolean,
100
109
  > = PrimitiveSchemaShared & {
@@ -12,10 +12,13 @@ import type {
12
12
  //
13
13
  BrandSchema,
14
14
  //
15
+ BigIntSchema,
15
16
  BooleanSchema,
16
17
  LiteralSchema,
17
18
  NumberSchema,
18
19
  StringSchema,
20
+ //
21
+ BigIntString,
19
22
  } from './schema'
20
23
 
21
24
  import type { InferSchema } from './infer'
@@ -43,12 +46,18 @@ export type Struct<T extends Schema> = Omit<
43
46
  minLength: <U extends number>(
44
47
  minLength: U
45
48
  ) => Struct<T & { minLength: U }>
49
+
46
50
  maxLength: <U extends number>(
47
51
  maxLength: U
48
52
  ) => Struct<T & { maxLength: U }>
49
53
 
50
- min: <U extends number>(min: U) => Struct<T & { min: U }>
51
- max: <U extends number>(max: U) => Struct<T & { max: U }>
54
+ max: T extends BigIntSchema
55
+ ? <U extends BigIntString>(max: U) => Struct<T & { max: U }>
56
+ : <U extends number>(max: U) => Struct<T & { max: U }>
57
+
58
+ min: T extends BigIntSchema
59
+ ? <U extends BigIntString>(min: U) => Struct<T & { min: U }>
60
+ : <U extends number>(min: U) => Struct<T & { min: U }>
52
61
 
53
62
  description: <U extends string>(
54
63
  description: U
@@ -72,6 +81,7 @@ type BrandSubType =
72
81
  export type StructShape<T> = { __schema: T }
73
82
 
74
83
  type ParamsBySchemaType = {
84
+ bigint: ExtractParams<BigIntSchema>
75
85
  boolean: ExtractParams<BooleanSchema>
76
86
  literal: ExtractParams<LiteralSchema>
77
87
  number: ExtractParams<NumberSchema>