@thisisagile/easy 8.8.0 → 8.9.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.
@@ -14,4 +14,6 @@ export declare const lt: (limit: number, message?: Text | undefined) => Property
14
14
  export declare const lte: (limit: number, message?: Text | undefined) => PropertyDecorator;
15
15
  export declare const past: (message?: Text | undefined) => PropertyDecorator;
16
16
  export declare const future: (message?: Text | undefined) => PropertyDecorator;
17
+ export declare const minLength: (length: number, message?: Text | undefined) => PropertyDecorator;
18
+ export declare const maxLength: (length: number, message?: Text | undefined) => PropertyDecorator;
17
19
  export declare const rule: (message?: Text | undefined) => PropertyDecorator;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.rule = exports.future = exports.past = exports.lte = exports.lt = exports.gte = exports.gt = exports.inList = exports.includes = exports.optional = exports.valid = exports.notEmpty = exports.required = exports.defined = exports.constraint = void 0;
3
+ exports.rule = exports.maxLength = exports.minLength = exports.future = exports.past = exports.lte = exports.lt = exports.gte = exports.gt = exports.inList = exports.includes = exports.optional = exports.valid = exports.notEmpty = exports.required = exports.defined = exports.constraint = void 0;
4
4
  const types_1 = require("../types");
5
5
  const Validate_1 = require("./Validate");
6
6
  const constraint = (c, message) => (subject, property) => {
@@ -36,6 +36,16 @@ const past = (message) => (0, exports.constraint)(v => (0, types_1.inPast)(v), m
36
36
  exports.past = past;
37
37
  const future = (message) => (0, exports.constraint)(v => (0, types_1.inFuture)(v), message ?? 'Value {actual} must lay in the future.');
38
38
  exports.future = future;
39
+ const minLength = (length, message) => (0, exports.constraint)(v => (0, types_1.tryTo)(() => v)
40
+ .is.defined()
41
+ .map(v => (0, types_1.text)(v).toString().length >= length)
42
+ .orElse(true), message ?? `Value {actual} must be at least '${length}' characters long.`);
43
+ exports.minLength = minLength;
44
+ const maxLength = (length, message) => (0, exports.constraint)(v => (0, types_1.tryTo)(() => v)
45
+ .is.defined()
46
+ .map(v => (0, types_1.text)(v).toString().length <= length)
47
+ .orElse(true), message ?? `Value {actual} cannot be longer than '${length}' characters.`);
48
+ exports.maxLength = maxLength;
39
49
  const rule = (message) => (0, exports.constraint)(v => ((0, types_1.isFunction)(v) ? v() : false), message ?? `Value {actual} must be true`);
40
50
  exports.rule = rule;
41
51
  //# sourceMappingURL=Contraints.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Contraints.js","sourceRoot":"","sources":["../../src/validation/Contraints.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Contraints.js","sourceRoot":"","sources":["../../src/validation/Contraints.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thisisagile/easy",
3
- "version": "8.8.0",
3
+ "version": "8.9.0",
4
4
  "description": "Straightforward library for building domain-driven microservice architectures",
5
5
  "author": "Sander Hoogendoorn",
6
6
  "license": "MIT",
@@ -31,7 +31,7 @@
31
31
  "access": "public"
32
32
  },
33
33
  "devDependencies": {
34
- "@thisisagile/easy-test": "8.8.0",
34
+ "@thisisagile/easy-test": "8.9.0",
35
35
  "@types/form-urlencoded": "^4.4.0",
36
36
  "@types/jsonwebtoken": "^8.5.6",
37
37
  "@types/validator": "^13.7.0"
@@ -1,4 +1,4 @@
1
- import { Func, inFuture, inPast, isDefined, isFunction, isIn, isNotEmpty, isString, List, meta, Results, Text, toList } from '../types';
1
+ import { Func, inFuture, inPast, isDefined, isFunction, isIn, isNotEmpty, isString, List, meta, Results, text, Text, toList, tryTo } from '../types';
2
2
  import { validate, Validator } from './Validate';
3
3
 
4
4
  export type Constraint = Func<boolean | Results, any>;
@@ -43,5 +43,25 @@ export const past = (message?: Text): PropertyDecorator => constraint(v => inPas
43
43
 
44
44
  export const future = (message?: Text): PropertyDecorator => constraint(v => inFuture(v), message ?? 'Value {actual} must lay in the future.');
45
45
 
46
+ export const minLength = (length: number, message?: Text): PropertyDecorator =>
47
+ constraint(
48
+ v =>
49
+ tryTo(() => v)
50
+ .is.defined()
51
+ .map(v => text(v).toString().length >= length)
52
+ .orElse(true) as boolean,
53
+ message ?? `Value {actual} must be at least '${length}' characters long.`
54
+ );
55
+
56
+ export const maxLength = (length: number, message?: Text): PropertyDecorator =>
57
+ constraint(
58
+ v =>
59
+ tryTo(() => v)
60
+ .is.defined()
61
+ .map(v => text(v).toString().length <= length)
62
+ .orElse(true) as boolean,
63
+ message ?? `Value {actual} cannot be longer than '${length}' characters.`
64
+ );
65
+
46
66
  export const rule = (message?: Text): PropertyDecorator =>
47
67
  constraint(v => (isFunction(v) ? (v() as boolean | Results) : false), message ?? `Value {actual} must be true`);