decoders 2.0.4 → 2.0.5

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/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## v2.0.5
2
+
3
+ - The returned value for `positiveInteger(-0)` is now `0`, not `-0`
4
+ - The returned value for `positiveNumber(-0)` is now `0`, not `-0`
5
+
1
6
  ## v2.0.4
2
7
 
3
8
  - Fix a bug in the `url` decoder, which could incorrectly reject URLs with a `/` in the
package/README.md CHANGED
@@ -134,5 +134,7 @@ const user = userDecoder.verify(externalData);
134
134
  <div id="uuidv4"></div>
135
135
 
136
136
  Documentation can be found on [https://decoders.cc](https://decoders.cc).
137
- (Old v1 documentation can still be found
138
- [here](https://github.com/nvie/decoders/tree/v1.25.5#readme).)
137
+
138
+ ## Building your own decoders
139
+
140
+ There is a dedicated page in the docs that explains how to [build your own decoders](https://decoders.cc/building-your-own.html) — it’s fun!
package/lib/numbers.d.ts CHANGED
@@ -21,11 +21,11 @@ export const number: Decoder<number>;
21
21
  export const integer: Decoder<number>;
22
22
 
23
23
  /**
24
- * Accepts only positive finite numbers.
24
+ * Accepts only non-negative (zero or positive) finite numbers.
25
25
  */
26
26
  export const positiveNumber: Decoder<number>;
27
27
 
28
28
  /**
29
- * Accepts only positive finite whole numbers.
29
+ * Accepts only non-negative (zero or positive) finite whole numbers.
30
30
  */
31
31
  export const positiveInteger: Decoder<number>;
package/lib/numbers.js CHANGED
@@ -19,12 +19,16 @@ var integer = number.refine(function (n) {
19
19
  }, 'Number must be an integer')
20
20
 
21
21
  exports.integer = integer
22
- var positiveNumber = number.refine(function (n) {
23
- return n >= 0
24
- }, 'Number must be positive')
22
+ var positiveNumber = number
23
+ .refine(function (n) {
24
+ return n >= 0
25
+ }, 'Number must be positive')
26
+ .transform(Math.abs)
25
27
 
26
28
  exports.positiveNumber = positiveNumber
27
- var positiveInteger = integer.refine(function (n) {
28
- return n >= 0
29
- }, 'Number must be positive')
29
+ var positiveInteger = integer
30
+ .refine(function (n) {
31
+ return n >= 0
32
+ }, 'Number must be positive')
33
+ .transform(Math.abs)
30
34
  exports.positiveInteger = positiveInteger
@@ -32,17 +32,15 @@ export const integer: Decoder<number> = number.refine(
32
32
  );
33
33
 
34
34
  /**
35
- * Accepts only positive finite numbers.
35
+ * Accepts only non-negative (zero or positive) finite numbers.
36
36
  */
37
- export const positiveNumber: Decoder<number> = number.refine(
38
- (n) => n >= 0,
39
- 'Number must be positive',
40
- );
37
+ export const positiveNumber: Decoder<number> = number
38
+ .refine((n) => n >= 0, 'Number must be positive')
39
+ .transform(Math.abs); // Just here to handle the -0 case
41
40
 
42
41
  /**
43
- * Accepts only positive finite whole numbers.
42
+ * Accepts only non-negative (zero or positive) finite whole numbers.
44
43
  */
45
- export const positiveInteger: Decoder<number> = integer.refine(
46
- (n) => n >= 0,
47
- 'Number must be positive',
48
- );
44
+ export const positiveInteger: Decoder<number> = integer
45
+ .refine((n) => n >= 0, 'Number must be positive')
46
+ .transform(Math.abs); // Just here to handle the -0 case
package/lib/numbers.mjs CHANGED
@@ -12,10 +12,14 @@ export var integer = number.refine(function (n) {
12
12
  return Number.isInteger(n)
13
13
  }, 'Number must be an integer')
14
14
 
15
- export var positiveNumber = number.refine(function (n) {
16
- return n >= 0
17
- }, 'Number must be positive')
15
+ export var positiveNumber = number
16
+ .refine(function (n) {
17
+ return n >= 0
18
+ }, 'Number must be positive')
19
+ .transform(Math.abs)
18
20
 
19
- export var positiveInteger = integer.refine(function (n) {
20
- return n >= 0
21
- }, 'Number must be positive')
21
+ export var positiveInteger = integer
22
+ .refine(function (n) {
23
+ return n >= 0
24
+ }, 'Number must be positive')
25
+ .transform(Math.abs)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "decoders",
3
- "version": "2.0.4",
3
+ "version": "2.0.5",
4
4
  "description": "Elegant and battle-tested validation library for type-safe input data (for TypeScript and Flow)",
5
5
  "license": "MIT",
6
6
  "repository": {