11local M = {}
22
3+ --- @type fun ( min : integer ): fun ( arg : string ): boolean
34function M .min_length (min )
45 return function (arg )
56 return # arg >= min
67 end
78end
89
10+ --- @type fun ( arg : string ): boolean
911M .is_not_empty = M .min_length (1 )
1012
1113function M .max_length (max )
@@ -14,32 +16,21 @@ function M.max_length(max)
1416 end
1517end
1618
19+ --- @type fun ( pattern : string ): fun ( arg : string ): boolean
1720function M .contains (pattern )
1821 return function (arg )
19- return string.find (arg , pattern )
22+ return string.find (arg , pattern ) ~= nil
2023 end
2124end
2225
26+ --- @type fun ( value : any ): fun ( arg : any ): boolean
2327function M .equals (value )
2428 return function (arg )
2529 return vim .deep_equal (value , arg )
2630 end
2731end
2832
29- function M .compose (...)
30- local tbl = { ... }
31-
32- return function (value )
33- for _ , fn in ipairs (tbl ) do
34- if not fn (value ) then
35- return false
36- end
37- end
38-
39- return true
40- end
41- end
42-
33+ --- @type fun ( ... : fun ( arg : any ): boolean ): fun ( arg : any ): boolean
4334function M .none (...)
4435 local validators = { ... }
4536 return function (value )
@@ -52,6 +43,7 @@ function M.none(...)
5243 end
5344end
5445
46+ --- @type fun ( ... : fun ( arg : any ): boolean ): fun ( arg : any ): boolean
5547function M .any (...)
5648 local validators = { ... }
5749 return function (value )
@@ -64,7 +56,8 @@ function M.any(...)
6456 end
6557end
6658
67- function M .all (...)
59+ --- @type fun ( ... : fun ( arg : any ): boolean ): fun ( arg : any ): boolean
60+ local function all (...)
6861 local validators = { ... }
6962
7063 return function (value )
@@ -78,4 +71,8 @@ function M.all(...)
7871 end
7972end
8073
74+ M .all = all
75+
76+ M .compose = all
77+
8178return M
0 commit comments