@rickosborne/guard 2024.12.33 → 2024.12.35

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
@@ -1,6 +1,7 @@
1
1
  # @rickosborne/guard
2
2
 
3
- Basic type guards building on [@rickosborne/typical](https://www.npmjs.com/package/@rickosborne/typical).
3
+ Basic type guards building on helper types from [@rickosborne/typical](https://www.npmjs.com/package/@rickosborne/typical).
4
+
4
5
  ***
5
6
 
6
7
  ## API
@@ -12,7 +13,7 @@ Basic type guards building on [@rickosborne/typical](https://www.npmjs.com/packa
12
13
  <a id="api-assertdefined"></a>
13
14
 
14
15
  ```typescript
15
- declare function assertDefined<T>(value: T, messageOrError: MessageOrError): asserts value is NonNullable<T>;
16
+ function assertDefined<T>(value: T, messageOrError: MessageOrError): asserts value is NonNullable<T>;
16
17
  ```
17
18
 
18
19
  Assert the given value is not null or undefined. Throws with the given message or error, otherwise.
@@ -23,7 +24,7 @@ Assert the given value is not null or undefined. Throws with the given message o
23
24
  <a id="api-assertint"></a>
24
25
 
25
26
  ```typescript
26
- declare function assertInt(value: unknown, messageOrError: MessageOrError): asserts value is number;
27
+ function assertInt(value: unknown, messageOrError: MessageOrError): asserts value is number;
27
28
  ```
28
29
 
29
30
  Throw if the given value is not an integer.
@@ -67,7 +68,7 @@ Coerce a value's type to a number, throwing if it's not an integer.
67
68
  <a id="api-hasarray"></a>
68
69
 
69
70
  ```typescript
70
- declare function hasArray<Name extends string>(obj: unknown, name: Name, predicate?: undefined): obj is {
71
+ function hasArray<Name extends string>(obj: unknown, name: Name, predicate?: undefined): obj is {
71
72
  [K in Name]: unknown[];
72
73
  };
73
74
  ```
@@ -80,7 +81,7 @@ Guard for whether the given value is an object which has a property with its own
80
81
  <a id="api-hasarray"></a>
81
82
 
82
83
  ```typescript
83
- declare function hasArray<Name extends string, Item>(obj: unknown, name: Name, predicate?: (item: unknown, index: number, items: unknown[]) => item is Item): obj is {
84
+ function hasArray<Name extends string, Item>(obj: unknown, name: Name, predicate?: (item: unknown, index: number, items: unknown[]) => item is Item): obj is {
84
85
  [K in Name]: Item[];
85
86
  };
86
87
  ```
@@ -93,7 +94,7 @@ Guard for whether the given value is an object which has a property with its own
93
94
  <a id="api-hasnumber"></a>
94
95
 
95
96
  ```typescript
96
- hasNumber: <Name extends string>(obj: unknown, name: Name) => obj is { [k in Name]: string; }
97
+ hasNumber: <Name extends string>(obj: unknown, name: Name) => obj is { [k in Name]: number; }
97
98
  ```
98
99
 
99
100
  Guard for whether an object has a property with the given name and a numeric value.
@@ -104,7 +105,7 @@ Guard for whether an object has a property with the given name and a numeric val
104
105
  <a id="api-hasown"></a>
105
106
 
106
107
  ```typescript
107
- declare function hasOwn<Name extends string>(obj: unknown, name: Name): obj is {
108
+ function hasOwn<Name extends string>(obj: unknown, name: Name): obj is {
108
109
  [K in Name]: unknown;
109
110
  };
110
111
  ```
@@ -117,7 +118,7 @@ Guard for whether the given value is an object with a property with the given na
117
118
  <a id="api-hasown"></a>
118
119
 
119
120
  ```typescript
120
- declare function hasOwn<Name extends string, T>(obj: unknown, name: Name, predicate: (value: unknown) => value is T): obj is {
121
+ function hasOwn<Name extends string, T>(obj: unknown, name: Name, predicate: (value: unknown) => value is T): obj is {
121
122
  [K in Name]: T;
122
123
  };
123
124
  ```
@@ -191,6 +192,17 @@ isUnaryPredicate: (obj: unknown) => obj is UnaryPredicate<unknown>
191
192
  Tests whether the given object is a function and takes at least one parameter, and could maybe act as a unary predicate. Warning! Since no type information is available at runtime, it may not actually act as a predicate!
192
193
 
193
194
 
195
+ #### maybeInt
196
+
197
+ <a id="api-maybeint"></a>
198
+
199
+ ```typescript
200
+ maybeInt: (text: string) => number | undefined
201
+ ```
202
+
203
+ Convert to an integer, if it seems like it could be done safely. See [decimal separator on Wikipedia](https://en.wikipedia.org/wiki/Decimal_separator) for details on how this is probably very wrong in many countries.
204
+
205
+
194
206
  #### scrubStackTrace
195
207
 
196
208
  <a id="api-scrubstacktrace"></a>
package/cjs/ts/is-int.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.expectInt = exports.isInt = void 0;
3
+ exports.maybeInt = exports.expectInt = exports.isInt = void 0;
4
4
  exports.assertInt = assertInt;
5
5
  const error_from_message_js_1 = require("./error-from-message.js");
6
6
  /**
@@ -25,4 +25,30 @@ const expectInt = (obj, messageOrError) => {
25
25
  return obj;
26
26
  };
27
27
  exports.expectInt = expectInt;
28
+ /**
29
+ * Convert to an integer, if it seems like it could be done safely.
30
+ * See {@link https://en.wikipedia.org/wiki/Decimal_separator | decimal separator on Wikipedia}
31
+ * for details on how this is probably very wrong in many countries.
32
+ */
33
+ const maybeInt = (text) => {
34
+ let sign = 1;
35
+ let clean = text.trim();
36
+ // This just makes the patterns below a little easier.
37
+ if (text.startsWith("-")) {
38
+ sign = -1;
39
+ clean = clean.substring(1);
40
+ }
41
+ clean = clean
42
+ .replace(/(?<=\d)[_  ](?=\d)/g, "")
43
+ .replace(/^0+[,'.·]0*$/, "0")
44
+ .replace(/^(\d+(?:,\d+)+)[.·]0*$/, (_all, digits) => digits.replace(/[^-0-9]/g, ""))
45
+ .replace(/^(\d+(?:'\d+)+)[.,]0*$/, (_all, digits) => digits.replace(/[^-0-9]/g, ""))
46
+ .replace(/^(\d+(?:\.\d+)+)[,']0*$/, (_all, digits) => digits.replace(/[^-0-9]/g, ""))
47
+ .replace(/^(\d{4,})[,'.·]0*$/, (_all, digits) => digits.replace(/[^-0-9]/g, ""));
48
+ if (/^-?(0|[1-9][0-9]*)$/.test(clean)) {
49
+ return parseInt(clean, 10) * sign;
50
+ }
51
+ return undefined;
52
+ };
53
+ exports.maybeInt = maybeInt;
28
54
  //# sourceMappingURL=is-int.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-int.js","sourceRoot":"","sources":["../../../ts/is-int.ts"],"names":[],"mappings":";;;AAWA,8BAIC;AAfD,mEAAuF;AAEvF;;;GAGG;AACI,MAAM,KAAK,GAAG,CAAC,GAAY,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;AAApJ,QAAA,KAAK,SAA+I;AAEjK;;GAEG;AACH,SAAgB,SAAS,CAAC,KAAc,EAAE,cAA8B;IACvE,IAAI,CAAC,IAAA,aAAK,EAAC,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAA,+CAAuB,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;AACF,CAAC;AAED;;GAEG;AACI,MAAM,SAAS,GAAG,CACxB,GAAY,EACZ,cAA8B,EACrB,EAAE;IACX,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB"}
1
+ {"version":3,"file":"is-int.js","sourceRoot":"","sources":["../../../ts/is-int.ts"],"names":[],"mappings":";;;AAWA,8BAIC;AAfD,mEAAuF;AAEvF;;;GAGG;AACI,MAAM,KAAK,GAAG,CAAC,GAAY,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;AAApJ,QAAA,KAAK,SAA+I;AAEjK;;GAEG;AACH,SAAgB,SAAS,CAAC,KAAc,EAAE,cAA8B;IACvE,IAAI,CAAC,IAAA,aAAK,EAAC,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAA,+CAAuB,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;AACF,CAAC;AAED;;GAEG;AACI,MAAM,SAAS,GAAG,CACxB,GAAY,EACZ,cAA8B,EACrB,EAAE;IACX,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB;AAEF;;;;GAIG;AACI,MAAM,QAAQ,GAAG,CACvB,IAAY,EACS,EAAE;IACvB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,sDAAsD;IACtD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,CAAC,CAAC;QACV,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,KAAK,GAAG,KAAK;SACX,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;SAClC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SAC3F,OAAO,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SAC3F,OAAO,CAAC,yBAAyB,EAAE,CAAC,IAAI,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SAC5F,OAAO,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CACxF;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAtBW,QAAA,QAAQ,YAsBnB"}
package/esm/ts/is-int.js CHANGED
@@ -19,4 +19,29 @@ export const expectInt = (obj, messageOrError) => {
19
19
  assertInt(obj, messageOrError);
20
20
  return obj;
21
21
  };
22
+ /**
23
+ * Convert to an integer, if it seems like it could be done safely.
24
+ * See {@link https://en.wikipedia.org/wiki/Decimal_separator | decimal separator on Wikipedia}
25
+ * for details on how this is probably very wrong in many countries.
26
+ */
27
+ export const maybeInt = (text) => {
28
+ let sign = 1;
29
+ let clean = text.trim();
30
+ // This just makes the patterns below a little easier.
31
+ if (text.startsWith("-")) {
32
+ sign = -1;
33
+ clean = clean.substring(1);
34
+ }
35
+ clean = clean
36
+ .replace(/(?<=\d)[_  ](?=\d)/g, "")
37
+ .replace(/^0+[,'.·]0*$/, "0")
38
+ .replace(/^(\d+(?:,\d+)+)[.·]0*$/, (_all, digits) => digits.replace(/[^-0-9]/g, ""))
39
+ .replace(/^(\d+(?:'\d+)+)[.,]0*$/, (_all, digits) => digits.replace(/[^-0-9]/g, ""))
40
+ .replace(/^(\d+(?:\.\d+)+)[,']0*$/, (_all, digits) => digits.replace(/[^-0-9]/g, ""))
41
+ .replace(/^(\d{4,})[,'.·]0*$/, (_all, digits) => digits.replace(/[^-0-9]/g, ""));
42
+ if (/^-?(0|[1-9][0-9]*)$/.test(clean)) {
43
+ return parseInt(clean, 10) * sign;
44
+ }
45
+ return undefined;
46
+ };
22
47
  //# sourceMappingURL=is-int.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-int.js","sourceRoot":"","sources":["../../../ts/is-int.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvF;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAY,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;AAEjK;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,cAA8B;IACvE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,uBAAuB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,GAAY,EACZ,cAA8B,EACrB,EAAE;IACX,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC"}
1
+ {"version":3,"file":"is-int.js","sourceRoot":"","sources":["../../../ts/is-int.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvF;;;GAGG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAY,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;AAEjK;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc,EAAE,cAA8B;IACvE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,uBAAuB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;AACF,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CACxB,GAAY,EACZ,cAA8B,EACrB,EAAE;IACX,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACvB,IAAY,EACS,EAAE;IACvB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,sDAAsD;IACtD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,CAAC,CAAC;QACV,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,KAAK,GAAG,KAAK;SACX,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;SAClC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SAC3F,OAAO,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SAC3F,OAAO,CAAC,yBAAyB,EAAE,CAAC,IAAI,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SAC5F,OAAO,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CACxF;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC"}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "url": "https://rickosborne.org"
5
5
  },
6
6
  "dependencies": {
7
- "@rickosborne/typical": "2024.12.33"
7
+ "@rickosborne/typical": "2024.12.35"
8
8
  },
9
9
  "description": "Rick Osborne's collection of type guards.",
10
10
  "engines": {
@@ -40,5 +40,5 @@
40
40
  },
41
41
  "types": "types/index.d.ts",
42
42
  "typings": "types/index.d.ts",
43
- "version": "2024.12.33"
43
+ "version": "2024.12.35"
44
44
  }
@@ -2,5 +2,5 @@
2
2
  * Guard for whether an object has a property with the given name
3
3
  * and a numeric value.
4
4
  */
5
- export declare const hasNumber: <Name extends string>(obj: unknown, name: Name) => obj is { [k in Name]: string; };
5
+ export declare const hasNumber: <Name extends string>(obj: unknown, name: Name) => obj is { [k in Name]: number; };
6
6
  //# sourceMappingURL=has-number.d.ts.map
@@ -12,4 +12,10 @@ export declare function assertInt(value: unknown, messageOrError: MessageOrError
12
12
  * Coerce a value's type to a number, throwing if it's not an integer.
13
13
  */
14
14
  export declare const expectInt: (obj: unknown, messageOrError: MessageOrError) => number;
15
+ /**
16
+ * Convert to an integer, if it seems like it could be done safely.
17
+ * See {@link https://en.wikipedia.org/wiki/Decimal_separator | decimal separator on Wikipedia}
18
+ * for details on how this is probably very wrong in many countries.
19
+ */
20
+ export declare const maybeInt: (text: string) => number | undefined;
15
21
  //# sourceMappingURL=is-int.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-int.d.ts","sourceRoot":"","sources":["../../../ts/is-int.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA2B,MAAM,yBAAyB,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,KAAK,QAAS,OAAO,KAAG,GAAG,IAAI,MAAoH,CAAC;AAEjK;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAIjG;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,QAChB,OAAO,kBACI,cAAc,KAC5B,MAGF,CAAC"}
1
+ {"version":3,"file":"is-int.d.ts","sourceRoot":"","sources":["../../../ts/is-int.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA2B,MAAM,yBAAyB,CAAC;AAEvF;;;GAGG;AACH,eAAO,MAAM,KAAK,QAAS,OAAO,KAAG,GAAG,IAAI,MAAoH,CAAC;AAEjK;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAIjG;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,QAChB,OAAO,kBACI,cAAc,KAC5B,MAGF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,QAAQ,SACd,MAAM,KACV,MAAM,GAAG,SAoBX,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.expectInt = exports.isInt = void 0;
3
+ exports.maybeInt = exports.expectInt = exports.isInt = void 0;
4
4
  exports.assertInt = assertInt;
5
5
  const error_from_message_js_1 = require("./error-from-message.js");
6
6
  /**
@@ -25,4 +25,30 @@ const expectInt = (obj, messageOrError) => {
25
25
  return obj;
26
26
  };
27
27
  exports.expectInt = expectInt;
28
+ /**
29
+ * Convert to an integer, if it seems like it could be done safely.
30
+ * See {@link https://en.wikipedia.org/wiki/Decimal_separator | decimal separator on Wikipedia}
31
+ * for details on how this is probably very wrong in many countries.
32
+ */
33
+ const maybeInt = (text) => {
34
+ let sign = 1;
35
+ let clean = text.trim();
36
+ // This just makes the patterns below a little easier.
37
+ if (text.startsWith("-")) {
38
+ sign = -1;
39
+ clean = clean.substring(1);
40
+ }
41
+ clean = clean
42
+ .replace(/(?<=\d)[_  ](?=\d)/g, "")
43
+ .replace(/^0+[,'.·]0*$/, "0")
44
+ .replace(/^(\d+(?:,\d+)+)[.·]0*$/, (_all, digits) => digits.replace(/[^-0-9]/g, ""))
45
+ .replace(/^(\d+(?:'\d+)+)[.,]0*$/, (_all, digits) => digits.replace(/[^-0-9]/g, ""))
46
+ .replace(/^(\d+(?:\.\d+)+)[,']0*$/, (_all, digits) => digits.replace(/[^-0-9]/g, ""))
47
+ .replace(/^(\d{4,})[,'.·]0*$/, (_all, digits) => digits.replace(/[^-0-9]/g, ""));
48
+ if (/^-?(0|[1-9][0-9]*)$/.test(clean)) {
49
+ return parseInt(clean, 10) * sign;
50
+ }
51
+ return undefined;
52
+ };
53
+ exports.maybeInt = maybeInt;
28
54
  //# sourceMappingURL=is-int.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"is-int.js","sourceRoot":"","sources":["../../../ts/is-int.ts"],"names":[],"mappings":";;;AAWA,8BAIC;AAfD,mEAAuF;AAEvF;;;GAGG;AACI,MAAM,KAAK,GAAG,CAAC,GAAY,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;AAApJ,QAAA,KAAK,SAA+I;AAEjK;;GAEG;AACH,SAAgB,SAAS,CAAC,KAAc,EAAE,cAA8B;IACvE,IAAI,CAAC,IAAA,aAAK,EAAC,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAA,+CAAuB,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;AACF,CAAC;AAED;;GAEG;AACI,MAAM,SAAS,GAAG,CACxB,GAAY,EACZ,cAA8B,EACrB,EAAE;IACX,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB"}
1
+ {"version":3,"file":"is-int.js","sourceRoot":"","sources":["../../../ts/is-int.ts"],"names":[],"mappings":";;;AAWA,8BAIC;AAfD,mEAAuF;AAEvF;;;GAGG;AACI,MAAM,KAAK,GAAG,CAAC,GAAY,EAAiB,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC;AAApJ,QAAA,KAAK,SAA+I;AAEjK;;GAEG;AACH,SAAgB,SAAS,CAAC,KAAc,EAAE,cAA8B;IACvE,IAAI,CAAC,IAAA,aAAK,EAAC,KAAK,CAAC,EAAE,CAAC;QACnB,MAAM,IAAA,+CAAuB,EAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;AACF,CAAC;AAED;;GAEG;AACI,MAAM,SAAS,GAAG,CACxB,GAAY,EACZ,cAA8B,EACrB,EAAE;IACX,SAAS,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAC/B,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AANW,QAAA,SAAS,aAMpB;AAEF;;;;GAIG;AACI,MAAM,QAAQ,GAAG,CACvB,IAAY,EACS,EAAE;IACvB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACxB,sDAAsD;IACtD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,CAAC,CAAC;QACV,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAC5B,CAAC;IACD,KAAK,GAAG,KAAK;SACX,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC;SAClC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC;SAC5B,OAAO,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SAC3F,OAAO,CAAC,wBAAwB,EAAE,CAAC,IAAI,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SAC3F,OAAO,CAAC,yBAAyB,EAAE,CAAC,IAAI,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;SAC5F,OAAO,CAAC,oBAAoB,EAAE,CAAC,IAAI,EAAE,MAAc,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CACxF;IACD,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;IACnC,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC;AAtBW,QAAA,QAAQ,YAsBnB"}