@nerd-bible/valio 0.1.6 → 0.1.8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AAmBA,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAG5E"}
1
+ {"version":3,"file":"en.d.ts","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AAoBA,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,MAAM,CAG5E"}
@@ -4,6 +4,7 @@ const templates = {
4
4
  gte: "must be >= {$n}",
5
5
  lte: "must be <= {$n}",
6
6
  eq: "must be {$n}",
7
+ neq: "must not be {$n}",
7
8
  minLength: "must have length <= {$n}",
8
9
  maxLength: "must have length >= {$n}",
9
10
  regex: "must match {$regex}",
@@ -1 +1 @@
1
- {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAA2B;IACzC,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,gBAAgB;IACpB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,iBAAiB;IACtB,EAAE,EAAE,cAAc;IAClB,SAAS,EAAE,0BAA0B;IACrC,SAAS,EAAE,0BAA0B;IACrC,KAAK,EAAE,qBAAqB;IAC5B,IAAI,EAAE,sBAAsB;IAC5B,MAAM,EAAE,iCAAiC;CACzC,CAAC;AAEF,SAAS,GAAG,CAAC,QAAgB,EAAE,KAAuB;IACrD,+BAA+B;IAC/B,4DAA4D;IAC5D,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,IAAY,EAAE,KAAuB;IACnE,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,IAAI,EAAE,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"en.js","sourceRoot":"","sources":["../../src/locales/en.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAA2B;IACzC,EAAE,EAAE,gBAAgB;IACpB,EAAE,EAAE,gBAAgB;IACpB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,iBAAiB;IACtB,EAAE,EAAE,cAAc;IAClB,GAAG,EAAE,kBAAkB;IACvB,SAAS,EAAE,0BAA0B;IACrC,SAAS,EAAE,0BAA0B;IACrC,KAAK,EAAE,qBAAqB;IAC5B,IAAI,EAAE,sBAAsB;IAC5B,MAAM,EAAE,iCAAiC;CACzC,CAAC;AAEF,SAAS,GAAG,CAAC,QAAgB,EAAE,KAAuB;IACrD,+BAA+B;IAC/B,4DAA4D;IAC5D,OAAO,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,IAAY,EAAE,KAAuB;IACnE,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,0BAA0B,IAAI,EAAE,CAAC;AAC3E,CAAC"}
@@ -10,6 +10,7 @@ export declare class Comparable<I, O> extends Pipe<I, O> {
10
10
  lt(n: O): this;
11
11
  lte(n: O): this;
12
12
  eq(n: O): this;
13
+ neq(n: O): this;
13
14
  }
14
15
  declare class ValioNumber extends Comparable<number, number> {
15
16
  constructor();
@@ -38,4 +39,8 @@ declare class ValioEnum<T extends Lit> extends Pipe<T, T> {
38
39
  }
39
40
  declare function enum_<T extends Lit>(literals: readonly T[]): ValioEnum<T>;
40
41
  export { enum_ as enum };
42
+ declare class ValioDate extends Comparable<Date, Date> {
43
+ constructor();
44
+ }
45
+ export declare function date(): ValioDate;
41
46
  //# sourceMappingURL=primitives.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,IAAI,EAAE,MAAM,WAAW,CAAC;AAO3C,wBAAgB,OAAO,2BAKtB;AAGD,wBAAgB,SAAS,+BAKxB;AAED,wBAAgB,GAAG,mBAElB;AAED,iBAAS,KAAK,qBAEb;AACD,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;AAEzB,qBAAa,UAAU,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/C,EAAE,CAAC,CAAC,EAAE,CAAC;IAGP,GAAG,CAAC,CAAC,EAAE,CAAC;IAGR,EAAE,CAAC,CAAC,EAAE,CAAC;IAGP,GAAG,CAAC,CAAC,EAAE,CAAC;IAGR,EAAE,CAAC,CAAC,EAAE,CAAC;CAGP;AAED,cAAM,WAAY,SAAQ,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;;CAKnD;AACD,wBAAgB,MAAM,gBAErB;AAED,qBAAa,QAAQ,CACpB,CAAC,EACD,CAAC,SAAS;IACT,MAAM,EAAE,MAAM,CAAC;CACf,CACA,SAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACnB,SAAS,CAAC,CAAC,EAAE,MAAM;IAGnB,SAAS,CAAC,CAAC,EAAE,MAAM;CAGnB;AAED,cAAM,WAAY,SAAQ,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;;IAMjD,KAAK,CAAC,EAAE,EAAE,MAAM;CAGhB;AACD,wBAAgB,MAAM,IAAI,WAAW,CAEpC;AAED,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAExE,cAAM,YAAY,CAAC,CAAC,SAAS,GAAG,CAAE,SAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,EAAE,CAAC,CAAC;gBAEC,OAAO,EAAE,CAAC;CAKtB;AACD,wBAAgB,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,OAAO,EAAE,CAAC,mBAEhD;AAED,cAAM,SAAS,CAAC,CAAC,SAAS,GAAG,CAAE,SAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAChD,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;gBAEX,QAAQ,EAAE,SAAS,CAAC,EAAE;CAOlC;AACD,iBAAS,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAElE;AACD,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"primitives.d.ts","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,IAAI,EAAE,MAAM,WAAW,CAAC;AAO3C,wBAAgB,OAAO,2BAKtB;AAGD,wBAAgB,SAAS,+BAKxB;AAED,wBAAgB,GAAG,mBAElB;AAED,iBAAS,KAAK,qBAEb;AACD,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;AAEzB,qBAAa,UAAU,CAAC,CAAC,EAAE,CAAC,CAAE,SAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/C,EAAE,CAAC,CAAC,EAAE,CAAC;IAGP,GAAG,CAAC,CAAC,EAAE,CAAC;IAGR,EAAE,CAAC,CAAC,EAAE,CAAC;IAGP,GAAG,CAAC,CAAC,EAAE,CAAC;IAGR,EAAE,CAAC,CAAC,EAAE,CAAC;IAGP,GAAG,CAAC,CAAC,EAAE,CAAC;CAGR;AAED,cAAM,WAAY,SAAQ,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC;;CAKnD;AACD,wBAAgB,MAAM,gBAErB;AAED,qBAAa,QAAQ,CACpB,CAAC,EACD,CAAC,SAAS;IACT,MAAM,EAAE,MAAM,CAAC;CACf,CACA,SAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACnB,SAAS,CAAC,CAAC,EAAE,MAAM;IAGnB,SAAS,CAAC,CAAC,EAAE,MAAM;CAGnB;AAED,cAAM,WAAY,SAAQ,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;;IAMjD,KAAK,CAAC,EAAE,EAAE,MAAM;CAGhB;AACD,wBAAgB,MAAM,IAAI,WAAW,CAEpC;AAED,MAAM,MAAM,GAAG,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAExE,cAAM,YAAY,CAAC,CAAC,SAAS,GAAG,CAAE,SAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IACnD,OAAO,EAAE,CAAC,CAAC;gBAEC,OAAO,EAAE,CAAC;CAKtB;AACD,wBAAgB,OAAO,CAAC,CAAC,SAAS,GAAG,EAAE,OAAO,EAAE,CAAC,mBAEhD;AAED,cAAM,SAAS,CAAC,CAAC,SAAS,GAAG,CAAE,SAAQ,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;IAChD,QAAQ,EAAE,SAAS,CAAC,EAAE,CAAC;gBAEX,QAAQ,EAAE,SAAS,CAAC,EAAE;CAOlC;AACD,iBAAS,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAElE;AACD,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;AAEzB,cAAM,SAAU,SAAQ,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC;;CAK7C;AACD,wBAAgB,IAAI,IAAI,SAAS,CAEhC"}
@@ -33,6 +33,9 @@ export class Comparable extends Pipe {
33
33
  eq(n) {
34
34
  return this.refine((v) => v === n, "eq", { n });
35
35
  }
36
+ neq(n) {
37
+ return this.refine((v) => v !== n, "neq", { n });
38
+ }
36
39
  }
37
40
  class ValioNumber extends Comparable {
38
41
  constructor() {
@@ -86,4 +89,13 @@ function enum_(literals) {
86
89
  return new ValioEnum(literals);
87
90
  }
88
91
  export { enum_ as enum };
92
+ class ValioDate extends Comparable {
93
+ constructor() {
94
+ const half = new HalfPipe("date", (v) => v instanceof Date);
95
+ super(half, half);
96
+ }
97
+ }
98
+ export function date() {
99
+ return new ValioDate();
100
+ }
89
101
  //# sourceMappingURL=primitives.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../src/primitives.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -30,7 +30,7 @@
30
30
  "README.md",
31
31
  "LICENSE.md"
32
32
  ],
33
- "version": "0.1.6",
33
+ "version": "0.1.8",
34
34
  "repository": {
35
35
  "url": "https://github.com/nerd-bible/valio"
36
36
  }
package/src/locales/en.ts CHANGED
@@ -4,6 +4,7 @@ const templates: Record<string, string> = {
4
4
  gte: "must be >= {$n}",
5
5
  lte: "must be <= {$n}",
6
6
  eq: "must be {$n}",
7
+ neq: "must not be {$n}",
7
8
  minLength: "must have length <= {$n}",
8
9
  maxLength: "must have length >= {$n}",
9
10
  regex: "must match {$regex}",
@@ -81,3 +81,15 @@ test("pipe", () => {
81
81
  },
82
82
  });
83
83
  });
84
+
85
+ test("date comparison", () => {
86
+ const schema = v.date().gt(new Date(2020, 1));
87
+
88
+ expect(schema.decode(new Date(2021, 1))).toEqual({
89
+ success: true,
90
+ output: new Date(2021, 1),
91
+ });
92
+
93
+ // error message has timezone-dependent string
94
+ expect(schema.decode(new Date(2010, 1)).success).toEqual(false);
95
+ });
package/src/primitives.ts CHANGED
@@ -45,6 +45,9 @@ export class Comparable<I, O> extends Pipe<I, O> {
45
45
  eq(n: O) {
46
46
  return this.refine((v) => v === n, "eq", { n });
47
47
  }
48
+ neq(n: O) {
49
+ return this.refine((v) => v !== n, "neq", { n });
50
+ }
48
51
  }
49
52
 
50
53
  class ValioNumber extends Comparable<number, number> {
@@ -115,3 +118,13 @@ function enum_<T extends Lit>(literals: readonly T[]): ValioEnum<T> {
115
118
  return new ValioEnum(literals);
116
119
  }
117
120
  export { enum_ as enum };
121
+
122
+ class ValioDate extends Comparable<Date, Date> {
123
+ constructor() {
124
+ const half = new HalfPipe("date", (v: any): v is Date => v instanceof Date);
125
+ super(half, half);
126
+ }
127
+ }
128
+ export function date(): ValioDate {
129
+ return new ValioDate();
130
+ }