@rickosborne/guard 2024.12.32 → 2024.12.33
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 +64 -0
- package/cjs/index.js +2 -1
- package/cjs/index.js.map +1 -1
- package/cjs/ts/error-from-message.js +2 -1
- package/cjs/ts/error-from-message.js.map +1 -1
- package/cjs/ts/has-number.js +4 -0
- package/cjs/ts/has-number.js.map +1 -1
- package/cjs/ts/has-own.js +4 -0
- package/cjs/ts/has-own.js.map +1 -1
- package/cjs/ts/is-defined.js +30 -0
- package/cjs/ts/is-defined.js.map +1 -0
- package/cjs/ts/is-int.js +10 -0
- package/cjs/ts/is-int.js.map +1 -1
- package/cjs/ts/is-list-of.js +4 -0
- package/cjs/ts/is-list-of.js.map +1 -1
- package/cjs/ts/is-object.js +8 -0
- package/cjs/ts/is-object.js.map +1 -1
- package/cjs/ts/scrub-stack-trace.js +48 -0
- package/cjs/ts/scrub-stack-trace.js.map +1 -0
- package/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/esm/index.js +2 -1
- package/esm/index.js.map +1 -1
- package/esm/ts/error-from-message.js +2 -1
- package/esm/ts/error-from-message.js.map +1 -1
- package/esm/ts/has-number.js +4 -0
- package/esm/ts/has-number.js.map +1 -1
- package/esm/ts/has-own.js +4 -0
- package/esm/ts/has-own.js.map +1 -1
- package/esm/ts/is-defined.js +24 -0
- package/esm/ts/is-defined.js.map +1 -0
- package/esm/ts/is-int.js +10 -0
- package/esm/ts/is-int.js.map +1 -1
- package/esm/ts/is-list-of.js +4 -0
- package/esm/ts/is-list-of.js.map +1 -1
- package/esm/ts/is-object.js +8 -0
- package/esm/ts/is-object.js.map +1 -1
- package/esm/ts/scrub-stack-trace.js +46 -0
- package/esm/ts/scrub-stack-trace.js.map +1 -0
- package/esm/tsconfig.module.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/types/index.d.ts +2 -1
- package/types/index.d.ts.map +1 -1
- package/types/index.js +2 -1
- package/types/index.js.map +1 -1
- package/types/ts/error-from-message.d.ts.map +1 -1
- package/types/ts/error-from-message.js +2 -1
- package/types/ts/error-from-message.js.map +1 -1
- package/types/ts/has-number.d.ts +4 -0
- package/types/ts/has-number.d.ts.map +1 -1
- package/types/ts/has-number.js +4 -0
- package/types/ts/has-number.js.map +1 -1
- package/types/ts/has-own.d.ts +10 -0
- package/types/ts/has-own.d.ts.map +1 -1
- package/types/ts/has-own.js +4 -0
- package/types/ts/has-own.js.map +1 -1
- package/types/ts/is-defined.d.ts +16 -0
- package/types/ts/is-defined.d.ts.map +1 -0
- package/types/ts/is-defined.js +30 -0
- package/types/ts/is-defined.js.map +1 -0
- package/types/ts/is-int.d.ts +10 -0
- package/types/ts/is-int.d.ts.map +1 -1
- package/types/ts/is-int.js +10 -0
- package/types/ts/is-int.js.map +1 -1
- package/types/ts/is-list-of.d.ts +4 -0
- package/types/ts/is-list-of.d.ts.map +1 -1
- package/types/ts/is-list-of.js +4 -0
- package/types/ts/is-list-of.js.map +1 -1
- package/types/ts/is-object.d.ts +8 -0
- package/types/ts/is-object.d.ts.map +1 -1
- package/types/ts/is-object.js +8 -0
- package/types/ts/is-object.js.map +1 -1
- package/types/ts/scrub-stack-trace.d.ts +14 -0
- package/types/ts/scrub-stack-trace.d.ts.map +1 -0
- package/types/ts/scrub-stack-trace.js +50 -0
- package/types/ts/scrub-stack-trace.js.map +1 -0
- package/types/tsconfig.types.tsbuildinfo +1 -1
- package/cjs/ts/assert-defined.js +0 -11
- package/cjs/ts/assert-defined.js.map +0 -1
- package/esm/ts/assert-defined.js +0 -8
- package/esm/ts/assert-defined.js.map +0 -1
- package/types/ts/assert-defined.d.ts +0 -3
- package/types/ts/assert-defined.d.ts.map +0 -1
- package/types/ts/assert-defined.js +0 -11
- package/types/ts/assert-defined.js.map +0 -1
- /package/{types/tsdoc-metadata.json → tsdoc-metadata.json} +0 -0
package/README.md
CHANGED
|
@@ -15,6 +15,9 @@ Basic type guards building on [@rickosborne/typical](https://www.npmjs.com/packa
|
|
|
15
15
|
declare function assertDefined<T>(value: T, messageOrError: MessageOrError): asserts value is NonNullable<T>;
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
+
Assert the given value is not null or undefined. Throws with the given message or error, otherwise.
|
|
19
|
+
|
|
20
|
+
|
|
18
21
|
#### assertInt
|
|
19
22
|
|
|
20
23
|
<a id="api-assertint"></a>
|
|
@@ -23,6 +26,9 @@ declare function assertDefined<T>(value: T, messageOrError: MessageOrError): ass
|
|
|
23
26
|
declare function assertInt(value: unknown, messageOrError: MessageOrError): asserts value is number;
|
|
24
27
|
```
|
|
25
28
|
|
|
29
|
+
Throw if the given value is not an integer.
|
|
30
|
+
|
|
31
|
+
|
|
26
32
|
#### errorFromMessageOrError
|
|
27
33
|
|
|
28
34
|
<a id="api-errorfrommessageorerror"></a>
|
|
@@ -34,6 +40,17 @@ errorFromMessageOrError: (messageOrError: MessageOrError, defaultConstructor?: (
|
|
|
34
40
|
Helper for guards which expect text or an error, or can generate one when needed.
|
|
35
41
|
|
|
36
42
|
|
|
43
|
+
#### expectDefined
|
|
44
|
+
|
|
45
|
+
<a id="api-expectdefined"></a>
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
expectDefined: <T>(obj: T, messageOrError: MessageOrError) => NonNullable<T>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Coerce a value's type to exclude null or undefined, or throw if it actually is null or undefined.
|
|
52
|
+
|
|
53
|
+
|
|
37
54
|
#### expectInt
|
|
38
55
|
|
|
39
56
|
<a id="api-expectint"></a>
|
|
@@ -42,6 +59,9 @@ Helper for guards which expect text or an error, or can generate one when needed
|
|
|
42
59
|
expectInt: (obj: unknown, messageOrError: MessageOrError) => number
|
|
43
60
|
```
|
|
44
61
|
|
|
62
|
+
Coerce a value's type to a number, throwing if it's not an integer.
|
|
63
|
+
|
|
64
|
+
|
|
45
65
|
#### hasArray
|
|
46
66
|
|
|
47
67
|
<a id="api-hasarray"></a>
|
|
@@ -76,6 +96,9 @@ Guard for whether the given value is an object which has a property with its own
|
|
|
76
96
|
hasNumber: <Name extends string>(obj: unknown, name: Name) => obj is { [k in Name]: string; }
|
|
77
97
|
```
|
|
78
98
|
|
|
99
|
+
Guard for whether an object has a property with the given name and a numeric value.
|
|
100
|
+
|
|
101
|
+
|
|
79
102
|
#### hasOwn
|
|
80
103
|
|
|
81
104
|
<a id="api-hasown"></a>
|
|
@@ -86,6 +109,9 @@ declare function hasOwn<Name extends string>(obj: unknown, name: Name): obj is {
|
|
|
86
109
|
};
|
|
87
110
|
```
|
|
88
111
|
|
|
112
|
+
Guard for whether the given value is an object with a property with the given name. This variant does not check the value, only that the property exists.
|
|
113
|
+
|
|
114
|
+
|
|
89
115
|
#### hasOwn
|
|
90
116
|
|
|
91
117
|
<a id="api-hasown"></a>
|
|
@@ -96,6 +122,20 @@ declare function hasOwn<Name extends string, T>(obj: unknown, name: Name, predic
|
|
|
96
122
|
};
|
|
97
123
|
```
|
|
98
124
|
|
|
125
|
+
Guard for whether the given value is an object with a property with the given name. This variant checks the value against the given predicate.
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
#### isDefined
|
|
129
|
+
|
|
130
|
+
<a id="api-isdefined"></a>
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
isDefined: <T>(obj: T) => obj is NonNullable<T>
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Guard to filter out null or undefined values.
|
|
137
|
+
|
|
138
|
+
|
|
99
139
|
#### isInt
|
|
100
140
|
|
|
101
141
|
<a id="api-isint"></a>
|
|
@@ -104,6 +144,9 @@ declare function hasOwn<Name extends string, T>(obj: unknown, name: Name, predic
|
|
|
104
144
|
isInt: (obj: unknown) => obj is number
|
|
105
145
|
```
|
|
106
146
|
|
|
147
|
+
Check whether the given value is not just numeric, but is also an integer.
|
|
148
|
+
|
|
149
|
+
|
|
107
150
|
#### isListOf
|
|
108
151
|
|
|
109
152
|
<a id="api-islistof"></a>
|
|
@@ -112,6 +155,9 @@ isInt: (obj: unknown) => obj is number
|
|
|
112
155
|
isListOf: <T>(list: unknown, predicate: (item: unknown, index: number, items: unknown[]) => item is T) => list is T[]
|
|
113
156
|
```
|
|
114
157
|
|
|
158
|
+
Guard to check if the given value is an array where all the items match the given predicate.
|
|
159
|
+
|
|
160
|
+
|
|
115
161
|
#### isObject
|
|
116
162
|
|
|
117
163
|
<a id="api-isobject"></a>
|
|
@@ -120,6 +166,9 @@ isListOf: <T>(list: unknown, predicate: (item: unknown, index: number, items: un
|
|
|
120
166
|
isObject: (obj: unknown) => obj is NonNullable<object>
|
|
121
167
|
```
|
|
122
168
|
|
|
169
|
+
Guard to check that the given value is defined and object-like.
|
|
170
|
+
|
|
171
|
+
|
|
123
172
|
#### isPlainObject
|
|
124
173
|
|
|
125
174
|
<a id="api-isplainobject"></a>
|
|
@@ -128,6 +177,9 @@ isObject: (obj: unknown) => obj is NonNullable<object>
|
|
|
128
177
|
isPlainObject: (obj: unknown) => obj is Record<never, never>
|
|
129
178
|
```
|
|
130
179
|
|
|
180
|
+
Guard to check that the given value is defined, is an object, and seems to be a "plain" object, descending directly from Object. This won't prevent all shenanigans, but is a low-effort check.
|
|
181
|
+
|
|
182
|
+
|
|
131
183
|
#### isUnaryPredicate
|
|
132
184
|
|
|
133
185
|
<a id="api-isunarypredicate"></a>
|
|
@@ -139,6 +191,18 @@ isUnaryPredicate: (obj: unknown) => obj is UnaryPredicate<unknown>
|
|
|
139
191
|
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!
|
|
140
192
|
|
|
141
193
|
|
|
194
|
+
#### scrubStackTrace
|
|
195
|
+
|
|
196
|
+
<a id="api-scrubstacktrace"></a>
|
|
197
|
+
|
|
198
|
+
```typescript
|
|
199
|
+
scrubStackTrace: <E extends Error>(err: E, removeIf?: Predicate<string> | RegExp | string | undefined) => E
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
Wrap an Error in a proxy which cleans up the stack trace to be more human-readable. It filters out lines from third-party code, so you can quickly see your own code in the call stack. May optionally include some way of indicating additional lines which should be removed, so a guard function could make itself transparent, making it seem like the caller threw the error.
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
|
|
142
206
|
### TypeAliases
|
|
143
207
|
|
|
144
208
|
#### MessageOrError
|
package/cjs/index.js
CHANGED
|
@@ -14,13 +14,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./ts/assert-defined.js"), exports);
|
|
18
17
|
__exportStar(require("./ts/error-from-message.js"), exports);
|
|
19
18
|
__exportStar(require("./ts/has-array.js"), exports);
|
|
20
19
|
__exportStar(require("./ts/has-number.js"), exports);
|
|
21
20
|
__exportStar(require("./ts/has-own.js"), exports);
|
|
21
|
+
__exportStar(require("./ts/is-defined.js"), exports);
|
|
22
22
|
__exportStar(require("./ts/is-int.js"), exports);
|
|
23
23
|
__exportStar(require("./ts/is-list-of.js"), exports);
|
|
24
24
|
__exportStar(require("./ts/is-object.js"), exports);
|
|
25
25
|
__exportStar(require("./ts/is-predicate.js"), exports);
|
|
26
|
+
__exportStar(require("./ts/scrub-stack-trace.js"), exports);
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,oDAAkC;AAClC,qDAAmC;AACnC,kDAAgC;AAChC,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,oDAAkC;AAClC,uDAAqC;AACrC,4DAA0C"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.errorFromMessageOrError = void 0;
|
|
4
|
+
const scrub_stack_trace_js_1 = require("./scrub-stack-trace.js");
|
|
4
5
|
/**
|
|
5
6
|
* Helper for guards which expect text or an error, or
|
|
6
7
|
* can generate one when needed.
|
|
@@ -20,7 +21,7 @@ const errorFromMessageOrError = (messageOrError, defaultConstructor = Error) =>
|
|
|
20
21
|
else {
|
|
21
22
|
error = stringOrError;
|
|
22
23
|
}
|
|
23
|
-
return error;
|
|
24
|
+
return (0, scrub_stack_trace_js_1.scrubStackTrace)(error, " at errorFromMessageOrError ");
|
|
24
25
|
};
|
|
25
26
|
exports.errorFromMessageOrError = errorFromMessageOrError;
|
|
26
27
|
//# sourceMappingURL=error-from-message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-from-message.js","sourceRoot":"","sources":["../../../ts/error-from-message.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"error-from-message.js","sourceRoot":"","sources":["../../../ts/error-from-message.ts"],"names":[],"mappings":";;;AAAA,iEAAyD;AAOzD;;;GAGG;AACI,MAAM,uBAAuB,GAAG,CACtC,cAA8B,EAC9B,qBAAuD,KAAK,EACpD,EAAE;IACV,IAAI,aAA6B,CAAC;IAClC,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;QAC1C,aAAa,GAAG,cAAc,EAAE,CAAC;IAClC,CAAC;SAAM,CAAC;QACP,aAAa,GAAG,cAAc,CAAC;IAChC,CAAC;IACD,IAAI,KAAY,CAAC;IACjB,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACvC,KAAK,GAAG,IAAI,kBAAkB,CAAC,YAAa,aAAc,EAAE,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACP,KAAK,GAAG,aAAa,CAAC;IACvB,CAAC;IACD,OAAO,IAAA,sCAAe,EAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;AAC/D,CAAC,CAAC;AAjBW,QAAA,uBAAuB,2BAiBlC"}
|
package/cjs/ts/has-number.js
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hasNumber = void 0;
|
|
4
4
|
const has_own_js_1 = require("./has-own.js");
|
|
5
|
+
/**
|
|
6
|
+
* Guard for whether an object has a property with the given name
|
|
7
|
+
* and a numeric value.
|
|
8
|
+
*/
|
|
5
9
|
const hasNumber = (obj, name) => {
|
|
6
10
|
return (0, has_own_js_1.hasOwn)(obj, name) && typeof obj[name] === "number";
|
|
7
11
|
};
|
package/cjs/ts/has-number.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-number.js","sourceRoot":"","sources":["../../../ts/has-number.ts"],"names":[],"mappings":";;;AAAA,6CAAsC;
|
|
1
|
+
{"version":3,"file":"has-number.js","sourceRoot":"","sources":["../../../ts/has-number.ts"],"names":[],"mappings":";;;AAAA,6CAAsC;AAEtC;;;GAGG;AACI,MAAM,SAAS,GAAG,CAAsB,GAAY,EAAE,IAAU,EAAkC,EAAE;IAC1G,OAAO,IAAA,mBAAM,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO,GAAG,CAAE,IAAI,CAAE,KAAK,QAAQ,CAAC;AAC7D,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB"}
|
package/cjs/ts/has-own.js
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hasOwn = hasOwn;
|
|
4
4
|
const is_object_js_1 = require("./is-object.js");
|
|
5
|
+
/**
|
|
6
|
+
* Guard for whether the given value is an object with a property
|
|
7
|
+
* with the given name.
|
|
8
|
+
*/
|
|
5
9
|
function hasOwn(obj, name, predicate) {
|
|
6
10
|
if (!(0, is_object_js_1.isObject)(obj) || !Object.hasOwn(obj, name)) {
|
|
7
11
|
return false;
|
package/cjs/ts/has-own.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-own.js","sourceRoot":"","sources":["../../../ts/has-own.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"has-own.js","sourceRoot":"","sources":["../../../ts/has-own.ts"],"names":[],"mappings":";;AAkBA,wBAKC;AAvBD,iDAA0C;AAc1C;;;GAGG;AACH,SAAgB,MAAM,CAAyB,GAAY,EAAE,IAAU,EAAE,SAA0C;IAClH,IAAI,CAAC,IAAA,uBAAQ,EAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,GAAG,CAAE,IAAwB,CAAE,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expectDefined = exports.isDefined = void 0;
|
|
4
|
+
exports.assertDefined = assertDefined;
|
|
5
|
+
const error_from_message_js_1 = require("./error-from-message.js");
|
|
6
|
+
/**
|
|
7
|
+
* Assert the given value is not null or undefined.
|
|
8
|
+
* Throws with the given message or error, otherwise.
|
|
9
|
+
*/
|
|
10
|
+
function assertDefined(value, messageOrError) {
|
|
11
|
+
if (value != null) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
throw (0, error_from_message_js_1.errorFromMessageOrError)(messageOrError, RangeError);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Guard to filter out null or undefined values.
|
|
18
|
+
*/
|
|
19
|
+
const isDefined = (obj) => obj != null;
|
|
20
|
+
exports.isDefined = isDefined;
|
|
21
|
+
/**
|
|
22
|
+
* Coerce a value's type to exclude null or undefined, or throw
|
|
23
|
+
* if it actually is null or undefined.
|
|
24
|
+
*/
|
|
25
|
+
const expectDefined = (obj, messageOrError) => {
|
|
26
|
+
assertDefined(obj, messageOrError);
|
|
27
|
+
return obj;
|
|
28
|
+
};
|
|
29
|
+
exports.expectDefined = expectDefined;
|
|
30
|
+
//# sourceMappingURL=is-defined.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-defined.js","sourceRoot":"","sources":["../../../ts/is-defined.ts"],"names":[],"mappings":";;;AAMA,sCAQC;AAdD,mEAAuF;AAEvF;;;GAGG;AACH,SAAgB,aAAa,CAC5B,KAAQ,EACR,cAA8B;IAE9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO;IACR,CAAC;IACD,MAAM,IAAA,+CAAuB,EAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACI,MAAM,SAAS,GAAG,CAAI,GAAM,EAAyB,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC;AAA9D,QAAA,SAAS,aAAqD;AAE3E;;;GAGG;AACI,MAAM,aAAa,GAAG,CAC5B,GAAM,EACN,cAA8B,EACb,EAAE;IACnB,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACnC,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
|
package/cjs/ts/is-int.js
CHANGED
|
@@ -3,13 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
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
|
+
/**
|
|
7
|
+
* Check whether the given value is not just numeric, but is
|
|
8
|
+
* also an integer.
|
|
9
|
+
*/
|
|
6
10
|
const isInt = (obj) => typeof obj === "number" && !isNaN(obj) && Math.trunc(obj) === obj && obj !== Infinity && obj !== -Infinity;
|
|
7
11
|
exports.isInt = isInt;
|
|
12
|
+
/**
|
|
13
|
+
* Throw if the given value is not an integer.
|
|
14
|
+
*/
|
|
8
15
|
function assertInt(value, messageOrError) {
|
|
9
16
|
if (!(0, exports.isInt)(value)) {
|
|
10
17
|
throw (0, error_from_message_js_1.errorFromMessageOrError)(messageOrError, TypeError);
|
|
11
18
|
}
|
|
12
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Coerce a value's type to a number, throwing if it's not an integer.
|
|
22
|
+
*/
|
|
13
23
|
const expectInt = (obj, messageOrError) => {
|
|
14
24
|
assertInt(obj, messageOrError);
|
|
15
25
|
return obj;
|
package/cjs/ts/is-int.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-int.js","sourceRoot":"","sources":["../../../ts/is-int.ts"],"names":[],"mappings":";;;
|
|
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"}
|
package/cjs/ts/is-list-of.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isListOf = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Guard to check if the given value is an array where all the
|
|
6
|
+
* items match the given predicate.
|
|
7
|
+
*/
|
|
4
8
|
const isListOf = (list, predicate) => {
|
|
5
9
|
return Array.isArray(list) && list.every(predicate);
|
|
6
10
|
};
|
package/cjs/ts/is-list-of.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-list-of.js","sourceRoot":"","sources":["../../../ts/is-list-of.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"is-list-of.js","sourceRoot":"","sources":["../../../ts/is-list-of.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,QAAQ,GAAG,CACvB,IAAa,EACb,SAAwE,EAC1D,EAAE;IAChB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrD,CAAC,CAAC;AALW,QAAA,QAAQ,YAKnB"}
|
package/cjs/ts/is-object.js
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isPlainObject = exports.isObject = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Guard to check that the given value is defined and object-like.
|
|
6
|
+
*/
|
|
4
7
|
const isObject = (obj) => {
|
|
5
8
|
return obj != null && typeof obj === "object";
|
|
6
9
|
};
|
|
7
10
|
exports.isObject = isObject;
|
|
11
|
+
/**
|
|
12
|
+
* Guard to check that the given value is defined, is an object,
|
|
13
|
+
* and seems to be a "plain" object, descending directly from Object.
|
|
14
|
+
* This won't prevent all shenanigans, but is a low-effort check.
|
|
15
|
+
*/
|
|
8
16
|
const isPlainObject = (obj) => {
|
|
9
17
|
if (!(0, exports.isObject)(obj)) {
|
|
10
18
|
return false;
|
package/cjs/ts/is-object.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-object.js","sourceRoot":"","sources":["../../../ts/is-object.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"is-object.js","sourceRoot":"","sources":["../../../ts/is-object.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACI,MAAM,QAAQ,GAAG,CAAC,GAAY,EAA8B,EAAE;IACpE,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;AAC/C,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAEF;;;;GAIG;AACI,MAAM,aAAa,GAAG,CAAC,GAAY,EAA8B,EAAE;IACzE,IAAI,CAAC,IAAA,gBAAQ,EAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,CAAC;AACpD,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.scrubStackTrace = void 0;
|
|
4
|
+
const defaultKeepIf = (line) => {
|
|
5
|
+
return !line.includes("node:internal")
|
|
6
|
+
&& (!line.includes("/node_modules/") || line.includes("@rickosborne/"));
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Wrap an Error in a proxy which cleans up the stack trace to be
|
|
10
|
+
* more human-readable. It filters out lines from third-party code,
|
|
11
|
+
* so you can quickly see your own code in the call stack.
|
|
12
|
+
* May optionally include some way of indicating additional lines
|
|
13
|
+
* which should be removed, so a guard function could make itself
|
|
14
|
+
* transparent, making it seem like the caller threw the error.
|
|
15
|
+
* @param err - Some kind of Error.
|
|
16
|
+
* @param removeIf - A matcher to indicate whether a line should be removed (not kept!).
|
|
17
|
+
* Generally, you'll pass in the name of the calling function, calling file, or similar.
|
|
18
|
+
*/
|
|
19
|
+
const scrubStackTrace = (err, removeIf) => {
|
|
20
|
+
let keepIf;
|
|
21
|
+
if (typeof removeIf === "string") {
|
|
22
|
+
keepIf = (line) => !line.includes(removeIf);
|
|
23
|
+
}
|
|
24
|
+
else if (removeIf instanceof RegExp) {
|
|
25
|
+
keepIf = (line) => !removeIf.test(line);
|
|
26
|
+
}
|
|
27
|
+
else if (typeof removeIf === "function") {
|
|
28
|
+
keepIf = (line) => !removeIf(line);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
keepIf = () => true;
|
|
32
|
+
}
|
|
33
|
+
let scrubbedStack;
|
|
34
|
+
return new Proxy(err, {
|
|
35
|
+
get(target, p) {
|
|
36
|
+
var _a;
|
|
37
|
+
if (p !== "stack") {
|
|
38
|
+
return target[p];
|
|
39
|
+
}
|
|
40
|
+
if (scrubbedStack == null) {
|
|
41
|
+
scrubbedStack = (_a = target.stack) === null || _a === void 0 ? void 0 : _a.split("\n").filter(defaultKeepIf).filter(keepIf).join("\n");
|
|
42
|
+
}
|
|
43
|
+
return scrubbedStack;
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
exports.scrubStackTrace = scrubStackTrace;
|
|
48
|
+
//# sourceMappingURL=scrub-stack-trace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrub-stack-trace.js","sourceRoot":"","sources":["../../../ts/scrub-stack-trace.ts"],"names":[],"mappings":";;;AAEA,MAAM,aAAa,GAAG,CAAC,IAAY,EAAW,EAAE;IAC/C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;WAClC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACI,MAAM,eAAe,GAAG,CAC9B,GAAM,EACN,QAA0D,EACtD,EAAE;IACN,IAAI,MAAyB,CAAC;IAC9B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,QAAQ,YAAY,MAAM,EAAE,CAAC;QACvC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC3C,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACP,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,IAAI,aAAiC,CAAC;IACtC,OAAO,IAAI,KAAK,CAAI,GAAG,EAAE;QACxB,GAAG,CAAC,MAAS,EAAE,CAAkB;;YAChC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;gBACnB,OAAO,MAAM,CAAE,CAAY,CAAE,CAAC;YAC/B,CAAC;YACD,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;gBAC3B,aAAa,GAAG,MAAA,MAAM,CAAC,KAAK,0CAAE,KAAK,CAAC,IAAI,EACtC,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,MAAM,EACb,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,CAAC;YACD,OAAO,aAAa,CAAC;QACtB,CAAC;KACD,CAAC,CAAC;AACJ,CAAC,CAAC;AA7BW,QAAA,eAAe,mBA6B1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../../index.ts","../../ts/
|
|
1
|
+
{"root":["../../index.ts","../../ts/error-from-message.ts","../../ts/has-array.ts","../../ts/has-number.ts","../../ts/has-own.ts","../../ts/is-defined.ts","../../ts/is-int.ts","../../ts/is-list-of.ts","../../ts/is-object.ts","../../ts/is-predicate.ts","../../ts/scrub-stack-trace.ts"],"version":"5.7.2"}
|
package/esm/index.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
export * from "./ts/assert-defined.js";
|
|
2
1
|
export * from "./ts/error-from-message.js";
|
|
3
2
|
export * from "./ts/has-array.js";
|
|
4
3
|
export * from "./ts/has-number.js";
|
|
5
4
|
export * from "./ts/has-own.js";
|
|
5
|
+
export * from "./ts/is-defined.js";
|
|
6
6
|
export * from "./ts/is-int.js";
|
|
7
7
|
export * from "./ts/is-list-of.js";
|
|
8
8
|
export * from "./ts/is-object.js";
|
|
9
9
|
export * from "./ts/is-predicate.js";
|
|
10
|
+
export * from "./ts/scrub-stack-trace.js";
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
package/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { scrubStackTrace } from "./scrub-stack-trace.js";
|
|
1
2
|
/**
|
|
2
3
|
* Helper for guards which expect text or an error, or
|
|
3
4
|
* can generate one when needed.
|
|
@@ -17,6 +18,6 @@ export const errorFromMessageOrError = (messageOrError, defaultConstructor = Err
|
|
|
17
18
|
else {
|
|
18
19
|
error = stringOrError;
|
|
19
20
|
}
|
|
20
|
-
return error;
|
|
21
|
+
return scrubStackTrace(error, " at errorFromMessageOrError ");
|
|
21
22
|
};
|
|
22
23
|
//# sourceMappingURL=error-from-message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-from-message.js","sourceRoot":"","sources":["../../../ts/error-from-message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error-from-message.js","sourceRoot":"","sources":["../../../ts/error-from-message.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAOzD;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CACtC,cAA8B,EAC9B,qBAAuD,KAAK,EACpD,EAAE;IACV,IAAI,aAA6B,CAAC;IAClC,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;QAC1C,aAAa,GAAG,cAAc,EAAE,CAAC;IAClC,CAAC;SAAM,CAAC;QACP,aAAa,GAAG,cAAc,CAAC;IAChC,CAAC;IACD,IAAI,KAAY,CAAC;IACjB,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACvC,KAAK,GAAG,IAAI,kBAAkB,CAAC,YAAa,aAAc,EAAE,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACP,KAAK,GAAG,aAAa,CAAC;IACvB,CAAC;IACD,OAAO,eAAe,CAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;AAC/D,CAAC,CAAC"}
|
package/esm/ts/has-number.js
CHANGED
package/esm/ts/has-number.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-number.js","sourceRoot":"","sources":["../../../ts/has-number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,CAAC,MAAM,SAAS,GAAG,CAAsB,GAAY,EAAE,IAAU,
|
|
1
|
+
{"version":3,"file":"has-number.js","sourceRoot":"","sources":["../../../ts/has-number.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAsB,GAAY,EAAE,IAAU,EAAkC,EAAE;IAC1G,OAAO,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO,GAAG,CAAE,IAAI,CAAE,KAAK,QAAQ,CAAC;AAC7D,CAAC,CAAC"}
|
package/esm/ts/has-own.js
CHANGED
package/esm/ts/has-own.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-own.js","sourceRoot":"","sources":["../../../ts/has-own.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"has-own.js","sourceRoot":"","sources":["../../../ts/has-own.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAc1C;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAyB,GAAY,EAAE,IAAU,EAAE,SAA0C;IAClH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,GAAG,CAAE,IAAwB,CAAE,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { errorFromMessageOrError } from "./error-from-message.js";
|
|
2
|
+
/**
|
|
3
|
+
* Assert the given value is not null or undefined.
|
|
4
|
+
* Throws with the given message or error, otherwise.
|
|
5
|
+
*/
|
|
6
|
+
export function assertDefined(value, messageOrError) {
|
|
7
|
+
if (value != null) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
throw errorFromMessageOrError(messageOrError, RangeError);
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Guard to filter out null or undefined values.
|
|
14
|
+
*/
|
|
15
|
+
export const isDefined = (obj) => obj != null;
|
|
16
|
+
/**
|
|
17
|
+
* Coerce a value's type to exclude null or undefined, or throw
|
|
18
|
+
* if it actually is null or undefined.
|
|
19
|
+
*/
|
|
20
|
+
export const expectDefined = (obj, messageOrError) => {
|
|
21
|
+
assertDefined(obj, messageOrError);
|
|
22
|
+
return obj;
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=is-defined.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-defined.js","sourceRoot":"","sources":["../../../ts/is-defined.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvF;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC5B,KAAQ,EACR,cAA8B;IAE9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO;IACR,CAAC;IACD,MAAM,uBAAuB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAI,GAAM,EAAyB,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC;AAE3E;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAC5B,GAAM,EACN,cAA8B,EACb,EAAE;IACnB,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACnC,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC"}
|
package/esm/ts/is-int.js
CHANGED
|
@@ -1,10 +1,20 @@
|
|
|
1
1
|
import { errorFromMessageOrError } from "./error-from-message.js";
|
|
2
|
+
/**
|
|
3
|
+
* Check whether the given value is not just numeric, but is
|
|
4
|
+
* also an integer.
|
|
5
|
+
*/
|
|
2
6
|
export const isInt = (obj) => typeof obj === "number" && !isNaN(obj) && Math.trunc(obj) === obj && obj !== Infinity && obj !== -Infinity;
|
|
7
|
+
/**
|
|
8
|
+
* Throw if the given value is not an integer.
|
|
9
|
+
*/
|
|
3
10
|
export function assertInt(value, messageOrError) {
|
|
4
11
|
if (!isInt(value)) {
|
|
5
12
|
throw errorFromMessageOrError(messageOrError, TypeError);
|
|
6
13
|
}
|
|
7
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Coerce a value's type to a number, throwing if it's not an integer.
|
|
17
|
+
*/
|
|
8
18
|
export const expectInt = (obj, messageOrError) => {
|
|
9
19
|
assertInt(obj, messageOrError);
|
|
10
20
|
return obj;
|
package/esm/ts/is-int.js.map
CHANGED
|
@@ -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,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,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,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"}
|
package/esm/ts/is-list-of.js
CHANGED
package/esm/ts/is-list-of.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-list-of.js","sourceRoot":"","sources":["../../../ts/is-list-of.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,CACvB,IAAa,EACb,SAAwE,EAC1D,EAAE;IAChB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrD,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"is-list-of.js","sourceRoot":"","sources":["../../../ts/is-list-of.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACvB,IAAa,EACb,SAAwE,EAC1D,EAAE;IAChB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrD,CAAC,CAAC"}
|
package/esm/ts/is-object.js
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guard to check that the given value is defined and object-like.
|
|
3
|
+
*/
|
|
1
4
|
export const isObject = (obj) => {
|
|
2
5
|
return obj != null && typeof obj === "object";
|
|
3
6
|
};
|
|
7
|
+
/**
|
|
8
|
+
* Guard to check that the given value is defined, is an object,
|
|
9
|
+
* and seems to be a "plain" object, descending directly from Object.
|
|
10
|
+
* This won't prevent all shenanigans, but is a low-effort check.
|
|
11
|
+
*/
|
|
4
12
|
export const isPlainObject = (obj) => {
|
|
5
13
|
if (!isObject(obj)) {
|
|
6
14
|
return false;
|
package/esm/ts/is-object.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-object.js","sourceRoot":"","sources":["../../../ts/is-object.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAY,EAA8B,EAAE;IACpE,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;AAC/C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAY,EAA8B,EAAE;IACzE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,CAAC;AACpD,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"is-object.js","sourceRoot":"","sources":["../../../ts/is-object.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAY,EAA8B,EAAE;IACpE,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;AAC/C,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAY,EAA8B,EAAE;IACzE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,CAAC;AACpD,CAAC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
const defaultKeepIf = (line) => {
|
|
2
|
+
return !line.includes("node:internal")
|
|
3
|
+
&& (!line.includes("/node_modules/") || line.includes("@rickosborne/"));
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Wrap an Error in a proxy which cleans up the stack trace to be
|
|
7
|
+
* more human-readable. It filters out lines from third-party code,
|
|
8
|
+
* so you can quickly see your own code in the call stack.
|
|
9
|
+
* May optionally include some way of indicating additional lines
|
|
10
|
+
* which should be removed, so a guard function could make itself
|
|
11
|
+
* transparent, making it seem like the caller threw the error.
|
|
12
|
+
* @param err - Some kind of Error.
|
|
13
|
+
* @param removeIf - A matcher to indicate whether a line should be removed (not kept!).
|
|
14
|
+
* Generally, you'll pass in the name of the calling function, calling file, or similar.
|
|
15
|
+
*/
|
|
16
|
+
export const scrubStackTrace = (err, removeIf) => {
|
|
17
|
+
let keepIf;
|
|
18
|
+
if (typeof removeIf === "string") {
|
|
19
|
+
keepIf = (line) => !line.includes(removeIf);
|
|
20
|
+
}
|
|
21
|
+
else if (removeIf instanceof RegExp) {
|
|
22
|
+
keepIf = (line) => !removeIf.test(line);
|
|
23
|
+
}
|
|
24
|
+
else if (typeof removeIf === "function") {
|
|
25
|
+
keepIf = (line) => !removeIf(line);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
keepIf = () => true;
|
|
29
|
+
}
|
|
30
|
+
let scrubbedStack;
|
|
31
|
+
return new Proxy(err, {
|
|
32
|
+
get(target, p) {
|
|
33
|
+
if (p !== "stack") {
|
|
34
|
+
return target[p];
|
|
35
|
+
}
|
|
36
|
+
if (scrubbedStack == null) {
|
|
37
|
+
scrubbedStack = target.stack?.split("\n")
|
|
38
|
+
.filter(defaultKeepIf)
|
|
39
|
+
.filter(keepIf)
|
|
40
|
+
.join("\n");
|
|
41
|
+
}
|
|
42
|
+
return scrubbedStack;
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=scrub-stack-trace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrub-stack-trace.js","sourceRoot":"","sources":["../../../ts/scrub-stack-trace.ts"],"names":[],"mappings":"AAEA,MAAM,aAAa,GAAG,CAAC,IAAY,EAAW,EAAE;IAC/C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;WAClC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,GAAM,EACN,QAA0D,EACtD,EAAE;IACN,IAAI,MAAyB,CAAC;IAC9B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,QAAQ,YAAY,MAAM,EAAE,CAAC;QACvC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC3C,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACP,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,IAAI,aAAiC,CAAC;IACtC,OAAO,IAAI,KAAK,CAAI,GAAG,EAAE;QACxB,GAAG,CAAC,MAAS,EAAE,CAAkB;YAChC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;gBACnB,OAAO,MAAM,CAAE,CAAY,CAAE,CAAC;YAC/B,CAAC;YACD,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;gBAC3B,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;qBACvC,MAAM,CAAC,aAAa,CAAC;qBACrB,MAAM,CAAC,MAAM,CAAC;qBACd,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,CAAC;YACD,OAAO,aAAa,CAAC;QACtB,CAAC;KACD,CAAC,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../../index.ts","../../ts/
|
|
1
|
+
{"root":["../../index.ts","../../ts/error-from-message.ts","../../ts/has-array.ts","../../ts/has-number.ts","../../ts/has-own.ts","../../ts/is-defined.ts","../../ts/is-int.ts","../../ts/is-list-of.ts","../../ts/is-object.ts","../../ts/is-predicate.ts","../../ts/scrub-stack-trace.ts"],"version":"5.7.2"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"url": "https://rickosborne.org"
|
|
5
5
|
},
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@rickosborne/typical": "2024.12.
|
|
7
|
+
"@rickosborne/typical": "2024.12.33"
|
|
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.
|
|
43
|
+
"version": "2024.12.33"
|
|
44
44
|
}
|
package/types/index.d.ts
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
export * from "./ts/assert-defined.js";
|
|
2
1
|
export * from "./ts/error-from-message.js";
|
|
3
2
|
export * from "./ts/has-array.js";
|
|
4
3
|
export * from "./ts/has-number.js";
|
|
5
4
|
export * from "./ts/has-own.js";
|
|
5
|
+
export * from "./ts/is-defined.js";
|
|
6
6
|
export * from "./ts/is-int.js";
|
|
7
7
|
export * from "./ts/is-list-of.js";
|
|
8
8
|
export * from "./ts/is-object.js";
|
|
9
9
|
export * from "./ts/is-predicate.js";
|
|
10
|
+
export * from "./ts/scrub-stack-trace.js";
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC"}
|
package/types/index.js
CHANGED
|
@@ -14,13 +14,14 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./ts/assert-defined.js"), exports);
|
|
18
17
|
__exportStar(require("./ts/error-from-message.js"), exports);
|
|
19
18
|
__exportStar(require("./ts/has-array.js"), exports);
|
|
20
19
|
__exportStar(require("./ts/has-number.js"), exports);
|
|
21
20
|
__exportStar(require("./ts/has-own.js"), exports);
|
|
21
|
+
__exportStar(require("./ts/is-defined.js"), exports);
|
|
22
22
|
__exportStar(require("./ts/is-int.js"), exports);
|
|
23
23
|
__exportStar(require("./ts/is-list-of.js"), exports);
|
|
24
24
|
__exportStar(require("./ts/is-object.js"), exports);
|
|
25
25
|
__exportStar(require("./ts/is-predicate.js"), exports);
|
|
26
|
+
__exportStar(require("./ts/scrub-stack-trace.js"), exports);
|
|
26
27
|
//# sourceMappingURL=index.js.map
|
package/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,oDAAkC;AAClC,qDAAmC;AACnC,kDAAgC;AAChC,qDAAmC;AACnC,iDAA+B;AAC/B,qDAAmC;AACnC,oDAAkC;AAClC,uDAAqC;AACrC,4DAA0C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-from-message.d.ts","sourceRoot":"","sources":["../../../ts/error-from-message.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error-from-message.d.ts","sourceRoot":"","sources":["../../../ts/error-from-message.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;AAEvE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,mBACnB,cAAc,uBACV,CAAC,KAAK,OAAO,EAAE,MAAM,KAAK,KAAK,CAAC,KAClD,KAcF,CAAC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.errorFromMessageOrError = void 0;
|
|
4
|
+
const scrub_stack_trace_js_1 = require("./scrub-stack-trace.js");
|
|
4
5
|
/**
|
|
5
6
|
* Helper for guards which expect text or an error, or
|
|
6
7
|
* can generate one when needed.
|
|
@@ -20,7 +21,7 @@ const errorFromMessageOrError = (messageOrError, defaultConstructor = Error) =>
|
|
|
20
21
|
else {
|
|
21
22
|
error = stringOrError;
|
|
22
23
|
}
|
|
23
|
-
return error;
|
|
24
|
+
return (0, scrub_stack_trace_js_1.scrubStackTrace)(error, " at errorFromMessageOrError ");
|
|
24
25
|
};
|
|
25
26
|
exports.errorFromMessageOrError = errorFromMessageOrError;
|
|
26
27
|
//# sourceMappingURL=error-from-message.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-from-message.js","sourceRoot":"","sources":["../../../ts/error-from-message.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"error-from-message.js","sourceRoot":"","sources":["../../../ts/error-from-message.ts"],"names":[],"mappings":";;;AAAA,iEAAyD;AAOzD;;;GAGG;AACI,MAAM,uBAAuB,GAAG,CACtC,cAA8B,EAC9B,qBAAuD,KAAK,EACpD,EAAE;IACV,IAAI,aAA6B,CAAC;IAClC,IAAI,OAAO,cAAc,KAAK,UAAU,EAAE,CAAC;QAC1C,aAAa,GAAG,cAAc,EAAE,CAAC;IAClC,CAAC;SAAM,CAAC;QACP,aAAa,GAAG,cAAc,CAAC;IAChC,CAAC;IACD,IAAI,KAAY,CAAC;IACjB,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;QACvC,KAAK,GAAG,IAAI,kBAAkB,CAAC,YAAa,aAAc,EAAE,CAAC,CAAC;IAC/D,CAAC;SAAM,CAAC;QACP,KAAK,GAAG,aAAa,CAAC;IACvB,CAAC;IACD,OAAO,IAAA,sCAAe,EAAC,KAAK,EAAE,8BAA8B,CAAC,CAAC;AAC/D,CAAC,CAAC;AAjBW,QAAA,uBAAuB,2BAiBlC"}
|
package/types/ts/has-number.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-number.d.ts","sourceRoot":"","sources":["../../../ts/has-number.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,GAAI,IAAI,SAAS,MAAM,OAAO,OAAO,QAAQ,IAAI,KAAG,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"has-number.d.ts","sourceRoot":"","sources":["../../../ts/has-number.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,IAAI,SAAS,MAAM,OAAO,OAAO,QAAQ,IAAI,KAAG,GAAG,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,MAAM,GAErG,CAAC"}
|
package/types/ts/has-number.js
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hasNumber = void 0;
|
|
4
4
|
const has_own_js_1 = require("./has-own.js");
|
|
5
|
+
/**
|
|
6
|
+
* Guard for whether an object has a property with the given name
|
|
7
|
+
* and a numeric value.
|
|
8
|
+
*/
|
|
5
9
|
const hasNumber = (obj, name) => {
|
|
6
10
|
return (0, has_own_js_1.hasOwn)(obj, name) && typeof obj[name] === "number";
|
|
7
11
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-number.js","sourceRoot":"","sources":["../../../ts/has-number.ts"],"names":[],"mappings":";;;AAAA,6CAAsC;
|
|
1
|
+
{"version":3,"file":"has-number.js","sourceRoot":"","sources":["../../../ts/has-number.ts"],"names":[],"mappings":";;;AAAA,6CAAsC;AAEtC;;;GAGG;AACI,MAAM,SAAS,GAAG,CAAsB,GAAY,EAAE,IAAU,EAAkC,EAAE;IAC1G,OAAO,IAAA,mBAAM,EAAC,GAAG,EAAE,IAAI,CAAC,IAAI,OAAO,GAAG,CAAE,IAAI,CAAE,KAAK,QAAQ,CAAC;AAC7D,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB"}
|
package/types/ts/has-own.d.ts
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guard for whether the given value is an object with a property
|
|
3
|
+
* with the given name.
|
|
4
|
+
* This variant does not check the value, only that the property exists.
|
|
5
|
+
*/
|
|
1
6
|
export declare function hasOwn<Name extends string>(obj: unknown, name: Name): obj is {
|
|
2
7
|
[K in Name]: unknown;
|
|
3
8
|
};
|
|
9
|
+
/**
|
|
10
|
+
* Guard for whether the given value is an object with a property
|
|
11
|
+
* with the given name.
|
|
12
|
+
* This variant checks the value against the given predicate.
|
|
13
|
+
*/
|
|
4
14
|
export declare function hasOwn<Name extends string, T>(obj: unknown, name: Name, predicate: (value: unknown) => value is T): obj is {
|
|
5
15
|
[K in Name]: T;
|
|
6
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-own.d.ts","sourceRoot":"","sources":["../../../ts/has-own.ts"],"names":[],"mappings":"AAEA,wBAAgB,MAAM,CAAC,IAAI,SAAS,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"has-own.d.ts","sourceRoot":"","sources":["../../../ts/has-own.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,SAAS,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,GAAG,IAAI;KAAG,CAAC,IAAI,IAAI,GAAG,OAAO;CAAE,CAAC;AACvG;;;;GAIG;AACH,wBAAgB,MAAM,CAAC,IAAI,SAAS,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,CAAC,GAAG,GAAG,IAAI;KAAG,CAAC,IAAI,IAAI,GAAG,CAAC;CAAE,CAAC"}
|
package/types/ts/has-own.js
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.hasOwn = hasOwn;
|
|
4
4
|
const is_object_js_1 = require("./is-object.js");
|
|
5
|
+
/**
|
|
6
|
+
* Guard for whether the given value is an object with a property
|
|
7
|
+
* with the given name.
|
|
8
|
+
*/
|
|
5
9
|
function hasOwn(obj, name, predicate) {
|
|
6
10
|
if (!(0, is_object_js_1.isObject)(obj) || !Object.hasOwn(obj, name)) {
|
|
7
11
|
return false;
|
package/types/ts/has-own.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-own.js","sourceRoot":"","sources":["../../../ts/has-own.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"has-own.js","sourceRoot":"","sources":["../../../ts/has-own.ts"],"names":[],"mappings":";;AAkBA,wBAKC;AAvBD,iDAA0C;AAc1C;;;GAGG;AACH,SAAgB,MAAM,CAAyB,GAAY,EAAE,IAAU,EAAE,SAA0C;IAClH,IAAI,CAAC,IAAA,uBAAQ,EAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,SAAS,IAAI,IAAI,IAAI,SAAS,CAAC,GAAG,CAAE,IAAwB,CAAE,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type MessageOrError } from "./error-from-message.js";
|
|
2
|
+
/**
|
|
3
|
+
* Assert the given value is not null or undefined.
|
|
4
|
+
* Throws with the given message or error, otherwise.
|
|
5
|
+
*/
|
|
6
|
+
export declare function assertDefined<T>(value: T, messageOrError: MessageOrError): asserts value is NonNullable<T>;
|
|
7
|
+
/**
|
|
8
|
+
* Guard to filter out null or undefined values.
|
|
9
|
+
*/
|
|
10
|
+
export declare const isDefined: <T>(obj: T) => obj is NonNullable<T>;
|
|
11
|
+
/**
|
|
12
|
+
* Coerce a value's type to exclude null or undefined, or throw
|
|
13
|
+
* if it actually is null or undefined.
|
|
14
|
+
*/
|
|
15
|
+
export declare const expectDefined: <T>(obj: T, messageOrError: MessageOrError) => NonNullable<T>;
|
|
16
|
+
//# sourceMappingURL=is-defined.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-defined.d.ts","sourceRoot":"","sources":["../../../ts/is-defined.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA2B,MAAM,yBAAyB,CAAC;AAEvF;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC9B,KAAK,EAAE,CAAC,EACR,cAAc,EAAE,cAAc,GAC5B,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAKjC;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,GAAI,CAAC,OAAO,CAAC,KAAG,GAAG,IAAI,WAAW,CAAC,CAAC,CAAgB,CAAC;AAE3E;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,OACzB,CAAC,kBACU,cAAc,KAC5B,WAAW,CAAC,CAAC,CAGf,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.expectDefined = exports.isDefined = void 0;
|
|
4
|
+
exports.assertDefined = assertDefined;
|
|
5
|
+
const error_from_message_js_1 = require("./error-from-message.js");
|
|
6
|
+
/**
|
|
7
|
+
* Assert the given value is not null or undefined.
|
|
8
|
+
* Throws with the given message or error, otherwise.
|
|
9
|
+
*/
|
|
10
|
+
function assertDefined(value, messageOrError) {
|
|
11
|
+
if (value != null) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
throw (0, error_from_message_js_1.errorFromMessageOrError)(messageOrError, RangeError);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Guard to filter out null or undefined values.
|
|
18
|
+
*/
|
|
19
|
+
const isDefined = (obj) => obj != null;
|
|
20
|
+
exports.isDefined = isDefined;
|
|
21
|
+
/**
|
|
22
|
+
* Coerce a value's type to exclude null or undefined, or throw
|
|
23
|
+
* if it actually is null or undefined.
|
|
24
|
+
*/
|
|
25
|
+
const expectDefined = (obj, messageOrError) => {
|
|
26
|
+
assertDefined(obj, messageOrError);
|
|
27
|
+
return obj;
|
|
28
|
+
};
|
|
29
|
+
exports.expectDefined = expectDefined;
|
|
30
|
+
//# sourceMappingURL=is-defined.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-defined.js","sourceRoot":"","sources":["../../../ts/is-defined.ts"],"names":[],"mappings":";;;AAMA,sCAQC;AAdD,mEAAuF;AAEvF;;;GAGG;AACH,SAAgB,aAAa,CAC5B,KAAQ,EACR,cAA8B;IAE9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO;IACR,CAAC;IACD,MAAM,IAAA,+CAAuB,EAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC3D,CAAC;AAED;;GAEG;AACI,MAAM,SAAS,GAAG,CAAI,GAAM,EAAyB,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC;AAA9D,QAAA,SAAS,aAAqD;AAE3E;;;GAGG;AACI,MAAM,aAAa,GAAG,CAC5B,GAAM,EACN,cAA8B,EACb,EAAE;IACnB,aAAa,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACnC,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
|
package/types/ts/is-int.d.ts
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { type MessageOrError } from "./error-from-message.js";
|
|
2
|
+
/**
|
|
3
|
+
* Check whether the given value is not just numeric, but is
|
|
4
|
+
* also an integer.
|
|
5
|
+
*/
|
|
2
6
|
export declare const isInt: (obj: unknown) => obj is number;
|
|
7
|
+
/**
|
|
8
|
+
* Throw if the given value is not an integer.
|
|
9
|
+
*/
|
|
3
10
|
export declare function assertInt(value: unknown, messageOrError: MessageOrError): asserts value is number;
|
|
11
|
+
/**
|
|
12
|
+
* Coerce a value's type to a number, throwing if it's not an integer.
|
|
13
|
+
*/
|
|
4
14
|
export declare const expectInt: (obj: unknown, messageOrError: MessageOrError) => number;
|
|
5
15
|
//# sourceMappingURL=is-int.d.ts.map
|
package/types/ts/is-int.d.ts.map
CHANGED
|
@@ -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,eAAO,MAAM,KAAK,QAAS,OAAO,KAAG,GAAG,IAAI,MAAoH,CAAC;AAEjK,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAIjG;AAED,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"}
|
package/types/ts/is-int.js
CHANGED
|
@@ -3,13 +3,23 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
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
|
+
/**
|
|
7
|
+
* Check whether the given value is not just numeric, but is
|
|
8
|
+
* also an integer.
|
|
9
|
+
*/
|
|
6
10
|
const isInt = (obj) => typeof obj === "number" && !isNaN(obj) && Math.trunc(obj) === obj && obj !== Infinity && obj !== -Infinity;
|
|
7
11
|
exports.isInt = isInt;
|
|
12
|
+
/**
|
|
13
|
+
* Throw if the given value is not an integer.
|
|
14
|
+
*/
|
|
8
15
|
function assertInt(value, messageOrError) {
|
|
9
16
|
if (!(0, exports.isInt)(value)) {
|
|
10
17
|
throw (0, error_from_message_js_1.errorFromMessageOrError)(messageOrError, TypeError);
|
|
11
18
|
}
|
|
12
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Coerce a value's type to a number, throwing if it's not an integer.
|
|
22
|
+
*/
|
|
13
23
|
const expectInt = (obj, messageOrError) => {
|
|
14
24
|
assertInt(obj, messageOrError);
|
|
15
25
|
return obj;
|
package/types/ts/is-int.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-int.js","sourceRoot":"","sources":["../../../ts/is-int.ts"],"names":[],"mappings":";;;
|
|
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"}
|
package/types/ts/is-list-of.d.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guard to check if the given value is an array where all the
|
|
3
|
+
* items match the given predicate.
|
|
4
|
+
*/
|
|
1
5
|
export declare const isListOf: <T>(list: unknown, predicate: (item: unknown, index: number, items: unknown[]) => item is T) => list is T[];
|
|
2
6
|
//# sourceMappingURL=is-list-of.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-list-of.d.ts","sourceRoot":"","sources":["../../../ts/is-list-of.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,GAAI,CAAC,QACnB,OAAO,aACF,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,KACtE,IAAI,IAAI,CAAC,EAEX,CAAC"}
|
|
1
|
+
{"version":3,"file":"is-list-of.d.ts","sourceRoot":"","sources":["../../../ts/is-list-of.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,CAAC,QACnB,OAAO,aACF,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI,CAAC,KACtE,IAAI,IAAI,CAAC,EAEX,CAAC"}
|
package/types/ts/is-list-of.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isListOf = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Guard to check if the given value is an array where all the
|
|
6
|
+
* items match the given predicate.
|
|
7
|
+
*/
|
|
4
8
|
const isListOf = (list, predicate) => {
|
|
5
9
|
return Array.isArray(list) && list.every(predicate);
|
|
6
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-list-of.js","sourceRoot":"","sources":["../../../ts/is-list-of.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"is-list-of.js","sourceRoot":"","sources":["../../../ts/is-list-of.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACI,MAAM,QAAQ,GAAG,CACvB,IAAa,EACb,SAAwE,EAC1D,EAAE;IAChB,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrD,CAAC,CAAC;AALW,QAAA,QAAQ,YAKnB"}
|
package/types/ts/is-object.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Guard to check that the given value is defined and object-like.
|
|
3
|
+
*/
|
|
1
4
|
export declare const isObject: (obj: unknown) => obj is NonNullable<object>;
|
|
5
|
+
/**
|
|
6
|
+
* Guard to check that the given value is defined, is an object,
|
|
7
|
+
* and seems to be a "plain" object, descending directly from Object.
|
|
8
|
+
* This won't prevent all shenanigans, but is a low-effort check.
|
|
9
|
+
*/
|
|
2
10
|
export declare const isPlainObject: (obj: unknown) => obj is Record<never, never>;
|
|
3
11
|
//# sourceMappingURL=is-object.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-object.d.ts","sourceRoot":"","sources":["../../../ts/is-object.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,GAAG,IAAI,WAAW,CAAC,MAAM,CAEhE,CAAC;AAEF,eAAO,MAAM,aAAa,QAAS,OAAO,KAAG,GAAG,IAAI,MAAM,CAAC,KAAK,EAAC,KAAK,CAMrE,CAAC"}
|
|
1
|
+
{"version":3,"file":"is-object.d.ts","sourceRoot":"","sources":["../../../ts/is-object.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,eAAO,MAAM,QAAQ,QAAS,OAAO,KAAG,GAAG,IAAI,WAAW,CAAC,MAAM,CAEhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,QAAS,OAAO,KAAG,GAAG,IAAI,MAAM,CAAC,KAAK,EAAC,KAAK,CAMrE,CAAC"}
|
package/types/ts/is-object.js
CHANGED
|
@@ -1,10 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.isPlainObject = exports.isObject = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Guard to check that the given value is defined and object-like.
|
|
6
|
+
*/
|
|
4
7
|
const isObject = (obj) => {
|
|
5
8
|
return obj != null && typeof obj === "object";
|
|
6
9
|
};
|
|
7
10
|
exports.isObject = isObject;
|
|
11
|
+
/**
|
|
12
|
+
* Guard to check that the given value is defined, is an object,
|
|
13
|
+
* and seems to be a "plain" object, descending directly from Object.
|
|
14
|
+
* This won't prevent all shenanigans, but is a low-effort check.
|
|
15
|
+
*/
|
|
8
16
|
const isPlainObject = (obj) => {
|
|
9
17
|
if (!(0, exports.isObject)(obj)) {
|
|
10
18
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"is-object.js","sourceRoot":"","sources":["../../../ts/is-object.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"is-object.js","sourceRoot":"","sources":["../../../ts/is-object.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACI,MAAM,QAAQ,GAAG,CAAC,GAAY,EAA8B,EAAE;IACpE,OAAO,GAAG,IAAI,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;AAC/C,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAEF;;;;GAIG;AACI,MAAM,aAAa,GAAG,CAAC,GAAY,EAA8B,EAAE;IACzE,IAAI,CAAC,IAAA,gBAAQ,EAAC,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC1C,OAAO,KAAK,IAAI,IAAI,IAAI,KAAK,KAAK,MAAM,CAAC,SAAS,CAAC;AACpD,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Predicate } from "@rickosborne/typical";
|
|
2
|
+
/**
|
|
3
|
+
* Wrap an Error in a proxy which cleans up the stack trace to be
|
|
4
|
+
* more human-readable. It filters out lines from third-party code,
|
|
5
|
+
* so you can quickly see your own code in the call stack.
|
|
6
|
+
* May optionally include some way of indicating additional lines
|
|
7
|
+
* which should be removed, so a guard function could make itself
|
|
8
|
+
* transparent, making it seem like the caller threw the error.
|
|
9
|
+
* @param err - Some kind of Error.
|
|
10
|
+
* @param removeIf - A matcher to indicate whether a line should be removed (not kept!).
|
|
11
|
+
* Generally, you'll pass in the name of the calling function, calling file, or similar.
|
|
12
|
+
*/
|
|
13
|
+
export declare const scrubStackTrace: <E extends Error>(err: E, removeIf?: Predicate<string> | RegExp | string | undefined) => E;
|
|
14
|
+
//# sourceMappingURL=scrub-stack-trace.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrub-stack-trace.d.ts","sourceRoot":"","sources":["../../../ts/scrub-stack-trace.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAOtD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,SAAS,KAAK,OACzC,CAAC,aACK,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,KACxD,CA0BF,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.scrubStackTrace = void 0;
|
|
4
|
+
const defaultKeepIf = (line) => {
|
|
5
|
+
return !line.includes("node:internal")
|
|
6
|
+
&& (!line.includes("/node_modules/") || line.includes("@rickosborne/"));
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Wrap an Error in a proxy which cleans up the stack trace to be
|
|
10
|
+
* more human-readable. It filters out lines from third-party code,
|
|
11
|
+
* so you can quickly see your own code in the call stack.
|
|
12
|
+
* May optionally include some way of indicating additional lines
|
|
13
|
+
* which should be removed, so a guard function could make itself
|
|
14
|
+
* transparent, making it seem like the caller threw the error.
|
|
15
|
+
* @param err - Some kind of Error.
|
|
16
|
+
* @param removeIf - A matcher to indicate whether a line should be removed (not kept!).
|
|
17
|
+
* Generally, you'll pass in the name of the calling function, calling file, or similar.
|
|
18
|
+
*/
|
|
19
|
+
const scrubStackTrace = (err, removeIf) => {
|
|
20
|
+
let keepIf;
|
|
21
|
+
if (typeof removeIf === "string") {
|
|
22
|
+
keepIf = (line) => !line.includes(removeIf);
|
|
23
|
+
}
|
|
24
|
+
else if (removeIf instanceof RegExp) {
|
|
25
|
+
keepIf = (line) => !removeIf.test(line);
|
|
26
|
+
}
|
|
27
|
+
else if (typeof removeIf === "function") {
|
|
28
|
+
keepIf = (line) => !removeIf(line);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
keepIf = () => true;
|
|
32
|
+
}
|
|
33
|
+
let scrubbedStack;
|
|
34
|
+
return new Proxy(err, {
|
|
35
|
+
get(target, p) {
|
|
36
|
+
if (p !== "stack") {
|
|
37
|
+
return target[p];
|
|
38
|
+
}
|
|
39
|
+
if (scrubbedStack == null) {
|
|
40
|
+
scrubbedStack = target.stack?.split("\n")
|
|
41
|
+
.filter(defaultKeepIf)
|
|
42
|
+
.filter(keepIf)
|
|
43
|
+
.join("\n");
|
|
44
|
+
}
|
|
45
|
+
return scrubbedStack;
|
|
46
|
+
},
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
exports.scrubStackTrace = scrubStackTrace;
|
|
50
|
+
//# sourceMappingURL=scrub-stack-trace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrub-stack-trace.js","sourceRoot":"","sources":["../../../ts/scrub-stack-trace.ts"],"names":[],"mappings":";;;AAEA,MAAM,aAAa,GAAG,CAAC,IAAY,EAAW,EAAE;IAC/C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC;WAClC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACI,MAAM,eAAe,GAAG,CAC9B,GAAM,EACN,QAA0D,EACtD,EAAE;IACN,IAAI,MAAyB,CAAC;IAC9B,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAClC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;SAAM,IAAI,QAAQ,YAAY,MAAM,EAAE,CAAC;QACvC,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;SAAM,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC3C,MAAM,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;SAAM,CAAC;QACP,MAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC;IACrB,CAAC;IACD,IAAI,aAAiC,CAAC;IACtC,OAAO,IAAI,KAAK,CAAI,GAAG,EAAE;QACxB,GAAG,CAAC,MAAS,EAAE,CAAkB;YAChC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;gBACnB,OAAO,MAAM,CAAE,CAAY,CAAE,CAAC;YAC/B,CAAC;YACD,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;gBAC3B,aAAa,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC;qBACvC,MAAM,CAAC,aAAa,CAAC;qBACrB,MAAM,CAAC,MAAM,CAAC;qBACd,IAAI,CAAC,IAAI,CAAC,CAAC;YACd,CAAC;YACD,OAAO,aAAa,CAAC;QACtB,CAAC;KACD,CAAC,CAAC;AACJ,CAAC,CAAC;AA7BW,QAAA,eAAe,mBA6B1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../../index.ts","../../ts/
|
|
1
|
+
{"root":["../../index.ts","../../ts/error-from-message.ts","../../ts/has-array.ts","../../ts/has-number.ts","../../ts/has-own.ts","../../ts/is-defined.ts","../../ts/is-int.ts","../../ts/is-list-of.ts","../../ts/is-object.ts","../../ts/is-predicate.ts","../../ts/scrub-stack-trace.ts"],"version":"5.7.2"}
|
package/cjs/ts/assert-defined.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.assertDefined = assertDefined;
|
|
4
|
-
const error_from_message_js_1 = require("./error-from-message.js");
|
|
5
|
-
function assertDefined(value, messageOrError) {
|
|
6
|
-
if (value != null) {
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
throw (0, error_from_message_js_1.errorFromMessageOrError)(messageOrError, RangeError);
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=assert-defined.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assert-defined.js","sourceRoot":"","sources":["../../../ts/assert-defined.ts"],"names":[],"mappings":";;AAEA,sCAQC;AAVD,mEAAuF;AAEvF,SAAgB,aAAa,CAC5B,KAAQ,EACR,cAA8B;IAE9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO;IACR,CAAC;IACD,MAAM,IAAA,+CAAuB,EAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC3D,CAAC"}
|
package/esm/ts/assert-defined.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { errorFromMessageOrError } from "./error-from-message.js";
|
|
2
|
-
export function assertDefined(value, messageOrError) {
|
|
3
|
-
if (value != null) {
|
|
4
|
-
return;
|
|
5
|
-
}
|
|
6
|
-
throw errorFromMessageOrError(messageOrError, RangeError);
|
|
7
|
-
}
|
|
8
|
-
//# sourceMappingURL=assert-defined.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assert-defined.js","sourceRoot":"","sources":["../../../ts/assert-defined.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAEvF,MAAM,UAAU,aAAa,CAC5B,KAAQ,EACR,cAA8B;IAE9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO;IACR,CAAC;IACD,MAAM,uBAAuB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assert-defined.d.ts","sourceRoot":"","sources":["../../../ts/assert-defined.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAA2B,MAAM,yBAAyB,CAAC;AAEvF,wBAAgB,aAAa,CAAC,CAAC,EAC9B,KAAK,EAAE,CAAC,EACR,cAAc,EAAE,cAAc,GAC5B,OAAO,CAAC,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC,CAKjC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.assertDefined = assertDefined;
|
|
4
|
-
const error_from_message_js_1 = require("./error-from-message.js");
|
|
5
|
-
function assertDefined(value, messageOrError) {
|
|
6
|
-
if (value != null) {
|
|
7
|
-
return;
|
|
8
|
-
}
|
|
9
|
-
throw (0, error_from_message_js_1.errorFromMessageOrError)(messageOrError, RangeError);
|
|
10
|
-
}
|
|
11
|
-
//# sourceMappingURL=assert-defined.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"assert-defined.js","sourceRoot":"","sources":["../../../ts/assert-defined.ts"],"names":[],"mappings":";;AAEA,sCAQC;AAVD,mEAAuF;AAEvF,SAAgB,aAAa,CAC5B,KAAQ,EACR,cAA8B;IAE9B,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QACnB,OAAO;IACR,CAAC;IACD,MAAM,IAAA,+CAAuB,EAAC,cAAc,EAAE,UAAU,CAAC,CAAC;AAC3D,CAAC"}
|
|
File without changes
|