ts-fortress 7.1.0 → 7.3.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/dist/entry-point.mjs +1 -0
- package/dist/entry-point.mjs.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/dist/predefined/brand/index.mjs +1 -0
- package/dist/predefined/brand/index.mjs.map +1 -1
- package/dist/predefined/brand/string/email.d.mts +1 -1
- package/dist/predefined/brand/string/email.d.mts.map +1 -1
- package/dist/predefined/brand/string/email.mjs +5 -2
- package/dist/predefined/brand/string/email.mjs.map +1 -1
- package/dist/predefined/brand/string/index.d.mts +1 -0
- package/dist/predefined/brand/string/index.d.mts.map +1 -1
- package/dist/predefined/brand/string/index.mjs +1 -0
- package/dist/predefined/brand/string/index.mjs.map +1 -1
- package/dist/predefined/brand/string/iso-8601.d.mts +1 -1
- package/dist/predefined/brand/string/iso-8601.d.mts.map +1 -1
- package/dist/predefined/brand/string/iso-8601.mjs +4 -2
- package/dist/predefined/brand/string/iso-8601.mjs.map +1 -1
- package/dist/predefined/brand/string/json-string.d.mts +1 -1
- package/dist/predefined/brand/string/json-string.d.mts.map +1 -1
- package/dist/predefined/brand/string/json-string.mjs +5 -2
- package/dist/predefined/brand/string/json-string.mjs.map +1 -1
- package/dist/predefined/brand/string/non-empty-string.d.mts +5 -0
- package/dist/predefined/brand/string/non-empty-string.d.mts.map +1 -0
- package/dist/predefined/brand/string/non-empty-string.mjs +16 -0
- package/dist/predefined/brand/string/non-empty-string.mjs.map +1 -0
- package/dist/predefined/brand/string/uuid.d.mts +4 -4
- package/dist/predefined/brand/string/uuid.d.mts.map +1 -1
- package/dist/predefined/brand/string/uuid.mjs +1 -1
- package/dist/predefined/brand/string/uuid.mjs.map +1 -1
- package/dist/predefined/index.mjs +1 -0
- package/dist/predefined/index.mjs.map +1 -1
- package/dist/primitives/number.d.mts +60 -10
- package/dist/primitives/number.d.mts.map +1 -1
- package/dist/primitives/number.mjs +42 -65
- package/dist/primitives/number.mjs.map +1 -1
- package/dist/primitives/string.d.mts +20 -17
- package/dist/primitives/string.d.mts.map +1 -1
- package/dist/primitives/string.mjs +28 -62
- package/dist/primitives/string.mjs.map +1 -1
- package/package.json +27 -27
- package/src/predefined/brand/string/email.mts +7 -3
- package/src/predefined/brand/string/email.test.mts +3 -0
- package/src/predefined/brand/string/index.mts +1 -0
- package/src/predefined/brand/string/iso-8601.mts +7 -3
- package/src/predefined/brand/string/iso-8601.test.mts +3 -0
- package/src/predefined/brand/string/json-string.mts +8 -3
- package/src/predefined/brand/string/json-string.test.mts +3 -0
- package/src/predefined/brand/string/non-empty-string.mts +24 -0
- package/src/predefined/brand/string/non-empty-string.test.mts +54 -0
- package/src/predefined/brand/string/uuid.mts +9 -7
- package/src/predefined/brand/string/uuid.test.mts +3 -0
- package/src/primitives/number.mts +223 -125
- package/src/primitives/number.test.mts +12 -6
- package/src/primitives/string.mts +91 -155
- package/src/primitives/string.test.mts +50 -21
package/dist/entry-point.mjs
CHANGED
|
@@ -40,6 +40,7 @@ export { uint32 } from './predefined/brand/number/uint32.mjs';
|
|
|
40
40
|
export { email } from './predefined/brand/string/email.mjs';
|
|
41
41
|
export { iso8601 } from './predefined/brand/string/iso-8601.mjs';
|
|
42
42
|
export { jsonString } from './predefined/brand/string/json-string.mjs';
|
|
43
|
+
export { nonEmptyString } from './predefined/brand/string/non-empty-string.mjs';
|
|
43
44
|
export { uuid, uuidV4, uuidV6, uuidV7 } from './predefined/brand/string/uuid.mjs';
|
|
44
45
|
export { int8 } from './predefined/int8.mjs';
|
|
45
46
|
export { JsonObject, JsonPrimitive, JsonValue } from './predefined/json.mjs';
|
package/dist/entry-point.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-point.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entry-point.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.mjs
CHANGED
|
@@ -39,6 +39,7 @@ export { uint32 } from './predefined/brand/number/uint32.mjs';
|
|
|
39
39
|
export { email } from './predefined/brand/string/email.mjs';
|
|
40
40
|
export { iso8601 } from './predefined/brand/string/iso-8601.mjs';
|
|
41
41
|
export { jsonString } from './predefined/brand/string/json-string.mjs';
|
|
42
|
+
export { nonEmptyString } from './predefined/brand/string/non-empty-string.mjs';
|
|
42
43
|
export { uuid, uuidV4, uuidV6, uuidV7 } from './predefined/brand/string/uuid.mjs';
|
|
43
44
|
export { int8 } from './predefined/int8.mjs';
|
|
44
45
|
export { JsonObject, JsonPrimitive, JsonValue } from './predefined/json.mjs';
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -17,5 +17,6 @@ export { uint32 } from './number/uint32.mjs';
|
|
|
17
17
|
export { email } from './string/email.mjs';
|
|
18
18
|
export { iso8601 } from './string/iso-8601.mjs';
|
|
19
19
|
export { jsonString } from './string/json-string.mjs';
|
|
20
|
+
export { nonEmptyString } from './string/non-empty-string.mjs';
|
|
20
21
|
export { uuid, uuidV4, uuidV6, uuidV7 } from './string/uuid.mjs';
|
|
21
22
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Brand } from 'ts-type-forge';
|
|
2
2
|
import { type Type } from '../../../type.mjs';
|
|
3
|
-
export type Email = Brand<string, 'Email'>;
|
|
3
|
+
export type Email = Brand<string, 'Email' | 'NonEmptyString'>;
|
|
4
4
|
/**
|
|
5
5
|
* @link https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/email.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"email.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/email.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAG9C,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,GAAG,gBAAgB,CAAC,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,KAAK,GAChB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CACH,KACA,IAAI,CAAC,KAAK,CAOT,CAAC"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
|
+
import { brand } from '../../../brand/brand.mjs';
|
|
1
2
|
import 'ts-data-forge';
|
|
2
3
|
import '@sindresorhus/is';
|
|
3
4
|
import '../../../other-types/unknown.mjs';
|
|
4
|
-
import {
|
|
5
|
+
import { string } from '../../../primitives/string.mjs';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* @link https://html.spec.whatwg.org/multipage/input.html#valid-e-mail-address
|
|
8
9
|
*/
|
|
9
|
-
const email = (options) =>
|
|
10
|
+
const email = (options) => brand({
|
|
11
|
+
baseType: string(options?.defaultValue ?? defaultEmail),
|
|
10
12
|
is: (s) => regexpEmailAddress.test(s),
|
|
11
13
|
defaultValue: options?.defaultValue ?? defaultEmail,
|
|
14
|
+
brandKeys: ['Email', 'NonEmptyString'],
|
|
12
15
|
typeName: 'Email',
|
|
13
16
|
});
|
|
14
17
|
const defaultEmail = 'ts-f.o.r.t.r.e.s.s@gmail.com';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.mjs","sources":["../../../../src/predefined/brand/string/email.mts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"email.mjs","sources":["../../../../src/predefined/brand/string/email.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAQA;;AAEG;AACI,MAAM,KAAK,GAAG,CACnB,OAIC,KAED,KAAK,CAAC;IACJ,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,IAAI,YAAY,CAAC;IACvD,EAAE,EAAE,CAAC,CAAC,KAAiB,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC;AACjD,IAAA,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,YAAY;AACnD,IAAA,SAAS,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;AACtC,IAAA,QAAQ,EAAE,OAAO;AAClB,CAAA;AAEH,MAAM,YAAY,GAAG,8BAA8B;AAEnD,MAAM,kBAAkB;AACtB;AACA,uIAAuI;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/index.mts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/index.mts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,YAAY,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { email } from './email.mjs';
|
|
2
2
|
export { iso8601 } from './iso-8601.mjs';
|
|
3
3
|
export { jsonString } from './json-string.mjs';
|
|
4
|
+
export { nonEmptyString } from './non-empty-string.mjs';
|
|
4
5
|
export { uuid, uuidV4, uuidV6, uuidV7 } from './uuid.mjs';
|
|
5
6
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Brand } from 'ts-type-forge';
|
|
2
2
|
import { type Type, type TypeOf } from '../../../type.mjs';
|
|
3
|
-
export type Iso8601 = Brand<string, 'Iso8601'>;
|
|
3
|
+
export type Iso8601 = Brand<string, 'Iso8601' | 'NonEmptyString'>;
|
|
4
4
|
/**
|
|
5
5
|
* @link https://github.com/validatorjs/validator.js/tree/v13.1.17?tab=readme-ov-file#validators
|
|
6
6
|
* @link https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iso-8601.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/iso-8601.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAmB,MAAM,eAAe,CAAC;AAI5D,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"iso-8601.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/iso-8601.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAmB,MAAM,eAAe,CAAC;AAI5D,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3D,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,CAAC,CAAC;AAElE;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,sBAAsB,KAAG,IAAI,CAAC,OAAO,CAYtE,CAAC;AAEF,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe1B,CAAC;AAEH,KAAK,sBAAsB,GAAG,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
+
import { brand } from '../../../brand/brand.mjs';
|
|
1
2
|
import 'ts-data-forge';
|
|
2
3
|
import '@sindresorhus/is';
|
|
3
4
|
import '../../../other-types/unknown.mjs';
|
|
4
5
|
import { boolean } from '../../../primitives/boolean.mjs';
|
|
5
6
|
import { string } from '../../../primitives/string.mjs';
|
|
6
|
-
import { brandedString } from '../../../brand/branded-string.mjs';
|
|
7
7
|
import { record } from '../../../record/record.mjs';
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -14,9 +14,11 @@ import { record } from '../../../record/record.mjs';
|
|
|
14
14
|
const iso8601 = (options) => {
|
|
15
15
|
const filledOptions = ISO8601ValidatorOption.fill(options);
|
|
16
16
|
const is = isISO8601(filledOptions);
|
|
17
|
-
return
|
|
17
|
+
return brand({
|
|
18
|
+
baseType: string(filledOptions.defaultValue),
|
|
18
19
|
is,
|
|
19
20
|
defaultValue: filledOptions.defaultValue,
|
|
21
|
+
brandKeys: ['Iso8601', 'NonEmptyString'],
|
|
20
22
|
typeName: 'Iso8601',
|
|
21
23
|
});
|
|
22
24
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iso-8601.mjs","sources":["../../../../src/predefined/brand/string/iso-8601.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"iso-8601.mjs","sources":["../../../../src/predefined/brand/string/iso-8601.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { type Brand } from 'ts-type-forge';
|
|
2
2
|
import { type Type } from '../../../type.mjs';
|
|
3
|
-
export type JsonString = Brand<string, 'JsonString'>;
|
|
3
|
+
export type JsonString = Brand<string, 'JsonString' | 'NonEmptyString'>;
|
|
4
4
|
/**
|
|
5
5
|
* @link https://github.com/validatorjs/validator.js/tree/v13.1.17?tab=readme-ov-file#validators
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-string.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/json-string.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"json-string.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/json-string.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAI9C,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,UAAU,GACrB,UAAU,OAAO,CACf,QAAQ,CAAC;IACP,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CACH,KACA,IAAI,CAAC,UAAU,CAOd,CAAC"}
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { isNonNullObject } from 'ts-data-forge';
|
|
2
|
+
import { brand } from '../../../brand/brand.mjs';
|
|
2
3
|
import '@sindresorhus/is';
|
|
3
4
|
import '../../../other-types/unknown.mjs';
|
|
4
|
-
import {
|
|
5
|
+
import { string } from '../../../primitives/string.mjs';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* @link https://github.com/validatorjs/validator.js/tree/v13.1.17?tab=readme-ov-file#validators
|
|
8
9
|
*/
|
|
9
|
-
const jsonString = (options) =>
|
|
10
|
+
const jsonString = (options) => brand({
|
|
11
|
+
baseType: string(options?.defaultValue ?? defaultJsonString),
|
|
10
12
|
is: isJsonString,
|
|
11
13
|
defaultValue: options?.defaultValue ?? defaultJsonString,
|
|
14
|
+
brandKeys: ['JsonString', 'NonEmptyString'],
|
|
12
15
|
typeName: 'JsonString',
|
|
13
16
|
});
|
|
14
17
|
const defaultJsonString = '{}';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-string.mjs","sources":["../../../../src/predefined/brand/string/json-string.mts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"json-string.mjs","sources":["../../../../src/predefined/brand/string/json-string.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAUA;;AAEG;AACI,MAAM,UAAU,GAAG,CACxB,OAIC,KAED,KAAK,CAAC;IACJ,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,YAAY,IAAI,iBAAiB,CAAC;AAC5D,IAAA,EAAE,EAAE,YAAY;AAChB,IAAA,YAAY,EAAE,OAAO,EAAE,YAAY,IAAI,iBAAiB;AACxD,IAAA,SAAS,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;AAC3C,IAAA,QAAQ,EAAE,YAAY;AACvB,CAAA;AAEH,MAAM,iBAAiB,GAAG,IAAI;AAE9B,MAAM,YAAY,GAAG,CAAC,GAAW,KAAuB;AACtD,IAAA,IAAI;QACF,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzC;AAAE,IAAA,MAAM;AACN,QAAA,OAAO,KAAK;IACd;AACF,CAAC;;;;"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type NonEmptyString } from 'ts-type-forge';
|
|
2
|
+
import { type Type } from '../../../type.mjs';
|
|
3
|
+
export type { NonEmptyString } from 'ts-type-forge';
|
|
4
|
+
export declare const nonEmptyString: (defaultValue?: string) => Type<NonEmptyString>;
|
|
5
|
+
//# sourceMappingURL=non-empty-string.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"non-empty-string.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/non-empty-string.mts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEpD,eAAO,MAAM,cAAc,GACzB,eAAc,MAAY,KACzB,IAAI,CAAC,cAAc,CAOlB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { isNonEmptyString } from 'ts-data-forge';
|
|
2
|
+
import { brand } from '../../../brand/brand.mjs';
|
|
3
|
+
import '@sindresorhus/is';
|
|
4
|
+
import '../../../other-types/unknown.mjs';
|
|
5
|
+
import { string } from '../../../primitives/string.mjs';
|
|
6
|
+
|
|
7
|
+
const nonEmptyString = (defaultValue = ' ') => brand({
|
|
8
|
+
baseType: string(defaultValue),
|
|
9
|
+
is: isNonEmptyString,
|
|
10
|
+
defaultValue,
|
|
11
|
+
brandKeys: ['NonEmptyString'],
|
|
12
|
+
typeName: 'NonEmptyString',
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
export { nonEmptyString };
|
|
16
|
+
//# sourceMappingURL=non-empty-string.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"non-empty-string.mjs","sources":["../../../../src/predefined/brand/string/non-empty-string.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAQO,MAAM,cAAc,GAAG,CAC5B,YAAA,GAAuB,GAAG,KAE1B,KAAK,CAAC;AACJ,IAAA,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC;AAC9B,IAAA,EAAE,EAAE,gBAAgB;IACpB,YAAY;IACZ,SAAS,EAAE,CAAC,gBAAgB,CAAC;AAC7B,IAAA,QAAQ,EAAE,gBAAgB;AAC3B,CAAA;;;;"}
|
|
@@ -2,10 +2,10 @@ import { type Brand, type TypeEq, type UintRangeInclusive } from 'ts-type-forge'
|
|
|
2
2
|
import { type Type } from '../../../type.mjs';
|
|
3
3
|
export type UuidVersion = UintRangeInclusive<1, 8>;
|
|
4
4
|
export type UuidBaseString<V extends UuidVersion = UuidVersion> = `${string}-${string}-${V}${string}-${string}-${string}` | '00000000-0000-0000-0000-000000000000' | 'ffffffff-ffff-ffff-ffff-ffffffffffff';
|
|
5
|
-
export type Uuid = Brand<UuidBaseString, 'Uuid'>;
|
|
6
|
-
export type Uuid4 = Brand<UuidBaseString<4>, 'Uuid'>;
|
|
7
|
-
export type Uuid6 = Brand<UuidBaseString<6>, 'Uuid'>;
|
|
8
|
-
export type Uuid7 = Brand<UuidBaseString<7>, 'Uuid'>;
|
|
5
|
+
export type Uuid = Brand<UuidBaseString, 'Uuid' | 'NonEmptyString'>;
|
|
6
|
+
export type Uuid4 = Brand<UuidBaseString<4>, 'Uuid' | 'NonEmptyString'>;
|
|
7
|
+
export type Uuid6 = Brand<UuidBaseString<6>, 'Uuid' | 'NonEmptyString'>;
|
|
8
|
+
export type Uuid7 = Brand<UuidBaseString<7>, 'Uuid' | 'NonEmptyString'>;
|
|
9
9
|
/**
|
|
10
10
|
* @link https://github.com/validatorjs/validator.js/tree/v13.1.17?tab=readme-ov-file#validators
|
|
11
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uuid.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/uuid.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,MAAM,EACX,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnD,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAC1D,GAAG,MAAM,IAAI,MAAM,IAAI,CAAC,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,GACvD,sCAAsC,GACtC,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"uuid.d.mts","sourceRoot":"","sources":["../../../../src/predefined/brand/string/uuid.mts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,MAAM,EACX,KAAK,kBAAkB,EACxB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAE9C,MAAM,MAAM,WAAW,GAAG,kBAAkB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAEnD,MAAM,MAAM,cAAc,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,IAC1D,GAAG,MAAM,IAAI,MAAM,IAAI,CAAC,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,EAAE,GACvD,sCAAsC,GACtC,sCAAsC,CAAC;AAI3C,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,cAAc,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;AAEpE,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;AAExE,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;AAExE,MAAM,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;AAExE;;GAEG;AACH,eAAO,MAAM,IAAI,GAAI,CAAC,SAAS,WAAW,GAAG,2BAA2B,EACtE,UAAU,mBAAmB,CAAC,CAAC,CAAC,KAC/B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAyBhB,CAAC;AAEF,KAAK,2BAA2B,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,OAAO,CAAC;AAEnE,KAAK,MAAM,CAAC,CAAC,SAAS,WAAW,GAAG,2BAA2B,IAC7D,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACrB,KAAK,GACL,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACvB,KAAK,GACL,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,IAAI,GACvB,KAAK,GACL,IAAI,CAAC;AAEf,eAAO,MAAM,MAAM,GAAI,eAAe,MAAM,KAAG,IAAI,CAAC,KAAK,CAIrD,CAAC;AAEL,eAAO,MAAM,MAAM,GAAI,eAAe,MAAM,KAAG,IAAI,CAAC,KAAK,CAIrD,CAAC;AAEL,eAAO,MAAM,MAAM,GAAI,eAAe,MAAM,KAAG,IAAI,CAAC,KAAK,CAIrD,CAAC;AAEL,KAAK,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,2BAA2B,IAC1E,OAAO,CACL,QAAQ,CAAC;IACP;;OAEG;IACH,OAAO,EAAE,CAAC,CAAC;IAEX,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC,CACH,CAAC"}
|
|
@@ -17,7 +17,7 @@ const uuid = (options) => {
|
|
|
17
17
|
is: (s) => uuidDef[version](s),
|
|
18
18
|
// eslint-disable-next-line total-functions/no-unsafe-type-assertion
|
|
19
19
|
defaultValue: defaultValue,
|
|
20
|
-
brandKeys: ['Uuid'],
|
|
20
|
+
brandKeys: ['Uuid', 'NonEmptyString'],
|
|
21
21
|
typeName: options?.typeName ??
|
|
22
22
|
(version === 4
|
|
23
23
|
? 'UuidV4'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uuid.mjs","sources":["../../../../src/predefined/brand/string/uuid.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"uuid.mjs","sources":["../../../../src/predefined/brand/string/uuid.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export { uint32 } from './brand/number/uint32.mjs';
|
|
|
17
17
|
export { email } from './brand/string/email.mjs';
|
|
18
18
|
export { iso8601 } from './brand/string/iso-8601.mjs';
|
|
19
19
|
export { jsonString } from './brand/string/json-string.mjs';
|
|
20
|
+
export { nonEmptyString } from './brand/string/non-empty-string.mjs';
|
|
20
21
|
export { uuid, uuidV4, uuidV6, uuidV7 } from './brand/string/uuid.mjs';
|
|
21
22
|
export { int8 } from './int8.mjs';
|
|
22
23
|
export { JsonObject, JsonPrimitive, JsonValue } from './json.mjs';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { type Brand, type IsNever } from 'ts-type-forge';
|
|
1
2
|
import { type Type } from '../type.mjs';
|
|
2
3
|
export declare function number(defaultValue?: number): Type<number>;
|
|
3
|
-
export declare function number<N extends number, const C extends Constraints>(defaultValue: N & DefaultValueType<N, C>, constraints: C): Type<
|
|
4
|
+
export declare function number<N extends number, const C extends Constraints>(defaultValue: N & DefaultValueType<N, C>, constraints: C): Type<ConstraintsToResultType<C>>;
|
|
4
5
|
type Constraints = Partial<Readonly<{
|
|
5
6
|
gt: number;
|
|
6
7
|
gte: number;
|
|
@@ -8,30 +9,79 @@ type Constraints = Partial<Readonly<{
|
|
|
8
9
|
lt: number;
|
|
9
10
|
lte: number;
|
|
10
11
|
max: number;
|
|
11
|
-
negative: boolean;
|
|
12
|
-
nonNegative: boolean;
|
|
13
|
-
positive: boolean;
|
|
14
|
-
nonPositive: boolean;
|
|
15
12
|
multipleOf: number;
|
|
16
13
|
step: number;
|
|
14
|
+
finite: true;
|
|
15
|
+
int: true;
|
|
16
|
+
nonzero: true;
|
|
17
|
+
negative: true;
|
|
18
|
+
nonNegative: true;
|
|
19
|
+
positive: true;
|
|
20
|
+
nonPositive: true;
|
|
17
21
|
}>>;
|
|
18
|
-
type DefaultValueType<N extends number,
|
|
19
|
-
type
|
|
22
|
+
type DefaultValueType<N extends number, C extends Constraints> = DefaultValueWhenNonZeroIsOn<N, C> & DefaultValueWhenNegativeIsOn<N, C> & DefaultValueWhenNonNegativeIsOn<N, C> & DefaultValueWhenPositiveIsOn<N, C> & DefaultValueWhenNonPositiveIsOn<N, C>;
|
|
23
|
+
type ConstraintsToResultType<C extends Constraints> = ConstraintsToResultHelperType<ConstraintsToResultBrandKeys<C>>;
|
|
24
|
+
type ConstraintsToResultHelperType<R extends Readonly<{
|
|
25
|
+
brandKeys: string;
|
|
26
|
+
brandFalseKeys: string;
|
|
27
|
+
}>> = IsNever<R> extends true ? number : Brand<number, R['brandKeys'], R['brandFalseKeys']>;
|
|
28
|
+
type ConstraintsToResultBrandKeys<C extends Constraints> = (C extends Readonly<{
|
|
29
|
+
int: true;
|
|
30
|
+
}> ? Readonly<{
|
|
31
|
+
brandKeys: 'Int' | 'Finite';
|
|
32
|
+
brandFalseKeys: 'NaNValue';
|
|
33
|
+
}> : never) | (C extends Readonly<{
|
|
34
|
+
finite: true;
|
|
35
|
+
}> ? Readonly<{
|
|
36
|
+
brandKeys: 'Finite';
|
|
37
|
+
brandFalseKeys: 'NaNValue';
|
|
38
|
+
}> : never) | (C extends Readonly<{
|
|
39
|
+
nonzero: true;
|
|
40
|
+
}> ? Readonly<{
|
|
41
|
+
brandKeys: '!=0';
|
|
42
|
+
brandFalseKeys: 'NaNValue';
|
|
43
|
+
}> : never) | (C extends Readonly<{
|
|
44
|
+
negative: true;
|
|
45
|
+
}> ? Readonly<{
|
|
46
|
+
brandKeys: '!=0' | '< 2^15' | '< 2^16' | '< 2^31' | '< 2^32';
|
|
47
|
+
brandFalseKeys: '>=0' | 'NaNValue';
|
|
48
|
+
}> : never) | (C extends Readonly<{
|
|
49
|
+
positive: true;
|
|
50
|
+
}> ? Readonly<{
|
|
51
|
+
brandKeys: '>=0' | '!=0' | '> -2^16' | '> -2^32' | '>= -2^15' | '>= -2^31';
|
|
52
|
+
brandFalseKeys: 'NaNValue';
|
|
53
|
+
}> : never) | (C extends Readonly<{
|
|
54
|
+
nonNegative: true;
|
|
55
|
+
}> ? Readonly<{
|
|
56
|
+
brandKeys: '>=0' | '> -2^16' | '> -2^32' | '>= -2^15' | '>= -2^31';
|
|
57
|
+
brandFalseKeys: 'NaNValue';
|
|
58
|
+
}> : never) | (C extends Readonly<{
|
|
59
|
+
nonPositive: true;
|
|
60
|
+
}> ? Readonly<{
|
|
61
|
+
brandKeys: '< 2^15' | '< 2^16' | '< 2^31' | '< 2^32';
|
|
62
|
+
brandFalseKeys: '>=0' | 'NaNValue';
|
|
63
|
+
}> : never);
|
|
64
|
+
type DefaultValueWhenNonZeroIsOn<N extends number, C extends Constraints> = C extends Readonly<{
|
|
65
|
+
nonzero: true;
|
|
66
|
+
}> ? NonZeroNumber<N> : number;
|
|
67
|
+
type DefaultValueWhenNegativeIsOn<N extends number, C extends Constraints> = C extends Readonly<{
|
|
20
68
|
negative: true;
|
|
21
69
|
}> ? NegativeNumber<N> : number;
|
|
22
|
-
type DefaultValueWhenNonNegativeIsOn<N extends number,
|
|
70
|
+
type DefaultValueWhenNonNegativeIsOn<N extends number, C extends Constraints> = C extends Readonly<{
|
|
23
71
|
nonNegative: true;
|
|
24
72
|
}> ? NonNegativeNumber<N> : number;
|
|
25
|
-
type DefaultValueWhenPositiveIsOn<N extends number,
|
|
73
|
+
type DefaultValueWhenPositiveIsOn<N extends number, C extends Constraints> = C extends Readonly<{
|
|
26
74
|
positive: true;
|
|
27
75
|
}> ? PositiveNumber<N> : number;
|
|
28
|
-
type DefaultValueWhenNonPositiveIsOn<N extends number,
|
|
76
|
+
type DefaultValueWhenNonPositiveIsOn<N extends number, C extends Constraints> = C extends Readonly<{
|
|
29
77
|
nonPositive: true;
|
|
30
78
|
}> ? NonPositiveNumber<N> : number;
|
|
79
|
+
type NonZeroNumber<N extends number> = number extends N ? number : IsNonZero<N> extends true ? N : never;
|
|
31
80
|
type NegativeNumber<N extends number> = number extends N ? number : IsNegative<N> extends true ? N : never;
|
|
32
81
|
type NonNegativeNumber<N extends number> = number extends N ? number : IsNonNegative<N> extends true ? N : never;
|
|
33
82
|
type PositiveNumber<N extends number> = number extends N ? number : IsPositive<N> extends true ? N : never;
|
|
34
83
|
type NonPositiveNumber<N extends number> = number extends N ? number : IsNonPositive<N> extends true ? N : never;
|
|
84
|
+
type IsNonZero<N extends number> = N extends 0 ? false : true;
|
|
35
85
|
type IsNegative<N extends number> = `${N}` extends `-${string}` ? true : false;
|
|
36
86
|
type IsNonNegative<N extends number> = IsNegative<N> extends true ? false : true;
|
|
37
87
|
type IsPositive<N extends number> = N extends 0 ? false : IsNonNegative<N>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number.d.mts","sourceRoot":"","sources":["../../src/primitives/number.mts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"number.d.mts","sourceRoot":"","sources":["../../src/primitives/number.mts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Arr, isNumber } from 'ts-data-forge';
|
|
1
|
+
import { Arr, Result, isNumber, Int } from 'ts-data-forge';
|
|
2
2
|
import { createPrimitiveType } from '../utils/create-primitive-type.mjs';
|
|
3
3
|
import '@sindresorhus/is';
|
|
4
4
|
import { refine } from '../other-types/refine.mjs';
|
|
@@ -14,91 +14,68 @@ function number(defaultValue = 0, constraints) {
|
|
|
14
14
|
Arr.isArrayOfLength(Object.keys(constraints), 0)) {
|
|
15
15
|
return baseType;
|
|
16
16
|
}
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
const constraintsPredicate = createConstraintsPredicate(constraints);
|
|
18
|
+
const defaultValueConstraintsCheck = constraintsPredicate(defaultValue);
|
|
19
|
+
if (Result.isErr(defaultValueConstraintsCheck)) {
|
|
20
|
+
throw new Error(defaultValueConstraintsCheck.value);
|
|
19
21
|
}
|
|
20
|
-
if (constraints.gte !== undefined && !(defaultValue >= constraints.gte)) {
|
|
21
|
-
throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint gte = ${constraints.gte}`);
|
|
22
|
-
}
|
|
23
|
-
if (constraints.min !== undefined && !(defaultValue >= constraints.min)) {
|
|
24
|
-
throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint min = ${constraints.min}`);
|
|
25
|
-
}
|
|
26
|
-
if (constraints.lt !== undefined && !(defaultValue < constraints.lt)) {
|
|
27
|
-
throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint lt = ${constraints.lt}`);
|
|
28
|
-
}
|
|
29
|
-
if (constraints.lte !== undefined && !(defaultValue <= constraints.lte)) {
|
|
30
|
-
throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint lte = ${constraints.lte}`);
|
|
31
|
-
}
|
|
32
|
-
if (constraints.max !== undefined && !(defaultValue <= constraints.max)) {
|
|
33
|
-
throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint max = ${constraints.max}`);
|
|
34
|
-
}
|
|
35
|
-
if (constraints.positive === true && !(defaultValue > 0)) {
|
|
36
|
-
throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint positive = true`);
|
|
37
|
-
}
|
|
38
|
-
if (constraints.nonNegative === true && !(defaultValue >= 0)) {
|
|
39
|
-
throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint nonNegative = true`);
|
|
40
|
-
}
|
|
41
|
-
if (constraints.negative === true && !(defaultValue < 0)) {
|
|
42
|
-
throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint negative = true`);
|
|
43
|
-
}
|
|
44
|
-
if (constraints.nonPositive === true && !(defaultValue <= 0)) {
|
|
45
|
-
throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint nonPositive = true`);
|
|
46
|
-
}
|
|
47
|
-
if (constraints.multipleOf !== undefined &&
|
|
48
|
-
defaultValue % constraints.multipleOf !== 0) {
|
|
49
|
-
throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint multipleOf = ${constraints.multipleOf}`);
|
|
50
|
-
}
|
|
51
|
-
if (constraints.step !== undefined && defaultValue % constraints.step !== 0) {
|
|
52
|
-
throw new Error(`defaultValue ${defaultValue} for number does not satisfy the constraint step = ${constraints.step}`);
|
|
53
|
-
}
|
|
54
|
-
const satisfiesConstraints = createConstraintsPredicate(constraints);
|
|
55
22
|
return refine({
|
|
56
23
|
baseType,
|
|
57
24
|
defaultValue,
|
|
58
|
-
is: (value) =>
|
|
25
|
+
is: (value) => Result.isOk(constraintsPredicate(value)),
|
|
59
26
|
typeName: 'number',
|
|
60
27
|
});
|
|
61
28
|
}
|
|
62
29
|
const createConstraintsPredicate = (constraints) => (value) => {
|
|
63
|
-
|
|
64
|
-
|
|
30
|
+
const { gt, gte, lt, lte, min, max, multipleOf, step, finite, int, nonzero, positive, nonNegative, negative, nonPositive, ..._rest } = constraints;
|
|
31
|
+
if (gt !== undefined && !(value > gt)) {
|
|
32
|
+
return Result.err(errorMessage(value, 'gt', gt));
|
|
33
|
+
}
|
|
34
|
+
if (gte !== undefined && !(value >= gte)) {
|
|
35
|
+
return Result.err(errorMessage(value, 'gte', gte));
|
|
36
|
+
}
|
|
37
|
+
if (min !== undefined && !(value >= min)) {
|
|
38
|
+
return Result.err(errorMessage(value, 'min', min));
|
|
39
|
+
}
|
|
40
|
+
if (lt !== undefined && !(value < lt)) {
|
|
41
|
+
return Result.err(errorMessage(value, 'lt', lt));
|
|
65
42
|
}
|
|
66
|
-
if (
|
|
67
|
-
return
|
|
43
|
+
if (lte !== undefined && !(value <= lte)) {
|
|
44
|
+
return Result.err(errorMessage(value, 'lte', lte));
|
|
68
45
|
}
|
|
69
|
-
if (
|
|
70
|
-
return
|
|
46
|
+
if (max !== undefined && !(value <= max)) {
|
|
47
|
+
return Result.err(errorMessage(value, 'max', max));
|
|
71
48
|
}
|
|
72
|
-
if (
|
|
73
|
-
return
|
|
49
|
+
if (multipleOf !== undefined && value % multipleOf !== 0) {
|
|
50
|
+
return Result.err(errorMessage(value, 'multipleOf', multipleOf));
|
|
74
51
|
}
|
|
75
|
-
if (
|
|
76
|
-
return
|
|
52
|
+
if (step !== undefined && value % step !== 0) {
|
|
53
|
+
return Result.err(errorMessage(value, 'step', step));
|
|
77
54
|
}
|
|
78
|
-
if (
|
|
79
|
-
return
|
|
55
|
+
if (nonzero === true && !(value !== 0)) {
|
|
56
|
+
return Result.err(errorMessage(value, 'nonzero', true));
|
|
80
57
|
}
|
|
81
|
-
if (
|
|
82
|
-
return
|
|
58
|
+
if (positive === true && !(value > 0)) {
|
|
59
|
+
return Result.err(errorMessage(value, 'positive', true));
|
|
83
60
|
}
|
|
84
|
-
if (
|
|
85
|
-
return
|
|
61
|
+
if (nonNegative === true && !(value >= 0)) {
|
|
62
|
+
return Result.err(errorMessage(value, 'nonNegative', true));
|
|
86
63
|
}
|
|
87
|
-
if (
|
|
88
|
-
return
|
|
64
|
+
if (negative === true && !(value < 0)) {
|
|
65
|
+
return Result.err(errorMessage(value, 'negative', true));
|
|
89
66
|
}
|
|
90
|
-
if (
|
|
91
|
-
return
|
|
67
|
+
if (nonPositive === true && !(value <= 0)) {
|
|
68
|
+
return Result.err(errorMessage(value, 'nonPositive', true));
|
|
92
69
|
}
|
|
93
|
-
if (
|
|
94
|
-
|
|
95
|
-
return false;
|
|
70
|
+
if (int === true && !Int.is(value)) {
|
|
71
|
+
return Result.err(errorMessage(value, 'int', true));
|
|
96
72
|
}
|
|
97
|
-
if (
|
|
98
|
-
return
|
|
73
|
+
if (finite === true && !Number.isFinite(value)) {
|
|
74
|
+
return Result.err(errorMessage(value, 'finite', true));
|
|
99
75
|
}
|
|
100
|
-
return true;
|
|
76
|
+
return Result.ok(true);
|
|
101
77
|
};
|
|
78
|
+
const errorMessage = (value, constraintName, constraintValue) => `defaultValue [${value}] for number does not satisfy the constraint ${constraintName} = ${constraintValue}`;
|
|
102
79
|
|
|
103
80
|
export { number };
|
|
104
81
|
//# sourceMappingURL=number.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number.mjs","sources":["../../src/primitives/number.mts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"number.mjs","sources":["../../src/primitives/number.mts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|