bupkis 0.4.0 → 0.5.0
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 +16 -0
- package/dist/commonjs/assertion/assertion.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion.js +74 -45
- package/dist/commonjs/assertion/assertion.js.map +1 -1
- package/dist/commonjs/assertion/impl/assertion-util.d.ts +189 -0
- package/dist/commonjs/assertion/impl/assertion-util.d.ts.map +1 -0
- package/dist/commonjs/assertion/impl/assertion-util.js +365 -0
- package/dist/commonjs/assertion/impl/assertion-util.js.map +1 -0
- package/dist/commonjs/assertion/impl/async-callback.d.ts +273 -0
- package/dist/commonjs/assertion/impl/async-callback.d.ts.map +1 -0
- package/dist/commonjs/assertion/impl/async-callback.js +427 -0
- package/dist/commonjs/assertion/impl/async-callback.js.map +1 -0
- package/dist/commonjs/assertion/impl/async-parametric.d.ts +250 -0
- package/dist/commonjs/assertion/impl/async-parametric.d.ts.map +1 -0
- package/dist/commonjs/assertion/impl/async-parametric.js +447 -0
- package/dist/commonjs/assertion/impl/async-parametric.js.map +1 -0
- package/dist/commonjs/assertion/impl/async.d.ts +93 -60
- package/dist/commonjs/assertion/impl/async.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/async.js +48 -275
- package/dist/commonjs/assertion/impl/async.js.map +1 -1
- package/dist/commonjs/assertion/impl/index.d.ts +19 -2
- package/dist/commonjs/assertion/impl/index.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/index.js +33 -5
- package/dist/commonjs/assertion/impl/index.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-basic.d.ts +518 -2
- package/dist/commonjs/assertion/impl/sync-basic.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-basic.js +534 -60
- package/dist/commonjs/assertion/impl/sync-basic.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-callback.d.ts +281 -0
- package/dist/commonjs/assertion/impl/sync-callback.d.ts.map +1 -0
- package/dist/commonjs/assertion/impl/sync-callback.js +413 -0
- package/dist/commonjs/assertion/impl/sync-callback.js.map +1 -0
- package/dist/commonjs/assertion/impl/sync-collection.d.ts +484 -6
- package/dist/commonjs/assertion/impl/sync-collection.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-collection.js +782 -52
- package/dist/commonjs/assertion/impl/sync-collection.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-esoteric.d.ts +143 -2
- package/dist/commonjs/assertion/impl/sync-esoteric.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-esoteric.js +143 -8
- package/dist/commonjs/assertion/impl/sync-esoteric.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-parametric.d.ts +489 -45
- package/dist/commonjs/assertion/impl/sync-parametric.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-parametric.js +747 -342
- package/dist/commonjs/assertion/impl/sync-parametric.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync.d.ts +212 -57
- package/dist/commonjs/assertion/impl/sync.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync.js +180 -12
- package/dist/commonjs/assertion/impl/sync.js.map +1 -1
- package/dist/commonjs/assertion/index.d.ts +2 -0
- package/dist/commonjs/assertion/index.d.ts.map +1 -1
- package/dist/commonjs/assertion/index.js +2 -0
- package/dist/commonjs/assertion/index.js.map +1 -1
- package/dist/commonjs/bootstrap.d.ts +45 -80
- package/dist/commonjs/bootstrap.d.ts.map +1 -1
- package/dist/commonjs/constant.d.ts +24 -1
- package/dist/commonjs/constant.d.ts.map +1 -1
- package/dist/commonjs/constant.js +30 -1
- package/dist/commonjs/constant.js.map +1 -1
- package/dist/commonjs/guards.d.ts +11 -0
- package/dist/commonjs/guards.d.ts.map +1 -1
- package/dist/commonjs/guards.js +15 -1
- package/dist/commonjs/guards.js.map +1 -1
- package/dist/commonjs/index.d.ts +46 -80
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js +35 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/metadata.d.ts +3 -0
- package/dist/commonjs/metadata.d.ts.map +1 -1
- package/dist/commonjs/metadata.js +9 -6
- package/dist/commonjs/metadata.js.map +1 -1
- package/dist/commonjs/schema.d.ts +278 -125
- package/dist/commonjs/schema.d.ts.map +1 -1
- package/dist/commonjs/schema.js +307 -169
- package/dist/commonjs/schema.js.map +1 -1
- package/dist/commonjs/types.d.ts +16 -4
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/commonjs/util.d.ts +130 -26
- package/dist/commonjs/util.d.ts.map +1 -1
- package/dist/commonjs/util.js +227 -51
- package/dist/commonjs/util.js.map +1 -1
- package/dist/commonjs/value-to-schema.d.ts.map +1 -1
- package/dist/commonjs/value-to-schema.js +2 -2
- package/dist/commonjs/value-to-schema.js.map +1 -1
- package/dist/esm/assertion/assertion.d.ts.map +1 -1
- package/dist/esm/assertion/assertion.js +74 -45
- package/dist/esm/assertion/assertion.js.map +1 -1
- package/dist/esm/assertion/impl/assertion-util.d.ts +189 -0
- package/dist/esm/assertion/impl/assertion-util.d.ts.map +1 -0
- package/dist/esm/assertion/impl/assertion-util.js +348 -0
- package/dist/esm/assertion/impl/assertion-util.js.map +1 -0
- package/dist/esm/assertion/impl/async-callback.d.ts +273 -0
- package/dist/esm/assertion/impl/async-callback.d.ts.map +1 -0
- package/dist/esm/assertion/impl/async-callback.js +424 -0
- package/dist/esm/assertion/impl/async-callback.js.map +1 -0
- package/dist/esm/assertion/impl/async-parametric.d.ts +250 -0
- package/dist/esm/assertion/impl/async-parametric.d.ts.map +1 -0
- package/dist/esm/assertion/impl/async-parametric.js +444 -0
- package/dist/esm/assertion/impl/async-parametric.js.map +1 -0
- package/dist/esm/assertion/impl/async.d.ts +93 -60
- package/dist/esm/assertion/impl/async.d.ts.map +1 -1
- package/dist/esm/assertion/impl/async.js +47 -274
- package/dist/esm/assertion/impl/async.js.map +1 -1
- package/dist/esm/assertion/impl/index.d.ts +19 -2
- package/dist/esm/assertion/impl/index.d.ts.map +1 -1
- package/dist/esm/assertion/impl/index.js +19 -2
- package/dist/esm/assertion/impl/index.js.map +1 -1
- package/dist/esm/assertion/impl/sync-basic.d.ts +518 -2
- package/dist/esm/assertion/impl/sync-basic.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-basic.js +534 -60
- package/dist/esm/assertion/impl/sync-basic.js.map +1 -1
- package/dist/esm/assertion/impl/sync-callback.d.ts +281 -0
- package/dist/esm/assertion/impl/sync-callback.d.ts.map +1 -0
- package/dist/esm/assertion/impl/sync-callback.js +410 -0
- package/dist/esm/assertion/impl/sync-callback.js.map +1 -0
- package/dist/esm/assertion/impl/sync-collection.d.ts +484 -6
- package/dist/esm/assertion/impl/sync-collection.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-collection.js +780 -53
- package/dist/esm/assertion/impl/sync-collection.js.map +1 -1
- package/dist/esm/assertion/impl/sync-esoteric.d.ts +143 -2
- package/dist/esm/assertion/impl/sync-esoteric.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-esoteric.js +142 -7
- package/dist/esm/assertion/impl/sync-esoteric.js.map +1 -1
- package/dist/esm/assertion/impl/sync-parametric.d.ts +489 -45
- package/dist/esm/assertion/impl/sync-parametric.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-parametric.js +747 -342
- package/dist/esm/assertion/impl/sync-parametric.js.map +1 -1
- package/dist/esm/assertion/impl/sync.d.ts +212 -57
- package/dist/esm/assertion/impl/sync.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync.js +166 -8
- package/dist/esm/assertion/impl/sync.js.map +1 -1
- package/dist/esm/assertion/index.d.ts +2 -0
- package/dist/esm/assertion/index.d.ts.map +1 -1
- package/dist/esm/assertion/index.js +2 -0
- package/dist/esm/assertion/index.js.map +1 -1
- package/dist/esm/bootstrap.d.ts +45 -80
- package/dist/esm/bootstrap.d.ts.map +1 -1
- package/dist/esm/constant.d.ts +24 -1
- package/dist/esm/constant.d.ts.map +1 -1
- package/dist/esm/constant.js +29 -0
- package/dist/esm/constant.js.map +1 -1
- package/dist/esm/guards.d.ts +11 -0
- package/dist/esm/guards.d.ts.map +1 -1
- package/dist/esm/guards.js +13 -0
- package/dist/esm/guards.js.map +1 -1
- package/dist/esm/index.d.ts +46 -80
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/metadata.d.ts +3 -0
- package/dist/esm/metadata.d.ts.map +1 -1
- package/dist/esm/metadata.js +9 -6
- package/dist/esm/metadata.js.map +1 -1
- package/dist/esm/schema.d.ts +278 -125
- package/dist/esm/schema.d.ts.map +1 -1
- package/dist/esm/schema.js +307 -169
- package/dist/esm/schema.js.map +1 -1
- package/dist/esm/types.d.ts +16 -4
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/util.d.ts +130 -26
- package/dist/esm/util.d.ts.map +1 -1
- package/dist/esm/util.js +220 -48
- package/dist/esm/util.js.map +1 -1
- package/dist/esm/value-to-schema.d.ts.map +1 -1
- package/dist/esm/value-to-schema.js +3 -3
- package/dist/esm/value-to-schema.js.map +1 -1
- package/package.json +19 -6
- package/src/assertion/assertion.ts +82 -47
- package/src/assertion/impl/assertion-util.ts +409 -0
- package/src/assertion/impl/async-callback.ts +507 -0
- package/src/assertion/impl/async-parametric.ts +496 -0
- package/src/assertion/impl/async.ts +68 -315
- package/src/assertion/impl/index.ts +20 -2
- package/src/assertion/impl/shims.d.ts +62 -0
- package/src/assertion/impl/sync-basic.ts +670 -97
- package/src/assertion/impl/sync-callback.ts +483 -0
- package/src/assertion/impl/sync-collection.ts +909 -90
- package/src/assertion/impl/sync-esoteric.ts +162 -20
- package/src/assertion/impl/sync-parametric.ts +854 -428
- package/src/assertion/impl/sync.ts +289 -14
- package/src/assertion/index.ts +2 -0
- package/src/constant.ts +32 -0
- package/src/guards.ts +15 -0
- package/src/index.ts +1 -1
- package/src/metadata.ts +11 -7
- package/src/schema.ts +314 -184
- package/src/types.ts +37 -18
- package/src/util.ts +259 -51
- package/src/value-to-schema.ts +3 -8
- package/dist/commonjs/assertion/impl/callback.d.ts +0 -104
- package/dist/commonjs/assertion/impl/callback.d.ts.map +0 -1
- package/dist/commonjs/assertion/impl/callback.js +0 -694
- package/dist/commonjs/assertion/impl/callback.js.map +0 -1
- package/dist/esm/assertion/impl/callback.d.ts +0 -104
- package/dist/esm/assertion/impl/callback.d.ts.map +0 -1
- package/dist/esm/assertion/impl/callback.js +0 -691
- package/dist/esm/assertion/impl/callback.js.map +0 -1
- package/src/assertion/impl/README.md +0 -13
- package/src/assertion/impl/callback.ts +0 -882
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.5.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.4.0...bupkis-v0.5.0) (2025-09-18)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* **assertions:** implement "to have key" and "to have exact key" ([8bb53cc](https://github.com/boneskull/bupkis/commit/8bb53cc6c6457b52f16f9057b1287005bc9a80df))
|
|
9
|
+
* more set/map assertions ([ec9e0f4](https://github.com/boneskull/bupkis/commit/ec9e0f46cd2ec0d0d097b54b3d0d9400fbb79c9d)), closes [#27](https://github.com/boneskull/bupkis/issues/27)
|
|
10
|
+
* **util:** implement `get` and `has` functions (like lodash's) supporting keypaths ([8bb53cc](https://github.com/boneskull/bupkis/commit/8bb53cc6c6457b52f16f9057b1287005bc9a80df))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* "to satisfy" now accepts any value for comparison ([ec9e0f4](https://github.com/boneskull/bupkis/commit/ec9e0f46cd2ec0d0d097b54b3d0d9400fbb79c9d))
|
|
16
|
+
* **assertions:** widen allowed subjects for "to have keys" assertion ([8bb53cc](https://github.com/boneskull/bupkis/commit/8bb53cc6c6457b52f16f9057b1287005bc9a80df))
|
|
17
|
+
* many edge cases ([ec9e0f4](https://github.com/boneskull/bupkis/commit/ec9e0f46cd2ec0d0d097b54b3d0d9400fbb79c9d))
|
|
18
|
+
|
|
3
19
|
## [0.4.0](https://github.com/boneskull/bupkis/compare/bupkis-v0.3.0...bupkis-v0.4.0) (2025-09-15)
|
|
4
20
|
|
|
5
21
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion.d.ts","sourceRoot":"","sources":["../../../src/assertion/assertion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"assertion.d.ts","sourceRoot":"","sources":["../../../src/assertion/assertion.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;AAE7C,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EACL,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAa9B,8BAAsB,eAAe,CACnC,KAAK,SAAS,cAAc,EAC5B,IAAI,SAAS,aAAa,CAAC,KAAK,CAAC,EACjC,KAAK,SAAS,cAAc,CAAC,KAAK,CAAC,CACnC,YAAW,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;IAKtC,QAAQ,CAAC,KAAK,EAAE,KAAK;IACrB,QAAQ,CAAC,KAAK,EAAE,KAAK;IACrB,QAAQ,CAAC,IAAI,EAAE,IAAI;IALrB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAGT,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI;IAMrB;;;;;;OAMG;IAEH;;OAEG;IACI,QAAQ,IAAI,MAAM;IAuFzB,SAAS,CAAC,2BAA2B,CAAC,IAAI,SAAS,SAAS,OAAO,EAAE,EACnE,IAAI,EAAE,IAAI,GACT,YAAY,CAAC,KAAK,CAAC,GAAG,SAAS;IAQlC;;;;;;;OAOG;IACH,SAAS,CAAC,mBAAmB,CAAC,IAAI,SAAS,WAAW,CAAC,KAAK,CAAC,EAC3D,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,GACd,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC;IA4BhC;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,iBAAiB,CACzB,YAAY,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EACrC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EACpB,GAAG,MAAM,EAAE,YAAY,CAAC,KAAK,CAAC,GAC7B,cAAc;IAIjB;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,mBAAmB;CAW5B"}
|
|
@@ -22,12 +22,13 @@ const error_js_1 = require("../error.js");
|
|
|
22
22
|
const metadata_js_1 = require("../metadata.js");
|
|
23
23
|
const debug = (0, debug_1.default)('bupkis:assertion');
|
|
24
24
|
/**
|
|
25
|
-
* Modified charmap for {@link slug} to use underscores to replace hyphens (
|
|
26
|
-
* for hyphens to replace everything else that needs replacing)
|
|
25
|
+
* Modified charmap for {@link slug} to use underscores to replace hyphens (`-`;
|
|
26
|
+
* and for hyphens to replace everything else that needs replacing) and `<` with
|
|
27
|
+
* `_` (to distinguish type args)
|
|
27
28
|
*
|
|
28
29
|
* @see {@link BupkisAssertion.generateUniqueId} for usage
|
|
29
30
|
*/
|
|
30
|
-
const SLUG_CHARMAP = { ...slug_1.default.charmap, '-': '_' };
|
|
31
|
+
const SLUG_CHARMAP = { ...slug_1.default.charmap, '-': '_', '<': '_', '>': '' };
|
|
31
32
|
class BupkisAssertion {
|
|
32
33
|
parts;
|
|
33
34
|
slots;
|
|
@@ -51,54 +52,82 @@ class BupkisAssertion {
|
|
|
51
52
|
* @returns String representation
|
|
52
53
|
*/
|
|
53
54
|
toString() {
|
|
54
|
-
const expand = (zodType) => {
|
|
55
|
+
const expand = (zodType, wrapCurlies = false) => {
|
|
55
56
|
const def = 'def' in zodType ? zodType.def : zodType._zod.def;
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
let repr = '';
|
|
58
|
+
const meta = metadata_js_1.BupkisRegistry.get(zodType);
|
|
59
|
+
if (meta?.name) {
|
|
60
|
+
// our name
|
|
61
|
+
repr = meta.name;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
switch (def.type) {
|
|
65
|
+
case 'custom': {
|
|
64
66
|
// internal Zod class name. will probably break.
|
|
65
|
-
|
|
67
|
+
try {
|
|
68
|
+
repr =
|
|
69
|
+
'Class' in zodType._zod.bag
|
|
70
|
+
? `${zodType._zod.bag.Class.name}`
|
|
71
|
+
: 'custom';
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
debug(`Warning: Unable to extract custom class name from Zod type(did Zod's API change?): ${err}`);
|
|
75
|
+
repr = 'custom';
|
|
76
|
+
}
|
|
77
|
+
break;
|
|
66
78
|
}
|
|
67
|
-
|
|
79
|
+
case 'default':
|
|
80
|
+
repr = `{${expand(def.innerType)}}`;
|
|
81
|
+
break;
|
|
82
|
+
case 'enum':
|
|
83
|
+
repr = `${Object.keys(def.entries).join(' / ')}`;
|
|
84
|
+
break;
|
|
85
|
+
case 'intersection':
|
|
86
|
+
repr = `${expand(def.left)} & ${expand(def.right)}`;
|
|
87
|
+
break;
|
|
88
|
+
case 'literal':
|
|
89
|
+
repr = def.values
|
|
90
|
+
.map((value) => `'${value}'`)
|
|
91
|
+
.join(' / ');
|
|
92
|
+
break;
|
|
93
|
+
case 'map':
|
|
94
|
+
repr = `Map<${expand(def.keyType)}, ${expand(def.valueType)}>`;
|
|
95
|
+
break;
|
|
96
|
+
case 'nonoptional':
|
|
97
|
+
repr = `${expand(def.innerType)}!`;
|
|
98
|
+
break;
|
|
99
|
+
case 'nullable':
|
|
100
|
+
repr = `${expand(def.innerType)}? | null`;
|
|
101
|
+
break;
|
|
102
|
+
case 'optional':
|
|
103
|
+
repr = `${expand(def.innerType)}?`;
|
|
104
|
+
break;
|
|
105
|
+
case 'record':
|
|
106
|
+
repr = `Record<${expand(def.keyType)}, ${expand(def.valueType)}>`;
|
|
107
|
+
break;
|
|
108
|
+
case 'set':
|
|
109
|
+
repr = `Set<${expand(def.valueType)}>`;
|
|
110
|
+
break;
|
|
111
|
+
case 'tuple':
|
|
112
|
+
repr = `[${def.items.map((value) => expand(value)).join(', ')}]`;
|
|
113
|
+
break;
|
|
114
|
+
case 'union':
|
|
115
|
+
repr = def.options
|
|
116
|
+
.map((value) => expand(value))
|
|
117
|
+
.join(' | ');
|
|
118
|
+
break;
|
|
119
|
+
default:
|
|
120
|
+
repr = def.type;
|
|
121
|
+
break;
|
|
68
122
|
}
|
|
69
|
-
case 'default':
|
|
70
|
-
return `{${expand(def.innerType)}}`;
|
|
71
|
-
case 'enum':
|
|
72
|
-
return `${Object.keys(def.entries).join(' / ')}`;
|
|
73
|
-
case 'intersection':
|
|
74
|
-
return `${expand(def.left)} & ${expand(def.right)}`;
|
|
75
|
-
case 'literal':
|
|
76
|
-
return def.values
|
|
77
|
-
.map((value) => `'${value}'`)
|
|
78
|
-
.join(' / ');
|
|
79
|
-
case 'map':
|
|
80
|
-
return `{Map<${expand(def.keyType)}, ${expand(def.valueType)}>`;
|
|
81
|
-
case 'nonoptional':
|
|
82
|
-
return `${expand(def.innerType)}!`;
|
|
83
|
-
case 'nullable':
|
|
84
|
-
return `${expand(def.innerType)}? | null`;
|
|
85
|
-
case 'optional':
|
|
86
|
-
return `${expand(def.innerType)}?`;
|
|
87
|
-
case 'record':
|
|
88
|
-
return `{Record<${expand(def.keyType)}, ${expand(def.valueType)}>`;
|
|
89
|
-
case 'set':
|
|
90
|
-
return `{Set<${expand(def.valueType)}>`;
|
|
91
|
-
case 'tuple':
|
|
92
|
-
return `[${def.items.map(expand).join(', ')}]`;
|
|
93
|
-
case 'union':
|
|
94
|
-
return def.options
|
|
95
|
-
.map(expand)
|
|
96
|
-
.join(' | ');
|
|
97
|
-
default:
|
|
98
|
-
return `{${def.type}}`;
|
|
99
123
|
}
|
|
124
|
+
return wrapCurlies ? `{${repr}}` : repr;
|
|
100
125
|
};
|
|
101
|
-
return `"${this.slots
|
|
126
|
+
return `"${this.slots
|
|
127
|
+
.map((slot) => Object.hasOwn(metadata_js_1.BupkisRegistry.get(slot) ?? {}, constant_js_1.kStringLiteral)
|
|
128
|
+
? expand(slot)
|
|
129
|
+
: expand(slot, true))
|
|
130
|
+
.join(' ')}"`;
|
|
102
131
|
}
|
|
103
132
|
maybeParseValuesArgMismatch(args) {
|
|
104
133
|
if (this.slots.length !== args.length) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertion.js","sourceRoot":"","sources":["../../../src/assertion/assertion.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;AAEH,kDAA0B;AAC1B,gDAAwB;AAExB,+BAA+B;AAG/B,gDAAgD;AAChD,0CAA6C;AAC7C,gDAAgD;AAUhD,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,kBAAkB,CAAC,CAAC;AAExC
|
|
1
|
+
{"version":3,"file":"assertion.js","sourceRoot":"","sources":["../../../src/assertion/assertion.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for assertion implementations
|
|
3
|
+
*
|
|
4
|
+
* @internal
|
|
5
|
+
* @packageDocumentation
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod/v4';
|
|
8
|
+
import { type ValueToSchemaOptions } from '../../value-to-schema.js';
|
|
9
|
+
/**
|
|
10
|
+
* Creates a standardized error object for when a callback or nodeback is not
|
|
11
|
+
* called.
|
|
12
|
+
*
|
|
13
|
+
* @param type - The type of callback ('callback' or 'nodeback')
|
|
14
|
+
* @returns Error object with consistent structure for sync assertions
|
|
15
|
+
*/
|
|
16
|
+
export declare const createNotCalledError: (type: "callback" | "nodeback") => {
|
|
17
|
+
actual: string;
|
|
18
|
+
expected: string;
|
|
19
|
+
message: string;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Creates a standardized error object for when a callback or nodeback is not
|
|
23
|
+
* called in async contexts. Uses consistent field naming for async assertions.
|
|
24
|
+
*
|
|
25
|
+
* @param type - The type of callback ('callback' or 'nodeback')
|
|
26
|
+
* @returns Error object with consistent structure for async assertions
|
|
27
|
+
*/
|
|
28
|
+
export declare const createAsyncNotCalledError: (type: "callback" | "nodeback") => {
|
|
29
|
+
actual: string;
|
|
30
|
+
expected: string;
|
|
31
|
+
message: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Creates error objects for nodeback error state mismatches in sync contexts.
|
|
35
|
+
* Handles cases where an error is expected but not present, or vice versa.
|
|
36
|
+
*
|
|
37
|
+
* @param hasError - Whether the nodeback was called with an error
|
|
38
|
+
* @param expectError - Whether an error was expected
|
|
39
|
+
* @param error - The actual error value (if any)
|
|
40
|
+
* @returns Error object if there's a mismatch, undefined if the state matches
|
|
41
|
+
* expectations
|
|
42
|
+
*/
|
|
43
|
+
export declare const createErrorMismatchError: (hasError: boolean, expectError: boolean, error?: unknown) => {
|
|
44
|
+
actual: string;
|
|
45
|
+
expected: string;
|
|
46
|
+
message: string;
|
|
47
|
+
} | undefined;
|
|
48
|
+
/**
|
|
49
|
+
* Creates error objects for nodeback error state mismatches in async contexts.
|
|
50
|
+
* Handles cases where an error is expected but not present, or vice versa. Uses
|
|
51
|
+
* consistent field naming and messaging for async assertions.
|
|
52
|
+
*
|
|
53
|
+
* @param hasError - Whether the nodeback was called with an error
|
|
54
|
+
* @param expectError - Whether an error was expected
|
|
55
|
+
* @param error - The actual error value (if any)
|
|
56
|
+
* @returns Error object if there's a mismatch, undefined if the state matches
|
|
57
|
+
* expectations
|
|
58
|
+
*/
|
|
59
|
+
export declare const createAsyncErrorMismatchError: (hasError: boolean, expectError: boolean, error?: unknown) => {
|
|
60
|
+
actual: string;
|
|
61
|
+
expected: string;
|
|
62
|
+
message: string;
|
|
63
|
+
} | undefined;
|
|
64
|
+
/**
|
|
65
|
+
* Creates a standardized error object for exact value comparison failures. Used
|
|
66
|
+
* when a callback/nodeback is called with a value that doesn't match the
|
|
67
|
+
* expected value using Object.is() strict equality.
|
|
68
|
+
*
|
|
69
|
+
* @param actual - The actual value the callback was called with
|
|
70
|
+
* @param expected - The expected value
|
|
71
|
+
* @param callbackType - The type of callback for error messaging
|
|
72
|
+
* @returns Error object with formatted comparison message
|
|
73
|
+
*/
|
|
74
|
+
export declare const createValueMismatchError: (actual: unknown, expected: unknown, callbackType: "callback" | "nodeback") => {
|
|
75
|
+
actual: unknown;
|
|
76
|
+
expected: unknown;
|
|
77
|
+
message: string;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* Creates a Zod schema for validating error parameters in callback assertions.
|
|
81
|
+
* Handles string literals, RegExp patterns, and object structures for error
|
|
82
|
+
* matching.
|
|
83
|
+
*
|
|
84
|
+
* @param param - The error parameter to create a schema for
|
|
85
|
+
* @returns Zod schema that can validate the error against the parameter
|
|
86
|
+
* @throws TypeError if the parameter type is not supported
|
|
87
|
+
*/
|
|
88
|
+
export declare const createErrorSchema: (param: unknown) => z.ZodType;
|
|
89
|
+
/**
|
|
90
|
+
* Validates a value against a parameter using valueToSchema with specified
|
|
91
|
+
* options. Centralizes the common pattern of schema creation and validation
|
|
92
|
+
* used across many callback assertions.
|
|
93
|
+
*
|
|
94
|
+
* @param subject - The value to validate
|
|
95
|
+
* @param param - The parameter to validate against
|
|
96
|
+
* @param options - Options to pass to valueToSchema
|
|
97
|
+
* @returns Undefined if validation succeeds, ZodError if validation fails
|
|
98
|
+
*/
|
|
99
|
+
export declare const validateValue: <T = unknown>(subject: T, param: unknown, options?: ValueToSchemaOptions) => z.ZodError<any> | undefined;
|
|
100
|
+
/**
|
|
101
|
+
* Traps the invocation of a single-parameter callback function for synchronous
|
|
102
|
+
* testing. Executes the provided function with a callback and captures whether
|
|
103
|
+
* it was called, what arguments it received, and any errors thrown during
|
|
104
|
+
* execution.
|
|
105
|
+
*
|
|
106
|
+
* @param fn - The function to execute that should call the provided callback
|
|
107
|
+
* @returns Object containing invocation details: args, called, error, and value
|
|
108
|
+
*/
|
|
109
|
+
export declare const trapCallbackInvocation: (fn: (...args: unknown[]) => unknown) => {
|
|
110
|
+
args: unknown[];
|
|
111
|
+
called: boolean;
|
|
112
|
+
error: unknown;
|
|
113
|
+
value: unknown;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Traps the invocation of a nodeback (error-first callback) function for
|
|
117
|
+
* synchronous testing. Executes the provided function with a nodeback and
|
|
118
|
+
* captures whether it was called, what arguments it received, and any errors
|
|
119
|
+
* thrown during execution.
|
|
120
|
+
*
|
|
121
|
+
* @param fn - The function to execute that should call the provided nodeback
|
|
122
|
+
* @returns Object containing invocation details: args, called, error, and value
|
|
123
|
+
*/
|
|
124
|
+
export declare const trapNodebackInvocation: (fn: (...args: unknown[]) => unknown) => {
|
|
125
|
+
args: unknown[];
|
|
126
|
+
called: boolean;
|
|
127
|
+
error: unknown;
|
|
128
|
+
value: unknown;
|
|
129
|
+
};
|
|
130
|
+
/**
|
|
131
|
+
* Traps the invocation of a single-parameter callback function for asynchronous
|
|
132
|
+
* testing. Returns a Promise that resolves with invocation details once the
|
|
133
|
+
* callback is called or an error occurs. Uses a Proxy to catch errors during
|
|
134
|
+
* function execution.
|
|
135
|
+
*
|
|
136
|
+
* @param fn - The function to execute that should call the provided callback
|
|
137
|
+
* @returns Promise resolving to object with invocation details: args, called,
|
|
138
|
+
* error, and value
|
|
139
|
+
*/
|
|
140
|
+
export declare const trapAsyncCallbackInvocation: (fn: (...args: unknown[]) => unknown) => Promise<{
|
|
141
|
+
args: unknown[];
|
|
142
|
+
called: boolean;
|
|
143
|
+
error: unknown;
|
|
144
|
+
value: unknown;
|
|
145
|
+
}>;
|
|
146
|
+
/**
|
|
147
|
+
* Traps the invocation of a nodeback (error-first callback) function for
|
|
148
|
+
* asynchronous testing. Returns a Promise that resolves with invocation details
|
|
149
|
+
* once the nodeback is called or an error occurs. Uses a Proxy to catch errors
|
|
150
|
+
* during function execution. Always resolves (never rejects) to allow assertion
|
|
151
|
+
* logic to handle error conditions.
|
|
152
|
+
*
|
|
153
|
+
* @param fn - The function to execute that should call the provided nodeback
|
|
154
|
+
* @returns Promise resolving to object with invocation details: args, called,
|
|
155
|
+
* error, and value
|
|
156
|
+
*/
|
|
157
|
+
export declare const trapAsyncNodebackInvocation: (fn: (...args: unknown[]) => unknown) => Promise<{
|
|
158
|
+
args: unknown[];
|
|
159
|
+
called: boolean;
|
|
160
|
+
error: unknown;
|
|
161
|
+
value: unknown;
|
|
162
|
+
}>;
|
|
163
|
+
/**
|
|
164
|
+
* Executes & traps a `Promise` rejected from an async function, capturing the
|
|
165
|
+
* error.
|
|
166
|
+
*
|
|
167
|
+
* @param fn The function to execute that may throw an error or return a
|
|
168
|
+
* `Promise`
|
|
169
|
+
* @returns Rejection
|
|
170
|
+
*/
|
|
171
|
+
export declare const trapAsyncFnError: (fn: () => unknown) => Promise<unknown>;
|
|
172
|
+
/**
|
|
173
|
+
* Awaits & traps a Promise, capturing any rejection error.
|
|
174
|
+
*
|
|
175
|
+
* @param promise The `Promise` to trap
|
|
176
|
+
* @returns Rejection
|
|
177
|
+
*/
|
|
178
|
+
export declare const trapPromiseError: (promise: PromiseLike<unknown>) => Promise<unknown>;
|
|
179
|
+
/**
|
|
180
|
+
* Executes & traps a synchronous function that may throw, capturing any thrown
|
|
181
|
+
* error and discarding the result.
|
|
182
|
+
*
|
|
183
|
+
* @remarks
|
|
184
|
+
* Avoids throwing `undefined` for some reason.
|
|
185
|
+
* @param fn Function to execute
|
|
186
|
+
* @returns Error
|
|
187
|
+
*/
|
|
188
|
+
export declare const trapError: (fn: () => unknown) => unknown;
|
|
189
|
+
//# sourceMappingURL=assertion-util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertion-util.d.ts","sourceRoot":"","sources":["../../../../src/assertion/impl/assertion-util.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,0BAA0B,CAAC;AAElC;;;;;;GAMG;AAEH,eAAO,MAAM,oBAAoB,GAAI,MAAM,UAAU,GAAG,UAAU;;;;CAIhE,CAAC;AAEH;;;;;;GAMG;AAEH,eAAO,MAAM,yBAAyB,GAAI,MAAM,UAAU,GAAG,UAAU;;;;CAIrE,CAAC;AAEH;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,GACnC,UAAU,OAAO,EACjB,aAAa,OAAO,EACpB,QAAQ,OAAO;;;;aAqBhB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,6BAA6B,GACxC,UAAU,OAAO,EACjB,aAAa,OAAO,EACpB,QAAQ,OAAO;;;;aAqBhB,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,GACnC,QAAQ,OAAO,EACf,UAAU,OAAO,EACjB,cAAc,UAAU,GAAG,UAAU;;;;CAQrC,CAAC;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,OAAO,KAAG,CAAC,CAAC,OAqBpD,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,GAAG,OAAO,EACvC,SAAS,CAAC,EACV,OAAO,OAAO,EACd,UAAS,oBAAyB,gCAKnC,CAAC;AACF;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,GAAI,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO;;;;;CAqBzE,CAAC;AACF;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,GAAI,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO;;;;;CAoBzE,CAAC;AACF;;;;;;;;;GASG;AACH,eAAO,MAAM,2BAA2B,GACtC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO;UAG3B,OAAO,EAAE;YACP,OAAO;WACR,OAAO;WACP,OAAO;EAkCjB,CAAC;AACF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,2BAA2B,GACtC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO;UAG3B,OAAO,EAAE;YACP,OAAO;WACR,OAAO;WACP,OAAO;EAoCjB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,GAAU,IAAI,MAAM,OAAO,qBAMvD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAAU,SAAS,WAAW,CAAC,OAAO,CAAC,qBAMnE,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,SAAS,GAAI,IAAI,MAAM,OAAO,KAAG,OAS7C,CAAC"}
|