@modulify/validator 0.3.0 → 0.3.1
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 +2 -0
- package/dist/assert.cjs +101 -7
- package/dist/assert.mjs +95 -1
- package/dist/assertions.cjs +309 -32
- package/dist/assertions.mjs +279 -2
- package/dist/checkers.cjs +23 -0
- package/dist/checkers.mjs +16 -0
- package/dist/combinators.cjs +24 -22
- package/dist/combinators.mjs +3 -1
- package/dist/constraints.cjs +23 -0
- package/dist/constraints.mjs +21 -0
- package/dist/extractors.cjs +6 -0
- package/dist/extractors.mjs +5 -0
- package/dist/index.cjs +14 -90
- package/dist/index.mjs +5 -81
- package/dist/json-schema.cjs +2 -2
- package/dist/json-schema.mjs +1 -1
- package/dist/metadata.cjs +98 -6
- package/dist/metadata.mjs +93 -1
- package/dist/violations.cjs +81 -0
- package/dist/violations.mjs +80 -0
- package/package.json +1 -1
- package/dist/assert-BDOtHdLx.cjs +0 -289
- package/dist/assert-CzMg5aO7.mjs +0 -206
- package/dist/assertions-DPYCHREw.mjs +0 -297
- package/dist/assertions-nfOKqcjs.cjs +0 -476
package/CHANGELOG.md
CHANGED
package/dist/assert.cjs
CHANGED
|
@@ -1,8 +1,102 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
const require_metadata = require("./metadata.cjs");
|
|
3
|
+
//#region src/assert.ts
|
|
4
|
+
var assertionStageSymbol = Symbol("modulify.validator.assertion.stage");
|
|
5
|
+
var runRefinementSymbol = Symbol("modulify.validator.assertion.runRefinement");
|
|
6
|
+
var checkRefinementSymbol = Symbol("modulify.validator.assertion.checkRefinement");
|
|
7
|
+
var createAssertion = (stage, predicate, meta, constraints = []) => {
|
|
8
|
+
const assertionCode = meta.code ?? meta.name;
|
|
9
|
+
const assertionArgs = meta.args ?? [];
|
|
10
|
+
const violationSubject = {
|
|
11
|
+
kind: "assertion",
|
|
12
|
+
name: meta.name,
|
|
13
|
+
code: assertionCode,
|
|
14
|
+
args: assertionArgs
|
|
15
|
+
};
|
|
16
|
+
const runConstraints = (value) => {
|
|
17
|
+
for (const [extract, check, code, ...args] of constraints) if (!check(extract(value), ...args)) return {
|
|
18
|
+
value,
|
|
19
|
+
violates: {
|
|
20
|
+
kind: "assertion",
|
|
21
|
+
name: meta.name,
|
|
22
|
+
code,
|
|
23
|
+
args
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
return null;
|
|
27
|
+
};
|
|
28
|
+
const checkConstraints = (value) => !constraints.length || constraints.every(([extract, check, , ...args]) => check(extract(value), ...args));
|
|
29
|
+
const assertion = ((value) => {
|
|
30
|
+
if (!predicate(value)) return {
|
|
31
|
+
value,
|
|
32
|
+
violates: violationSubject
|
|
33
|
+
};
|
|
34
|
+
return runConstraints(value);
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperties(assertion, {
|
|
37
|
+
name: {
|
|
38
|
+
configurable: true,
|
|
39
|
+
value: meta.name
|
|
40
|
+
},
|
|
41
|
+
bail: {
|
|
42
|
+
enumerable: true,
|
|
43
|
+
value: meta.bail
|
|
44
|
+
},
|
|
45
|
+
constraints: {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
value: constraints
|
|
48
|
+
},
|
|
49
|
+
check: {
|
|
50
|
+
enumerable: true,
|
|
51
|
+
value: (value) => predicate(value) && checkConstraints(value)
|
|
52
|
+
},
|
|
53
|
+
[assertionStageSymbol]: {
|
|
54
|
+
enumerable: false,
|
|
55
|
+
value: stage
|
|
56
|
+
},
|
|
57
|
+
[runRefinementSymbol]: {
|
|
58
|
+
enumerable: false,
|
|
59
|
+
value: (value) => runConstraints(value)
|
|
60
|
+
},
|
|
61
|
+
[checkRefinementSymbol]: {
|
|
62
|
+
enumerable: false,
|
|
63
|
+
value: (value) => checkConstraints(value)
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
return /* @__PURE__ */ require_metadata.attachConstraintDescriptor(assertion, () => ({
|
|
67
|
+
kind: "assertion",
|
|
68
|
+
name: meta.name,
|
|
69
|
+
bail: meta.bail,
|
|
70
|
+
code: assertionCode,
|
|
71
|
+
args: assertionArgs,
|
|
72
|
+
constraints: constraints.map(([, , code, ...args]) => ({
|
|
73
|
+
code,
|
|
74
|
+
args
|
|
75
|
+
}))
|
|
76
|
+
}));
|
|
77
|
+
};
|
|
78
|
+
var assert = (predicate, meta, constraints = []) => {
|
|
79
|
+
return createAssertion("guard", predicate, meta, constraints);
|
|
80
|
+
};
|
|
81
|
+
var isRefinementAssertion = (constraint) => {
|
|
82
|
+
return typeof constraint === "function" && constraint[assertionStageSymbol] === "refinement";
|
|
83
|
+
};
|
|
84
|
+
var runRefinementAssertion = (constraint, value) => {
|
|
85
|
+
const runRefinement = constraint[runRefinementSymbol];
|
|
86
|
+
return runRefinement ? runRefinement(value) : constraint(value);
|
|
87
|
+
};
|
|
88
|
+
var checkRefinementAssertion = (constraint, value) => {
|
|
89
|
+
const checkRefinement = constraint[checkRefinementSymbol];
|
|
90
|
+
return checkRefinement ? checkRefinement(value) : constraint.check(value);
|
|
91
|
+
};
|
|
92
|
+
var createRefinement = (meta, constraints = []) => {
|
|
93
|
+
return createAssertion("refinement", ((value) => true), meta, constraints);
|
|
94
|
+
};
|
|
95
|
+
var refine = createRefinement;
|
|
96
|
+
//#endregion
|
|
97
|
+
exports.assert = assert;
|
|
98
|
+
exports.checkRefinementAssertion = checkRefinementAssertion;
|
|
99
|
+
exports.createRefinement = createRefinement;
|
|
100
|
+
exports.isRefinementAssertion = isRefinementAssertion;
|
|
101
|
+
exports.refine = refine;
|
|
102
|
+
exports.runRefinementAssertion = runRefinementAssertion;
|
package/dist/assert.mjs
CHANGED
|
@@ -1,2 +1,96 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { attachConstraintDescriptor } from "./metadata.mjs";
|
|
2
|
+
//#region src/assert.ts
|
|
3
|
+
var assertionStageSymbol = Symbol("modulify.validator.assertion.stage");
|
|
4
|
+
var runRefinementSymbol = Symbol("modulify.validator.assertion.runRefinement");
|
|
5
|
+
var checkRefinementSymbol = Symbol("modulify.validator.assertion.checkRefinement");
|
|
6
|
+
var createAssertion = (stage, predicate, meta, constraints = []) => {
|
|
7
|
+
const assertionCode = meta.code ?? meta.name;
|
|
8
|
+
const assertionArgs = meta.args ?? [];
|
|
9
|
+
const violationSubject = {
|
|
10
|
+
kind: "assertion",
|
|
11
|
+
name: meta.name,
|
|
12
|
+
code: assertionCode,
|
|
13
|
+
args: assertionArgs
|
|
14
|
+
};
|
|
15
|
+
const runConstraints = (value) => {
|
|
16
|
+
for (const [extract, check, code, ...args] of constraints) if (!check(extract(value), ...args)) return {
|
|
17
|
+
value,
|
|
18
|
+
violates: {
|
|
19
|
+
kind: "assertion",
|
|
20
|
+
name: meta.name,
|
|
21
|
+
code,
|
|
22
|
+
args
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
return null;
|
|
26
|
+
};
|
|
27
|
+
const checkConstraints = (value) => !constraints.length || constraints.every(([extract, check, , ...args]) => check(extract(value), ...args));
|
|
28
|
+
const assertion = ((value) => {
|
|
29
|
+
if (!predicate(value)) return {
|
|
30
|
+
value,
|
|
31
|
+
violates: violationSubject
|
|
32
|
+
};
|
|
33
|
+
return runConstraints(value);
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperties(assertion, {
|
|
36
|
+
name: {
|
|
37
|
+
configurable: true,
|
|
38
|
+
value: meta.name
|
|
39
|
+
},
|
|
40
|
+
bail: {
|
|
41
|
+
enumerable: true,
|
|
42
|
+
value: meta.bail
|
|
43
|
+
},
|
|
44
|
+
constraints: {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
value: constraints
|
|
47
|
+
},
|
|
48
|
+
check: {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
value: (value) => predicate(value) && checkConstraints(value)
|
|
51
|
+
},
|
|
52
|
+
[assertionStageSymbol]: {
|
|
53
|
+
enumerable: false,
|
|
54
|
+
value: stage
|
|
55
|
+
},
|
|
56
|
+
[runRefinementSymbol]: {
|
|
57
|
+
enumerable: false,
|
|
58
|
+
value: (value) => runConstraints(value)
|
|
59
|
+
},
|
|
60
|
+
[checkRefinementSymbol]: {
|
|
61
|
+
enumerable: false,
|
|
62
|
+
value: (value) => checkConstraints(value)
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
return /* @__PURE__ */ attachConstraintDescriptor(assertion, () => ({
|
|
66
|
+
kind: "assertion",
|
|
67
|
+
name: meta.name,
|
|
68
|
+
bail: meta.bail,
|
|
69
|
+
code: assertionCode,
|
|
70
|
+
args: assertionArgs,
|
|
71
|
+
constraints: constraints.map(([, , code, ...args]) => ({
|
|
72
|
+
code,
|
|
73
|
+
args
|
|
74
|
+
}))
|
|
75
|
+
}));
|
|
76
|
+
};
|
|
77
|
+
var assert = (predicate, meta, constraints = []) => {
|
|
78
|
+
return createAssertion("guard", predicate, meta, constraints);
|
|
79
|
+
};
|
|
80
|
+
var isRefinementAssertion = (constraint) => {
|
|
81
|
+
return typeof constraint === "function" && constraint[assertionStageSymbol] === "refinement";
|
|
82
|
+
};
|
|
83
|
+
var runRefinementAssertion = (constraint, value) => {
|
|
84
|
+
const runRefinement = constraint[runRefinementSymbol];
|
|
85
|
+
return runRefinement ? runRefinement(value) : constraint(value);
|
|
86
|
+
};
|
|
87
|
+
var checkRefinementAssertion = (constraint, value) => {
|
|
88
|
+
const checkRefinement = constraint[checkRefinementSymbol];
|
|
89
|
+
return checkRefinement ? checkRefinement(value) : constraint.check(value);
|
|
90
|
+
};
|
|
91
|
+
var createRefinement = (meta, constraints = []) => {
|
|
92
|
+
return createAssertion("refinement", ((value) => true), meta, constraints);
|
|
93
|
+
};
|
|
94
|
+
var refine = createRefinement;
|
|
95
|
+
//#endregion
|
|
2
96
|
export { assert, checkRefinementAssertion, createRefinement, isRefinementAssertion, refine, runRefinementAssertion };
|
package/dist/assertions.cjs
CHANGED
|
@@ -1,35 +1,312 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_assert = require("./assert
|
|
3
|
-
const
|
|
2
|
+
const require_assert = require("./assert.cjs");
|
|
3
|
+
const require_checkers = require("./checkers.cjs");
|
|
4
|
+
const require_extractors = require("./extractors.cjs");
|
|
5
|
+
const require_predicates = require("./predicates.cjs");
|
|
6
|
+
//#region src/assertions.ts
|
|
7
|
+
var buildLengthConstraints = (options) => {
|
|
8
|
+
const { exact = null, max = null, min = null, range = null } = options;
|
|
9
|
+
const constraints = [];
|
|
10
|
+
if (exact !== null) constraints.push([
|
|
11
|
+
require_extractors.length,
|
|
12
|
+
require_checkers.isEqual,
|
|
13
|
+
"length.exact",
|
|
14
|
+
exact
|
|
15
|
+
]);
|
|
16
|
+
if (max !== null) constraints.push([
|
|
17
|
+
require_extractors.length,
|
|
18
|
+
require_checkers.isLte,
|
|
19
|
+
"length.max",
|
|
20
|
+
max
|
|
21
|
+
]);
|
|
22
|
+
if (min !== null) constraints.push([
|
|
23
|
+
require_extractors.length,
|
|
24
|
+
require_checkers.isGte,
|
|
25
|
+
"length.min",
|
|
26
|
+
min
|
|
27
|
+
]);
|
|
28
|
+
if (range !== null) constraints.push([
|
|
29
|
+
require_extractors.length,
|
|
30
|
+
require_checkers.inRange,
|
|
31
|
+
"length.range",
|
|
32
|
+
range
|
|
33
|
+
]);
|
|
34
|
+
return constraints;
|
|
35
|
+
};
|
|
36
|
+
var buildSizeConstraints = (options) => {
|
|
37
|
+
const { exact = null, max = null, min = null, range = null } = options;
|
|
38
|
+
const constraints = [];
|
|
39
|
+
if (exact !== null) constraints.push([
|
|
40
|
+
require_extractors.size,
|
|
41
|
+
require_checkers.isEqual,
|
|
42
|
+
"size.exact",
|
|
43
|
+
exact
|
|
44
|
+
]);
|
|
45
|
+
if (max !== null) constraints.push([
|
|
46
|
+
require_extractors.size,
|
|
47
|
+
require_checkers.isLte,
|
|
48
|
+
"size.max",
|
|
49
|
+
max
|
|
50
|
+
]);
|
|
51
|
+
if (min !== null) constraints.push([
|
|
52
|
+
require_extractors.size,
|
|
53
|
+
require_checkers.isGte,
|
|
54
|
+
"size.min",
|
|
55
|
+
min
|
|
56
|
+
]);
|
|
57
|
+
if (range !== null) constraints.push([
|
|
58
|
+
require_extractors.size,
|
|
59
|
+
require_checkers.inRange,
|
|
60
|
+
"size.range",
|
|
61
|
+
range
|
|
62
|
+
]);
|
|
63
|
+
return constraints;
|
|
64
|
+
};
|
|
65
|
+
var buildValueConstraints = (options) => {
|
|
66
|
+
const { exact = null, max = null, min = null, range = null } = options;
|
|
67
|
+
const constraints = [];
|
|
68
|
+
if (exact !== null) constraints.push([
|
|
69
|
+
(value) => value,
|
|
70
|
+
require_checkers.isEqual,
|
|
71
|
+
"number.exact",
|
|
72
|
+
exact
|
|
73
|
+
]);
|
|
74
|
+
if (max !== null) constraints.push([
|
|
75
|
+
(value) => value,
|
|
76
|
+
require_checkers.isLte,
|
|
77
|
+
"number.max",
|
|
78
|
+
max
|
|
79
|
+
]);
|
|
80
|
+
if (min !== null) constraints.push([
|
|
81
|
+
(value) => value,
|
|
82
|
+
require_checkers.isGte,
|
|
83
|
+
"number.min",
|
|
84
|
+
min
|
|
85
|
+
]);
|
|
86
|
+
if (range !== null) constraints.push([
|
|
87
|
+
(value) => value,
|
|
88
|
+
require_checkers.inRange,
|
|
89
|
+
"number.range",
|
|
90
|
+
range
|
|
91
|
+
]);
|
|
92
|
+
return constraints;
|
|
93
|
+
};
|
|
94
|
+
var isBoolean = /* @__PURE__ */ require_assert.assert(require_predicates.isBoolean, {
|
|
95
|
+
name: "isBoolean",
|
|
96
|
+
bail: true,
|
|
97
|
+
code: "type.boolean"
|
|
98
|
+
});
|
|
99
|
+
var isBigInt = /* @__PURE__ */ require_assert.assert(require_predicates.isBigInt, {
|
|
100
|
+
name: "isBigInt",
|
|
101
|
+
bail: true,
|
|
102
|
+
code: "type.bigint"
|
|
103
|
+
});
|
|
104
|
+
var isBlob = /* @__PURE__ */ require_assert.assert(require_predicates.isBlob, {
|
|
105
|
+
name: "isBlob",
|
|
106
|
+
bail: true,
|
|
107
|
+
code: "type.blob"
|
|
108
|
+
});
|
|
109
|
+
var isDate = /* @__PURE__ */ require_assert.assert(require_predicates.isDate, {
|
|
110
|
+
name: "isDate",
|
|
111
|
+
bail: true,
|
|
112
|
+
code: "type.date"
|
|
113
|
+
});
|
|
114
|
+
var isDefined = /* @__PURE__ */ require_assert.assert((value) => value !== void 0, {
|
|
115
|
+
name: "isDefined",
|
|
116
|
+
bail: true,
|
|
117
|
+
code: "value.defined"
|
|
118
|
+
});
|
|
119
|
+
var isEmail = /* @__PURE__ */ require_assert.assert(require_predicates.isEmail, {
|
|
120
|
+
name: "isEmail",
|
|
121
|
+
bail: true,
|
|
122
|
+
code: "string.email"
|
|
123
|
+
});
|
|
124
|
+
var isError = /* @__PURE__ */ require_assert.assert(require_predicates.isError, {
|
|
125
|
+
name: "isError",
|
|
126
|
+
bail: true,
|
|
127
|
+
code: "type.error"
|
|
128
|
+
});
|
|
129
|
+
var isFiniteNumber = /* @__PURE__ */ require_assert.assert(require_predicates.isFiniteNumber, {
|
|
130
|
+
name: "isFiniteNumber",
|
|
131
|
+
bail: true,
|
|
132
|
+
code: "number.finite"
|
|
133
|
+
});
|
|
134
|
+
var isFile = /* @__PURE__ */ require_assert.assert(require_predicates.isFile, {
|
|
135
|
+
name: "isFile",
|
|
136
|
+
bail: true,
|
|
137
|
+
code: "type.file"
|
|
138
|
+
});
|
|
139
|
+
var isFunction = /* @__PURE__ */ require_assert.assert(require_predicates.isFunction, {
|
|
140
|
+
name: "isFunction",
|
|
141
|
+
bail: true,
|
|
142
|
+
code: "type.function"
|
|
143
|
+
});
|
|
144
|
+
var isInteger = /* @__PURE__ */ require_assert.assert(require_predicates.isInteger, {
|
|
145
|
+
name: "isInteger",
|
|
146
|
+
bail: true,
|
|
147
|
+
code: "number.integer"
|
|
148
|
+
});
|
|
149
|
+
var isMap = /* @__PURE__ */ require_assert.assert(require_predicates.isMap, {
|
|
150
|
+
name: "isMap",
|
|
151
|
+
bail: true,
|
|
152
|
+
code: "type.map"
|
|
153
|
+
});
|
|
154
|
+
var isNaN = /* @__PURE__ */ require_assert.assert(require_predicates.isNaN, {
|
|
155
|
+
name: "isNaN",
|
|
156
|
+
bail: true,
|
|
157
|
+
code: "number.nan"
|
|
158
|
+
});
|
|
159
|
+
var isNull = /* @__PURE__ */ require_assert.assert(require_predicates.isNull, {
|
|
160
|
+
name: "isNull",
|
|
161
|
+
bail: true,
|
|
162
|
+
code: "type.null"
|
|
163
|
+
});
|
|
164
|
+
var isNumber = /* @__PURE__ */ require_assert.assert(require_predicates.isNumber, {
|
|
165
|
+
name: "isNumber",
|
|
166
|
+
bail: true,
|
|
167
|
+
code: "type.number"
|
|
168
|
+
});
|
|
169
|
+
var isPromiseLike = /* @__PURE__ */ require_assert.assert(require_predicates.isPromiseLike, {
|
|
170
|
+
name: "isPromiseLike",
|
|
171
|
+
bail: true,
|
|
172
|
+
code: "type.promise-like"
|
|
173
|
+
});
|
|
174
|
+
var isRegExp = /* @__PURE__ */ require_assert.assert(require_predicates.isRegExp, {
|
|
175
|
+
name: "isRegExp",
|
|
176
|
+
bail: true,
|
|
177
|
+
code: "type.regexp"
|
|
178
|
+
});
|
|
179
|
+
var isSafeInteger = /* @__PURE__ */ require_assert.assert(require_predicates.isSafeInteger, {
|
|
180
|
+
name: "isSafeInteger",
|
|
181
|
+
bail: true,
|
|
182
|
+
code: "number.safe-integer"
|
|
183
|
+
});
|
|
184
|
+
var isSet = /* @__PURE__ */ require_assert.assert(require_predicates.isSet, {
|
|
185
|
+
name: "isSet",
|
|
186
|
+
bail: true,
|
|
187
|
+
code: "type.set"
|
|
188
|
+
});
|
|
189
|
+
var isString = /* @__PURE__ */ require_assert.assert(require_predicates.isString, {
|
|
190
|
+
name: "isString",
|
|
191
|
+
bail: true,
|
|
192
|
+
code: "type.string"
|
|
193
|
+
});
|
|
194
|
+
var isSymbol = /* @__PURE__ */ require_assert.assert(require_predicates.isSymbol, {
|
|
195
|
+
name: "isSymbol",
|
|
196
|
+
bail: true,
|
|
197
|
+
code: "type.symbol"
|
|
198
|
+
});
|
|
199
|
+
var isValidDate = /* @__PURE__ */ require_assert.assert(require_predicates.isValidDate, {
|
|
200
|
+
name: "isValidDate",
|
|
201
|
+
bail: true,
|
|
202
|
+
code: "date.valid"
|
|
203
|
+
});
|
|
204
|
+
var hasLength = (options = {}) => {
|
|
205
|
+
const { bail = false } = options;
|
|
206
|
+
const constraints = buildLengthConstraints(options);
|
|
207
|
+
return /* @__PURE__ */ require_assert.createRefinement({
|
|
208
|
+
name: "hasLength",
|
|
209
|
+
bail,
|
|
210
|
+
code: "length.unsupported-type"
|
|
211
|
+
}, constraints);
|
|
212
|
+
};
|
|
213
|
+
var hasSize = (options = {}) => {
|
|
214
|
+
const { bail = false } = options;
|
|
215
|
+
const constraints = buildSizeConstraints(options);
|
|
216
|
+
return /* @__PURE__ */ require_assert.createRefinement({
|
|
217
|
+
name: "hasSize",
|
|
218
|
+
bail,
|
|
219
|
+
code: "size.unsupported-type"
|
|
220
|
+
}, constraints);
|
|
221
|
+
};
|
|
222
|
+
var hasPattern = (pattern, { bail = false } = {}) => /* @__PURE__ */ require_assert.createRefinement({
|
|
223
|
+
name: "hasPattern",
|
|
224
|
+
bail,
|
|
225
|
+
code: "string.unsupported-type"
|
|
226
|
+
}, [[
|
|
227
|
+
(value) => value,
|
|
228
|
+
require_checkers.matchesPattern,
|
|
229
|
+
"string.pattern",
|
|
230
|
+
pattern
|
|
231
|
+
]]);
|
|
232
|
+
var startsWith = (prefix, { bail = false } = {}) => /* @__PURE__ */ require_assert.createRefinement({
|
|
233
|
+
name: "startsWith",
|
|
234
|
+
bail,
|
|
235
|
+
code: "string.unsupported-type"
|
|
236
|
+
}, [[
|
|
237
|
+
(value) => value,
|
|
238
|
+
require_checkers.startsWith,
|
|
239
|
+
"string.starts-with",
|
|
240
|
+
prefix
|
|
241
|
+
]]);
|
|
242
|
+
var endsWith = (suffix, { bail = false } = {}) => /* @__PURE__ */ require_assert.createRefinement({
|
|
243
|
+
name: "endsWith",
|
|
244
|
+
bail,
|
|
245
|
+
code: "string.unsupported-type"
|
|
246
|
+
}, [[
|
|
247
|
+
(value) => value,
|
|
248
|
+
require_checkers.endsWith,
|
|
249
|
+
"string.ends-with",
|
|
250
|
+
suffix
|
|
251
|
+
]]);
|
|
252
|
+
var hasValue = (options = {}) => {
|
|
253
|
+
const { bail = false } = options;
|
|
254
|
+
const constraints = buildValueConstraints(options);
|
|
255
|
+
return /* @__PURE__ */ require_assert.createRefinement({
|
|
256
|
+
name: "hasValue",
|
|
257
|
+
bail,
|
|
258
|
+
code: "number.unsupported-type"
|
|
259
|
+
}, constraints);
|
|
260
|
+
};
|
|
261
|
+
var multipleOf = (step, { bail = false } = {}) => /* @__PURE__ */ require_assert.createRefinement({
|
|
262
|
+
name: "multipleOf",
|
|
263
|
+
bail,
|
|
264
|
+
code: "number.unsupported-type"
|
|
265
|
+
}, [[
|
|
266
|
+
(value) => value,
|
|
267
|
+
require_checkers.isMultipleOf,
|
|
268
|
+
"number.multiple-of",
|
|
269
|
+
step
|
|
270
|
+
]]);
|
|
271
|
+
var oneOf = (values, { equalTo = (a, b) => a === b, bail = false } = {}) => {
|
|
272
|
+
const haystack = require_predicates.isArray(values) ? values : Object.values(values);
|
|
273
|
+
return /* @__PURE__ */ require_assert.assert((value) => haystack.some((item) => equalTo(item, value)), {
|
|
274
|
+
name: "oneOf",
|
|
275
|
+
bail,
|
|
276
|
+
code: "value.one-of",
|
|
277
|
+
args: [haystack]
|
|
278
|
+
});
|
|
279
|
+
};
|
|
280
|
+
//#endregion
|
|
4
281
|
exports.assert = require_assert.assert;
|
|
5
|
-
exports.endsWith =
|
|
6
|
-
exports.hasLength =
|
|
7
|
-
exports.hasPattern =
|
|
8
|
-
exports.hasSize =
|
|
9
|
-
exports.hasValue =
|
|
10
|
-
exports.isBigInt =
|
|
11
|
-
exports.isBlob =
|
|
12
|
-
exports.isBoolean =
|
|
13
|
-
exports.isDate =
|
|
14
|
-
exports.isDefined =
|
|
15
|
-
exports.isEmail =
|
|
16
|
-
exports.isError =
|
|
17
|
-
exports.isFile =
|
|
18
|
-
exports.isFiniteNumber =
|
|
19
|
-
exports.isFunction =
|
|
20
|
-
exports.isInteger =
|
|
21
|
-
exports.isMap =
|
|
22
|
-
exports.isNaN =
|
|
23
|
-
exports.isNull =
|
|
24
|
-
exports.isNumber =
|
|
25
|
-
exports.isPromiseLike =
|
|
26
|
-
exports.isRegExp =
|
|
27
|
-
exports.isSafeInteger =
|
|
28
|
-
exports.isSet =
|
|
29
|
-
exports.isString =
|
|
30
|
-
exports.isSymbol =
|
|
31
|
-
exports.isValidDate =
|
|
32
|
-
exports.multipleOf =
|
|
33
|
-
exports.oneOf =
|
|
282
|
+
exports.endsWith = endsWith;
|
|
283
|
+
exports.hasLength = hasLength;
|
|
284
|
+
exports.hasPattern = hasPattern;
|
|
285
|
+
exports.hasSize = hasSize;
|
|
286
|
+
exports.hasValue = hasValue;
|
|
287
|
+
exports.isBigInt = isBigInt;
|
|
288
|
+
exports.isBlob = isBlob;
|
|
289
|
+
exports.isBoolean = isBoolean;
|
|
290
|
+
exports.isDate = isDate;
|
|
291
|
+
exports.isDefined = isDefined;
|
|
292
|
+
exports.isEmail = isEmail;
|
|
293
|
+
exports.isError = isError;
|
|
294
|
+
exports.isFile = isFile;
|
|
295
|
+
exports.isFiniteNumber = isFiniteNumber;
|
|
296
|
+
exports.isFunction = isFunction;
|
|
297
|
+
exports.isInteger = isInteger;
|
|
298
|
+
exports.isMap = isMap;
|
|
299
|
+
exports.isNaN = isNaN;
|
|
300
|
+
exports.isNull = isNull;
|
|
301
|
+
exports.isNumber = isNumber;
|
|
302
|
+
exports.isPromiseLike = isPromiseLike;
|
|
303
|
+
exports.isRegExp = isRegExp;
|
|
304
|
+
exports.isSafeInteger = isSafeInteger;
|
|
305
|
+
exports.isSet = isSet;
|
|
306
|
+
exports.isString = isString;
|
|
307
|
+
exports.isSymbol = isSymbol;
|
|
308
|
+
exports.isValidDate = isValidDate;
|
|
309
|
+
exports.multipleOf = multipleOf;
|
|
310
|
+
exports.oneOf = oneOf;
|
|
34
311
|
exports.refine = require_assert.refine;
|
|
35
|
-
exports.startsWith =
|
|
312
|
+
exports.startsWith = startsWith;
|