bupkis 0.2.0 → 0.4.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 +27 -0
- package/README.md +35 -11
- package/dist/commonjs/assertion/assertion-async.d.ts +2 -1
- package/dist/commonjs/assertion/assertion-async.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion-async.js +84 -2
- package/dist/commonjs/assertion/assertion-async.js.map +1 -1
- package/dist/commonjs/assertion/assertion-sync.d.ts +1 -1
- package/dist/commonjs/assertion/assertion-sync.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion-sync.js +5 -1
- package/dist/commonjs/assertion/assertion-sync.js.map +1 -1
- package/dist/commonjs/assertion/assertion-types.d.ts +6 -2
- package/dist/commonjs/assertion/assertion-types.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion.d.ts +1 -1
- package/dist/commonjs/assertion/assertion.d.ts.map +1 -1
- package/dist/commonjs/assertion/assertion.js +1 -14
- package/dist/commonjs/assertion/assertion.js.map +1 -1
- package/dist/commonjs/assertion/impl/async.d.ts +122 -21
- package/dist/commonjs/assertion/impl/async.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/async.js +118 -90
- package/dist/commonjs/assertion/impl/async.js.map +1 -1
- package/dist/commonjs/assertion/impl/callback.d.ts +104 -0
- package/dist/commonjs/assertion/impl/callback.d.ts.map +1 -0
- package/dist/commonjs/assertion/impl/callback.js +694 -0
- package/dist/commonjs/assertion/impl/callback.js.map +1 -0
- package/dist/commonjs/assertion/impl/index.d.ts +1 -1
- package/dist/commonjs/assertion/impl/index.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/index.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-basic.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-basic.js +1 -1
- package/dist/commonjs/assertion/impl/sync-basic.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-collection.d.ts +1 -1
- package/dist/commonjs/assertion/impl/sync-collection.js +3 -3
- package/dist/commonjs/assertion/impl/sync-collection.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-esoteric.js +1 -1
- package/dist/commonjs/assertion/impl/sync-esoteric.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync-parametric.d.ts +22 -28
- package/dist/commonjs/assertion/impl/sync-parametric.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync-parametric.js +35 -50
- package/dist/commonjs/assertion/impl/sync-parametric.js.map +1 -1
- package/dist/commonjs/assertion/impl/sync.d.ts +68 -30
- package/dist/commonjs/assertion/impl/sync.d.ts.map +1 -1
- package/dist/commonjs/assertion/impl/sync.js +4 -1
- package/dist/commonjs/assertion/impl/sync.js.map +1 -1
- package/dist/commonjs/bootstrap.d.ts +147 -52
- package/dist/commonjs/bootstrap.d.ts.map +1 -1
- package/dist/commonjs/bootstrap.js +2 -3
- package/dist/commonjs/bootstrap.js.map +1 -1
- package/dist/commonjs/constant.d.ts +1 -1
- package/dist/commonjs/constant.d.ts.map +1 -1
- package/dist/commonjs/constant.js +8 -1
- package/dist/commonjs/constant.js.map +1 -1
- package/dist/commonjs/error.d.ts +22 -2
- package/dist/commonjs/error.d.ts.map +1 -1
- package/dist/commonjs/error.js +44 -4
- package/dist/commonjs/error.js.map +1 -1
- package/dist/commonjs/expect.d.ts.map +1 -1
- package/dist/commonjs/expect.js +1 -1
- package/dist/commonjs/expect.js.map +1 -1
- package/dist/commonjs/guards.d.ts +96 -5
- package/dist/commonjs/guards.d.ts.map +1 -1
- package/dist/commonjs/guards.js +104 -25
- package/dist/commonjs/guards.js.map +1 -1
- package/dist/commonjs/index.d.ts +146 -51
- package/dist/commonjs/index.d.ts.map +1 -1
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/schema.d.ts +84 -18
- package/dist/commonjs/schema.d.ts.map +1 -1
- package/dist/commonjs/schema.js +107 -22
- package/dist/commonjs/schema.js.map +1 -1
- package/dist/commonjs/types.d.ts +171 -9
- package/dist/commonjs/types.d.ts.map +1 -1
- package/dist/commonjs/use.d.ts.map +1 -1
- package/dist/commonjs/use.js +15 -1
- package/dist/commonjs/use.js.map +1 -1
- package/dist/commonjs/util.d.ts +66 -50
- package/dist/commonjs/util.d.ts.map +1 -1
- package/dist/commonjs/util.js +169 -156
- package/dist/commonjs/util.js.map +1 -1
- package/dist/commonjs/value-to-schema.d.ts +122 -0
- package/dist/commonjs/value-to-schema.d.ts.map +1 -0
- package/dist/commonjs/value-to-schema.js +329 -0
- package/dist/commonjs/value-to-schema.js.map +1 -0
- package/dist/esm/assertion/assertion-async.d.ts +2 -1
- package/dist/esm/assertion/assertion-async.d.ts.map +1 -1
- package/dist/esm/assertion/assertion-async.js +85 -3
- package/dist/esm/assertion/assertion-async.js.map +1 -1
- package/dist/esm/assertion/assertion-sync.d.ts +1 -1
- package/dist/esm/assertion/assertion-sync.d.ts.map +1 -1
- package/dist/esm/assertion/assertion-sync.js +6 -2
- package/dist/esm/assertion/assertion-sync.js.map +1 -1
- package/dist/esm/assertion/assertion-types.d.ts +6 -2
- package/dist/esm/assertion/assertion-types.d.ts.map +1 -1
- package/dist/esm/assertion/assertion.d.ts +1 -1
- package/dist/esm/assertion/assertion.d.ts.map +1 -1
- package/dist/esm/assertion/assertion.js +1 -14
- package/dist/esm/assertion/assertion.js.map +1 -1
- package/dist/esm/assertion/impl/async.d.ts +122 -21
- package/dist/esm/assertion/impl/async.d.ts.map +1 -1
- package/dist/esm/assertion/impl/async.js +118 -90
- package/dist/esm/assertion/impl/async.js.map +1 -1
- package/dist/esm/assertion/impl/callback.d.ts +104 -0
- package/dist/esm/assertion/impl/callback.d.ts.map +1 -0
- package/dist/esm/assertion/impl/callback.js +691 -0
- package/dist/esm/assertion/impl/callback.js.map +1 -0
- package/dist/esm/assertion/impl/index.d.ts +1 -1
- package/dist/esm/assertion/impl/index.d.ts.map +1 -1
- package/dist/esm/assertion/impl/index.js +1 -1
- package/dist/esm/assertion/impl/index.js.map +1 -1
- package/dist/esm/assertion/impl/sync-basic.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-basic.js +2 -2
- package/dist/esm/assertion/impl/sync-basic.js.map +1 -1
- package/dist/esm/assertion/impl/sync-collection.d.ts +1 -1
- package/dist/esm/assertion/impl/sync-collection.js +3 -3
- package/dist/esm/assertion/impl/sync-collection.js.map +1 -1
- package/dist/esm/assertion/impl/sync-esoteric.js +2 -2
- package/dist/esm/assertion/impl/sync-esoteric.js.map +1 -1
- package/dist/esm/assertion/impl/sync-parametric.d.ts +22 -28
- package/dist/esm/assertion/impl/sync-parametric.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync-parametric.js +36 -51
- package/dist/esm/assertion/impl/sync-parametric.js.map +1 -1
- package/dist/esm/assertion/impl/sync.d.ts +68 -30
- package/dist/esm/assertion/impl/sync.d.ts.map +1 -1
- package/dist/esm/assertion/impl/sync.js +3 -1
- package/dist/esm/assertion/impl/sync.js.map +1 -1
- package/dist/esm/bootstrap.d.ts +147 -52
- package/dist/esm/bootstrap.d.ts.map +1 -1
- package/dist/esm/bootstrap.js +1 -2
- package/dist/esm/bootstrap.js.map +1 -1
- package/dist/esm/constant.d.ts +1 -1
- package/dist/esm/constant.d.ts.map +1 -1
- package/dist/esm/constant.js +7 -0
- package/dist/esm/constant.js.map +1 -1
- package/dist/esm/error.d.ts +22 -2
- package/dist/esm/error.d.ts.map +1 -1
- package/dist/esm/error.js +43 -4
- package/dist/esm/error.js.map +1 -1
- package/dist/esm/expect.d.ts.map +1 -1
- package/dist/esm/expect.js +2 -2
- package/dist/esm/expect.js.map +1 -1
- package/dist/esm/guards.d.ts +96 -5
- package/dist/esm/guards.d.ts.map +1 -1
- package/dist/esm/guards.js +98 -21
- package/dist/esm/guards.js.map +1 -1
- package/dist/esm/index.d.ts +146 -51
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/schema.d.ts +84 -18
- package/dist/esm/schema.d.ts.map +1 -1
- package/dist/esm/schema.js +107 -22
- package/dist/esm/schema.js.map +1 -1
- package/dist/esm/types.d.ts +171 -9
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/use.d.ts.map +1 -1
- package/dist/esm/use.js +15 -1
- package/dist/esm/use.js.map +1 -1
- package/dist/esm/util.d.ts +66 -50
- package/dist/esm/util.d.ts.map +1 -1
- package/dist/esm/util.js +153 -154
- package/dist/esm/util.js.map +1 -1
- package/dist/esm/value-to-schema.d.ts +122 -0
- package/dist/esm/value-to-schema.d.ts.map +1 -0
- package/dist/esm/value-to-schema.js +325 -0
- package/dist/esm/value-to-schema.js.map +1 -0
- package/package.json +16 -13
- package/src/assertion/assertion-async.ts +113 -3
- package/src/assertion/assertion-sync.ts +5 -2
- package/src/assertion/assertion-types.ts +14 -4
- package/src/assertion/assertion.ts +2 -17
- package/src/assertion/impl/async.ts +137 -93
- package/src/assertion/impl/callback.ts +882 -0
- package/src/assertion/impl/index.ts +1 -1
- package/src/assertion/impl/sync-basic.ts +5 -2
- package/src/assertion/impl/sync-collection.ts +3 -3
- package/src/assertion/impl/sync-esoteric.ts +2 -2
- package/src/assertion/impl/sync-parametric.ts +47 -54
- package/src/assertion/impl/sync.ts +3 -0
- package/src/bootstrap.ts +1 -2
- package/src/constant.ts +10 -0
- package/src/error.ts +57 -3
- package/src/expect.ts +6 -2
- package/src/guards.ts +125 -18
- package/src/index.ts +3 -0
- package/src/schema.ts +121 -23
- package/src/types.ts +205 -10
- package/src/use.ts +22 -0
- package/src/util.ts +168 -223
- package/src/value-to-schema.ts +489 -0
|
@@ -11,9 +11,10 @@
|
|
|
11
11
|
import { inspect } from 'node:util';
|
|
12
12
|
import { z } from 'zod/v4';
|
|
13
13
|
import { isA, isNonNullObject, isString } from '../../guards.js';
|
|
14
|
-
import {
|
|
15
|
-
import { valueToSchema } from '../../
|
|
14
|
+
import { ConstructibleSchema, FunctionSchema, WrappedPromiseLikeSchema, } from '../../schema.js';
|
|
15
|
+
import { valueToSchema, valueToSchemaOptionsForSatisfies, } from '../../value-to-schema.js';
|
|
16
16
|
import { createAsyncAssertion } from '../create.js';
|
|
17
|
+
import { CallbackAsyncAssertions } from './callback.js';
|
|
17
18
|
const trapAsyncFnError = async (fn) => {
|
|
18
19
|
try {
|
|
19
20
|
await fn();
|
|
@@ -30,48 +31,60 @@ const trapPromiseError = async (promise) => {
|
|
|
30
31
|
return err;
|
|
31
32
|
}
|
|
32
33
|
};
|
|
33
|
-
export const
|
|
34
|
+
export const PromiseAssertions = [
|
|
34
35
|
createAsyncAssertion([FunctionSchema, ['to resolve', 'to fulfill']], async (subject) => {
|
|
35
36
|
try {
|
|
36
37
|
await subject();
|
|
37
|
-
return true;
|
|
38
38
|
}
|
|
39
39
|
catch {
|
|
40
|
-
return
|
|
40
|
+
return {
|
|
41
|
+
actual: 'function rejected',
|
|
42
|
+
expected: 'function to fulfill',
|
|
43
|
+
message: 'Expected function to fulfill, but it rejected instead',
|
|
44
|
+
};
|
|
41
45
|
}
|
|
42
46
|
}),
|
|
43
47
|
createAsyncAssertion([WrappedPromiseLikeSchema, ['to resolve', 'to fulfill']], async (subject) => {
|
|
44
48
|
try {
|
|
45
49
|
await subject;
|
|
46
|
-
return true;
|
|
47
50
|
}
|
|
48
51
|
catch {
|
|
49
|
-
return
|
|
52
|
+
return {
|
|
53
|
+
actual: 'promise rejected',
|
|
54
|
+
expected: 'promise to not reject',
|
|
55
|
+
message: 'Expected promise to fulfill, but it rejected instead',
|
|
56
|
+
};
|
|
50
57
|
}
|
|
51
58
|
}),
|
|
52
59
|
// Non-parameterized "to reject" assertions
|
|
53
60
|
createAsyncAssertion([FunctionSchema, 'to reject'], async (subject) => {
|
|
54
|
-
let rejected = false;
|
|
55
61
|
try {
|
|
56
62
|
await subject();
|
|
63
|
+
return {
|
|
64
|
+
actual: 'function fulfilled',
|
|
65
|
+
expected: 'function to reject',
|
|
66
|
+
message: 'Expected function to reject, but it fulfilled instead',
|
|
67
|
+
};
|
|
57
68
|
}
|
|
58
|
-
catch {
|
|
59
|
-
rejected = true;
|
|
60
|
-
}
|
|
61
|
-
return rejected;
|
|
69
|
+
catch { }
|
|
62
70
|
}),
|
|
63
71
|
createAsyncAssertion([WrappedPromiseLikeSchema, 'to reject'], async (subject) => {
|
|
64
|
-
let rejected = false;
|
|
65
72
|
try {
|
|
66
73
|
await subject;
|
|
74
|
+
return {
|
|
75
|
+
actual: 'function fulfilled',
|
|
76
|
+
expected: 'function to reject',
|
|
77
|
+
message: 'Expected function to reject, but it fulfilled instead',
|
|
78
|
+
};
|
|
67
79
|
}
|
|
68
|
-
catch {
|
|
69
|
-
rejected = true;
|
|
70
|
-
}
|
|
71
|
-
return rejected;
|
|
80
|
+
catch { }
|
|
72
81
|
}),
|
|
73
82
|
// Parameterized "to reject" with class constructor
|
|
74
|
-
createAsyncAssertion([
|
|
83
|
+
createAsyncAssertion([
|
|
84
|
+
FunctionSchema,
|
|
85
|
+
['to reject with a', 'to reject with an'],
|
|
86
|
+
ConstructibleSchema,
|
|
87
|
+
], async (subject, ctor) => {
|
|
75
88
|
const error = await trapAsyncFnError(subject);
|
|
76
89
|
if (!error) {
|
|
77
90
|
return false;
|
|
@@ -81,7 +94,7 @@ export const AsyncAssertions = [
|
|
|
81
94
|
createAsyncAssertion([
|
|
82
95
|
WrappedPromiseLikeSchema,
|
|
83
96
|
['to reject with a', 'to reject with an'],
|
|
84
|
-
|
|
97
|
+
ConstructibleSchema,
|
|
85
98
|
], async (subject, ctor) => {
|
|
86
99
|
const error = await trapPromiseError(subject);
|
|
87
100
|
if (!error) {
|
|
@@ -92,66 +105,84 @@ export const AsyncAssertions = [
|
|
|
92
105
|
// Parameterized "to reject" with string, RegExp, or object patterns
|
|
93
106
|
createAsyncAssertion([
|
|
94
107
|
FunctionSchema,
|
|
95
|
-
['to reject with'],
|
|
108
|
+
['to reject with error satisfying'],
|
|
96
109
|
z.union([z.string(), z.instanceof(RegExp), z.looseObject({})]),
|
|
97
110
|
], async (subject, param) => {
|
|
98
111
|
const error = await trapAsyncFnError(subject);
|
|
99
112
|
if (!error) {
|
|
100
|
-
return
|
|
113
|
+
return {
|
|
114
|
+
actual: 'function fulfilled',
|
|
115
|
+
expect: 'function to reject',
|
|
116
|
+
message: 'Expected function to reject, but it fulfilled instead',
|
|
117
|
+
};
|
|
101
118
|
}
|
|
119
|
+
let schema;
|
|
120
|
+
// TODO: can valueToSchema handle the first two conditional branches?
|
|
102
121
|
if (isString(param)) {
|
|
103
|
-
|
|
104
|
-
.
|
|
122
|
+
schema = z
|
|
123
|
+
.looseObject({
|
|
105
124
|
message: z.coerce.string().pipe(z.literal(param)),
|
|
106
125
|
})
|
|
107
|
-
.or(z.coerce.string().pipe(z.literal(param)))
|
|
108
|
-
.safeParse(error).success;
|
|
126
|
+
.or(z.coerce.string().pipe(z.literal(param)));
|
|
109
127
|
}
|
|
110
128
|
else if (isA(param, RegExp)) {
|
|
111
|
-
|
|
112
|
-
.
|
|
129
|
+
schema = z
|
|
130
|
+
.looseObject({
|
|
113
131
|
message: z.coerce.string().regex(param),
|
|
114
132
|
})
|
|
115
|
-
.or(z.coerce.string().regex(param))
|
|
116
|
-
.safeParse(error).success;
|
|
133
|
+
.or(z.coerce.string().regex(param));
|
|
117
134
|
}
|
|
118
135
|
else if (isNonNullObject(param)) {
|
|
119
|
-
|
|
136
|
+
schema = valueToSchema(param, valueToSchemaOptionsForSatisfies);
|
|
120
137
|
}
|
|
121
|
-
|
|
122
|
-
|
|
138
|
+
/* c8 ignore next 5 */
|
|
139
|
+
if (!schema) {
|
|
140
|
+
throw new TypeError(`Invalid parameter schema: ${inspect(param, { depth: 2 })}`);
|
|
141
|
+
}
|
|
142
|
+
const result = schema.safeParse(error);
|
|
143
|
+
if (!result.success) {
|
|
144
|
+
return result.error;
|
|
123
145
|
}
|
|
124
146
|
}),
|
|
125
147
|
createAsyncAssertion([
|
|
126
148
|
WrappedPromiseLikeSchema,
|
|
127
|
-
['to reject with'],
|
|
149
|
+
['to reject with error satisfying'],
|
|
128
150
|
z.union([z.string(), z.instanceof(RegExp), z.looseObject({})]),
|
|
129
151
|
], async (subject, param) => {
|
|
130
152
|
const error = await trapPromiseError(subject);
|
|
131
153
|
if (!error) {
|
|
132
|
-
return
|
|
154
|
+
return {
|
|
155
|
+
actual: 'promise fulfilled',
|
|
156
|
+
expect: 'promise to reject',
|
|
157
|
+
message: 'Expected promise to reject, but it fulfilled instead',
|
|
158
|
+
};
|
|
133
159
|
}
|
|
160
|
+
let schema;
|
|
161
|
+
// TODO: can valueToSchema handle the first two conditional branches?
|
|
134
162
|
if (isString(param)) {
|
|
135
|
-
|
|
136
|
-
.
|
|
163
|
+
schema = z
|
|
164
|
+
.looseObject({
|
|
137
165
|
message: z.coerce.string().pipe(z.literal(param)),
|
|
138
166
|
})
|
|
139
|
-
.or(z.coerce.string().pipe(z.literal(param)))
|
|
140
|
-
.safeParse(error).success;
|
|
167
|
+
.or(z.coerce.string().pipe(z.literal(param)));
|
|
141
168
|
}
|
|
142
169
|
else if (isA(param, RegExp)) {
|
|
143
|
-
|
|
144
|
-
.
|
|
170
|
+
schema = z
|
|
171
|
+
.looseObject({
|
|
145
172
|
message: z.coerce.string().regex(param),
|
|
146
173
|
})
|
|
147
|
-
.or(z.coerce.string().regex(param))
|
|
148
|
-
.safeParse(error).success;
|
|
174
|
+
.or(z.coerce.string().regex(param));
|
|
149
175
|
}
|
|
150
176
|
else if (isNonNullObject(param)) {
|
|
151
|
-
|
|
177
|
+
schema = valueToSchema(param, valueToSchemaOptionsForSatisfies);
|
|
152
178
|
}
|
|
153
|
-
|
|
154
|
-
|
|
179
|
+
/* c8 ignore next 5 */
|
|
180
|
+
if (!schema) {
|
|
181
|
+
throw new TypeError(`Invalid parameter schema: ${inspect(param, { depth: 2 })}`);
|
|
182
|
+
}
|
|
183
|
+
const result = schema.safeParse(error);
|
|
184
|
+
if (!result.success) {
|
|
185
|
+
return result.error;
|
|
155
186
|
}
|
|
156
187
|
}),
|
|
157
188
|
createAsyncAssertion([
|
|
@@ -170,36 +201,32 @@ export const AsyncAssertions = [
|
|
|
170
201
|
message: `Expected promise to not reject, but it rejected with ${inspect(err)}`,
|
|
171
202
|
};
|
|
172
203
|
}
|
|
204
|
+
let schema;
|
|
205
|
+
// TODO: can valueToSchema handle the first two conditional branches?
|
|
173
206
|
if (isString(param)) {
|
|
174
|
-
|
|
175
|
-
.
|
|
207
|
+
schema = z
|
|
208
|
+
.looseObject({
|
|
176
209
|
message: z.coerce.string().pipe(z.literal(param)),
|
|
177
210
|
})
|
|
178
|
-
.or(z.coerce.string().pipe(z.literal(param)))
|
|
179
|
-
.safeParse(value).success;
|
|
211
|
+
.or(z.coerce.string().pipe(z.literal(param)));
|
|
180
212
|
}
|
|
181
213
|
else if (isA(param, RegExp)) {
|
|
182
|
-
|
|
183
|
-
.
|
|
214
|
+
schema = z
|
|
215
|
+
.looseObject({
|
|
184
216
|
message: z.coerce.string().regex(param),
|
|
185
217
|
})
|
|
186
|
-
.or(z.coerce.string().regex(param))
|
|
187
|
-
.safeParse(value).success;
|
|
218
|
+
.or(z.coerce.string().regex(param));
|
|
188
219
|
}
|
|
189
220
|
else if (isNonNullObject(param)) {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
return true;
|
|
200
|
-
}
|
|
201
|
-
else {
|
|
202
|
-
throw new TypeError(`Invalid parameter schema: ${inspect(param)}`);
|
|
221
|
+
schema = valueToSchema(param, valueToSchemaOptionsForSatisfies);
|
|
222
|
+
}
|
|
223
|
+
/* c8 ignore next 5 */
|
|
224
|
+
if (!schema) {
|
|
225
|
+
throw new TypeError(`Invalid parameter schema: ${inspect(param, { depth: 2 })}`);
|
|
226
|
+
}
|
|
227
|
+
const result = schema.safeParse(value);
|
|
228
|
+
if (!result.success) {
|
|
229
|
+
return result.error;
|
|
203
230
|
}
|
|
204
231
|
}),
|
|
205
232
|
createAsyncAssertion([
|
|
@@ -213,42 +240,43 @@ export const AsyncAssertions = [
|
|
|
213
240
|
}
|
|
214
241
|
catch (err) {
|
|
215
242
|
return {
|
|
216
|
-
actual:
|
|
217
|
-
expect: 'function to
|
|
218
|
-
message: `Expected function to
|
|
243
|
+
actual: 'function rejected',
|
|
244
|
+
expect: 'function to fulfill',
|
|
245
|
+
message: `Expected function to fulfill, but it rejected with ${inspect(err)}`,
|
|
219
246
|
};
|
|
220
247
|
}
|
|
248
|
+
let schema;
|
|
249
|
+
// TODO: can valueToSchema handle the first two conditional branches?
|
|
221
250
|
if (isString(param)) {
|
|
222
|
-
|
|
223
|
-
.
|
|
251
|
+
schema = z
|
|
252
|
+
.looseObject({
|
|
224
253
|
message: z.coerce.string().pipe(z.literal(param)),
|
|
225
254
|
})
|
|
226
|
-
.or(z.coerce.string().pipe(z.literal(param)))
|
|
227
|
-
.safeParse(value).success;
|
|
255
|
+
.or(z.coerce.string().pipe(z.literal(param)));
|
|
228
256
|
}
|
|
229
257
|
else if (isA(param, RegExp)) {
|
|
230
|
-
|
|
231
|
-
.
|
|
258
|
+
schema = z
|
|
259
|
+
.looseObject({
|
|
232
260
|
message: z.coerce.string().regex(param),
|
|
233
261
|
})
|
|
234
|
-
.or(z.coerce.string().regex(param))
|
|
235
|
-
.safeParse(value).success;
|
|
262
|
+
.or(z.coerce.string().regex(param));
|
|
236
263
|
}
|
|
237
264
|
else if (isNonNullObject(param)) {
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
return true;
|
|
248
|
-
}
|
|
249
|
-
else {
|
|
250
|
-
throw new TypeError(`Invalid parameter schema: ${inspect(param)}`);
|
|
265
|
+
schema = valueToSchema(param, valueToSchemaOptionsForSatisfies);
|
|
266
|
+
}
|
|
267
|
+
/* c8 ignore next 5 */
|
|
268
|
+
if (!schema) {
|
|
269
|
+
throw new TypeError(`Invalid parameter schema: ${inspect(param, { depth: 2 })}`);
|
|
270
|
+
}
|
|
271
|
+
const result = schema.safeParse(value);
|
|
272
|
+
if (!result.success) {
|
|
273
|
+
return result.error;
|
|
251
274
|
}
|
|
252
275
|
}),
|
|
253
276
|
];
|
|
277
|
+
export const AsyncAssertions = [
|
|
278
|
+
...PromiseAssertions,
|
|
279
|
+
...CallbackAsyncAssertions,
|
|
280
|
+
];
|
|
281
|
+
export { CallbackAsyncAssertions };
|
|
254
282
|
//# sourceMappingURL=async.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../../../src/assertion/impl/async.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../../../src/assertion/impl/async.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Callback-based assertion implementations.
|
|
3
|
+
*
|
|
4
|
+
* For callback invocation, error handling, and value validation in both
|
|
5
|
+
* synchronous and asynchronous contexts.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import { z } from 'zod/v4';
|
|
10
|
+
export declare const CallbackSyncAssertions: readonly [import("../assertion-types.js").AssertionFunctionSync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to call callback", "to invoke callback"]], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown) => boolean, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to call callback", "to invoke callback"]>]>, import("../assertion-types.js").AssertionFunctionSync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to call nodeback", "to invoke nodeback"]], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown) => boolean, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to call nodeback", "to invoke nodeback"]>]>, import("../assertion-types.js").AssertionFunctionSync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to call callback with", "to invoke callback with"], z.ZodUnknown], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, param: unknown) => {
|
|
11
|
+
actual: string;
|
|
12
|
+
expected: string;
|
|
13
|
+
message: string;
|
|
14
|
+
} | z.ZodError<any> | undefined, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to call callback with", "to invoke callback with"]>, z.ZodUnknown]>, import("../assertion-types.js").AssertionFunctionSync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to call callback with exactly", "to call callback with exact value", "to invoke callback with exactly", "to invoke callback with exact value"], z.ZodUnknown], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, expected: unknown) => {
|
|
15
|
+
actual: unknown;
|
|
16
|
+
expected: unknown;
|
|
17
|
+
message: string;
|
|
18
|
+
} | undefined, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to call callback with exactly", "to call callback with exact value", "to invoke callback with exactly", "to invoke callback with exact value"]>, z.ZodUnknown]>, import("../assertion-types.js").AssertionFunctionSync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to call nodeback with", "to invoke nodeback with"], z.ZodUnknown], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, param: unknown) => {
|
|
19
|
+
actual: string;
|
|
20
|
+
expected: string;
|
|
21
|
+
message: string;
|
|
22
|
+
} | z.ZodError<any> | undefined, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to call nodeback with", "to invoke nodeback with"]>, z.ZodUnknown]>, import("../assertion-types.js").AssertionFunctionSync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to call nodeback with exactly", "to call nodeback with exact value", "to invoke nodeback with exactly", "to invoke nodeback with exact value"], z.ZodUnknown], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, expected: unknown) => {
|
|
23
|
+
actual: unknown;
|
|
24
|
+
expected: unknown;
|
|
25
|
+
message: string;
|
|
26
|
+
} | undefined, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to call nodeback with exactly", "to call nodeback with exact value", "to invoke nodeback with exactly", "to invoke nodeback with exact value"]>, z.ZodUnknown]>, import("../assertion-types.js").AssertionFunctionSync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to call nodeback with error", "to invoke nodeback with error"]], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown) => {
|
|
27
|
+
actual: string;
|
|
28
|
+
expected: string;
|
|
29
|
+
message: string;
|
|
30
|
+
} | undefined, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to call nodeback with error", "to invoke nodeback with error"]>]>, import("../assertion-types.js").AssertionFunctionSync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to call nodeback with a", "to call nodeback with an", "to invoke nodeback with a", "to invoke nodeback with an"], z.ZodCustom<import("../../types.js").Constructor, import("../../types.js").Constructor>], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, ctor: import("../../types.js").Constructor) => {
|
|
31
|
+
actual: string;
|
|
32
|
+
expected: string;
|
|
33
|
+
message: string;
|
|
34
|
+
} | undefined, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to call nodeback with a", "to call nodeback with an", "to invoke nodeback with a", "to invoke nodeback with an"]>, z.ZodCustom<import("../../types.js").Constructor, import("../../types.js").Constructor>]>, import("../assertion-types.js").AssertionFunctionSync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to call nodeback with error", "to invoke nodeback with error"], z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{}, z.core.$loose>]>], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, param: string | RegExp | {
|
|
35
|
+
[x: string]: unknown;
|
|
36
|
+
}) => z.ZodError<unknown> | {
|
|
37
|
+
actual: string;
|
|
38
|
+
expected: string;
|
|
39
|
+
message: string;
|
|
40
|
+
} | undefined, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to call nodeback with error", "to invoke nodeback with error"]>, z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{}, z.core.$loose>]>]>, import("../assertion-types.js").AssertionFunctionSync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to call callback with value satisfying", "to invoke callback with value satisfying"], z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{}, z.core.$loose>]>], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, param: string | RegExp | {
|
|
41
|
+
[x: string]: unknown;
|
|
42
|
+
}) => {
|
|
43
|
+
actual: string;
|
|
44
|
+
expected: string;
|
|
45
|
+
message: string;
|
|
46
|
+
} | z.ZodError<any> | undefined, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to call callback with value satisfying", "to invoke callback with value satisfying"]>, z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{}, z.core.$loose>]>]>, import("../assertion-types.js").AssertionFunctionSync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to call nodeback with value satisfying", "to invoke nodeback with value satisfying"], z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{}, z.core.$loose>]>], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, param: string | RegExp | {
|
|
47
|
+
[x: string]: unknown;
|
|
48
|
+
}) => {
|
|
49
|
+
actual: string;
|
|
50
|
+
expected: string;
|
|
51
|
+
message: string;
|
|
52
|
+
} | z.ZodError<any> | undefined, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to call nodeback with value satisfying", "to invoke nodeback with value satisfying"]>, z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{}, z.core.$loose>]>]>];
|
|
53
|
+
export declare const CallbackAsyncAssertions: readonly [import("../assertion-types.js").AssertionFunctionAsync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to eventually call callback", "to eventually invoke callback"]], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown) => Promise<{
|
|
54
|
+
actual: string;
|
|
55
|
+
expected: string;
|
|
56
|
+
message: string;
|
|
57
|
+
} | undefined>, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to eventually call callback", "to eventually invoke callback"]>]>, import("../assertion-types.js").AssertionFunctionAsync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to eventually call nodeback", "to eventually invoke nodeback"]], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown) => Promise<{
|
|
58
|
+
actual: string;
|
|
59
|
+
expected: string;
|
|
60
|
+
message: string;
|
|
61
|
+
} | undefined>, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to eventually call nodeback", "to eventually invoke nodeback"]>]>, import("../assertion-types.js").AssertionFunctionAsync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to eventually call callback with", "to eventually invoke callback with"], z.ZodUnknown], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, param: unknown) => Promise<z.ZodError<any> | {
|
|
62
|
+
actual: string;
|
|
63
|
+
expected: string;
|
|
64
|
+
message: string;
|
|
65
|
+
} | undefined>, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to eventually call callback with", "to eventually invoke callback with"]>, z.ZodUnknown]>, import("../assertion-types.js").AssertionFunctionAsync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to eventually call callback with exactly", "to eventually call callback with exact value", "to eventually invoke callback with exactly", "to eventually invoke callback with exact value"], z.ZodUnknown], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, expected: unknown) => Promise<boolean | {
|
|
66
|
+
actual: string;
|
|
67
|
+
expected: string;
|
|
68
|
+
message: string;
|
|
69
|
+
}>, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to eventually call callback with exactly", "to eventually call callback with exact value", "to eventually invoke callback with exactly", "to eventually invoke callback with exact value"]>, z.ZodUnknown]>, import("../assertion-types.js").AssertionFunctionAsync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to eventually call nodeback with", "to eventually invoke nodeback with"], z.ZodUnknown], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, param: unknown) => Promise<z.ZodError<any> | {
|
|
70
|
+
actual: string;
|
|
71
|
+
expected: string;
|
|
72
|
+
message: string;
|
|
73
|
+
} | undefined>, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to eventually call nodeback with", "to eventually invoke nodeback with"]>, z.ZodUnknown]>, import("../assertion-types.js").AssertionFunctionAsync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to eventually call nodeback with exactly", "to eventually call nodeback with exact value", "to eventually invoke nodeback with exactly", "to eventually invoke nodeback with exact value"], z.ZodUnknown], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, expected: unknown) => Promise<boolean | {
|
|
74
|
+
actual: string;
|
|
75
|
+
expected: string;
|
|
76
|
+
message: string;
|
|
77
|
+
}>, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to eventually call nodeback with exactly", "to eventually call nodeback with exact value", "to eventually invoke nodeback with exactly", "to eventually invoke nodeback with exact value"]>, z.ZodUnknown]>, import("../assertion-types.js").AssertionFunctionAsync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to eventually call nodeback with error", "to eventually invoke nodeback with error"]], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown) => Promise<{
|
|
78
|
+
actual: string;
|
|
79
|
+
expected: string;
|
|
80
|
+
message: string;
|
|
81
|
+
} | undefined>, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to eventually call nodeback with error", "to eventually invoke nodeback with error"]>]>, import("../assertion-types.js").AssertionFunctionAsync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to eventually call nodeback with a", "to eventually call nodeback with an", "to eventually invoke nodeback with a", "to eventually invoke nodeback with an"], z.ZodCustom<import("../../types.js").Constructor, import("../../types.js").Constructor>], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, ctor: import("../../types.js").Constructor) => Promise<{
|
|
82
|
+
actual: string;
|
|
83
|
+
expected: string;
|
|
84
|
+
message: string;
|
|
85
|
+
} | undefined>, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to eventually call nodeback with a", "to eventually call nodeback with an", "to eventually invoke nodeback with a", "to eventually invoke nodeback with an"]>, z.ZodCustom<import("../../types.js").Constructor, import("../../types.js").Constructor>]>, import("../assertion-types.js").AssertionFunctionAsync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to eventually call nodeback with error", "to eventually invoke nodeback with error"], z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{}, z.core.$loose>]>], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, param: string | RegExp | {
|
|
86
|
+
[x: string]: unknown;
|
|
87
|
+
}) => Promise<z.ZodError<unknown> | {
|
|
88
|
+
actual: string;
|
|
89
|
+
expected: string;
|
|
90
|
+
message: string;
|
|
91
|
+
} | undefined>, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to eventually call nodeback with error", "to eventually invoke nodeback with error"]>, z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{}, z.core.$loose>]>]>, import("../assertion-types.js").AssertionFunctionAsync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to eventually call callback with value satisfying", "to eventually invoke callback with value satisfying"], z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{}, z.core.$loose>]>], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, param: string | RegExp | {
|
|
92
|
+
[x: string]: unknown;
|
|
93
|
+
}) => Promise<z.ZodError<any> | {
|
|
94
|
+
actual: string;
|
|
95
|
+
expected: string;
|
|
96
|
+
message: string;
|
|
97
|
+
} | undefined>, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to eventually call callback with value satisfying", "to eventually invoke callback with value satisfying"]>, z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{}, z.core.$loose>]>]>, import("../assertion-types.js").AssertionFunctionAsync<readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, readonly ["to eventually call nodeback with value satisfying", "to eventually invoke nodeback with value satisfying"], z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{}, z.core.$loose>]>], (subject: (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, param: string | RegExp | {
|
|
98
|
+
[x: string]: unknown;
|
|
99
|
+
}) => Promise<z.ZodError<any> | {
|
|
100
|
+
actual: string;
|
|
101
|
+
expected: string;
|
|
102
|
+
message: string;
|
|
103
|
+
} | undefined>, readonly [z.ZodCustom<(...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown, (...args: import("../../types.js").MutableOrReadonly<unknown[]>) => unknown>, import("../assertion-types.js").PhraseLiteralChoiceSlot<readonly ["to eventually call nodeback with value satisfying", "to eventually invoke nodeback with value satisfying"]>, z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RegExp, RegExp>, z.ZodObject<{}, z.core.$loose>]>]>];
|
|
104
|
+
//# sourceMappingURL=callback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../../../src/assertion/impl/callback.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAwW3B,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8cAiPzB,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mdA4Q1B,CAAC"}
|