@palmares/schemas 0.1.24 → 0.1.26

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.
Files changed (305) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/src/adapter/fields/array.cjs +96 -0
  3. package/dist/src/adapter/fields/array.d.ts.map +1 -0
  4. package/dist/src/adapter/fields/array.js +70 -0
  5. package/dist/src/adapter/fields/boolean.cjs +102 -0
  6. package/dist/src/adapter/fields/boolean.d.ts.map +1 -0
  7. package/dist/src/adapter/fields/boolean.js +76 -0
  8. package/dist/src/adapter/fields/datetime.cjs +102 -0
  9. package/dist/src/adapter/fields/datetime.d.ts.map +1 -0
  10. package/dist/src/adapter/fields/datetime.js +76 -0
  11. package/dist/src/adapter/fields/index.cjs +87 -0
  12. package/dist/src/adapter/fields/index.d.ts.map +1 -0
  13. package/dist/src/adapter/fields/index.js +61 -0
  14. package/dist/src/adapter/fields/number.cjs +102 -0
  15. package/dist/src/adapter/fields/number.d.ts.map +1 -0
  16. package/dist/src/adapter/fields/number.js +76 -0
  17. package/dist/src/adapter/fields/object.cjs +108 -0
  18. package/dist/src/adapter/fields/object.d.ts.map +1 -0
  19. package/dist/src/adapter/fields/object.js +82 -0
  20. package/dist/src/adapter/fields/string.cjs +102 -0
  21. package/dist/src/adapter/fields/string.d.ts.map +1 -0
  22. package/dist/src/adapter/fields/string.js +76 -0
  23. package/dist/src/adapter/fields/union.cjs +102 -0
  24. package/dist/src/adapter/fields/union.d.ts.map +1 -0
  25. package/dist/src/adapter/fields/union.js +76 -0
  26. package/dist/src/adapter/index.cjs +65 -0
  27. package/dist/src/adapter/index.d.ts.map +1 -0
  28. package/dist/src/adapter/index.js +40 -0
  29. package/dist/src/adapter/types.cjs +18 -0
  30. package/dist/src/adapter/types.d.ts.map +1 -0
  31. package/dist/src/adapter/types.js +0 -0
  32. package/dist/src/compile.cjs +59 -0
  33. package/dist/src/compile.d.ts.map +1 -0
  34. package/dist/src/compile.js +36 -0
  35. package/dist/src/conf.cjs +53 -0
  36. package/dist/src/conf.d.ts.map +1 -0
  37. package/dist/src/conf.js +27 -0
  38. package/dist/src/constants.cjs +40 -0
  39. package/dist/src/constants.d.ts.map +1 -0
  40. package/dist/src/constants.js +14 -0
  41. package/dist/src/domain.cjs +63 -0
  42. package/dist/src/domain.d.ts.map +1 -0
  43. package/dist/src/domain.js +40 -0
  44. package/dist/src/exceptions.cjs +58 -0
  45. package/dist/src/exceptions.d.ts.map +1 -0
  46. package/dist/src/exceptions.js +33 -0
  47. package/dist/src/index.cjs +6520 -0
  48. package/dist/src/index.d.ts.map +1 -0
  49. package/dist/src/index.js +6456 -0
  50. package/dist/src/middleware.cjs +58 -0
  51. package/dist/src/middleware.d.ts.map +1 -0
  52. package/dist/src/middleware.js +35 -0
  53. package/dist/src/model.cjs +6003 -0
  54. package/dist/src/model.d.ts.map +1 -0
  55. package/dist/src/model.js +5978 -0
  56. package/dist/src/parsers/convert-from-number.cjs +34 -0
  57. package/dist/src/parsers/convert-from-number.d.ts.map +1 -0
  58. package/dist/src/parsers/convert-from-number.js +11 -0
  59. package/dist/src/parsers/convert-from-string.cjs +40 -0
  60. package/dist/src/parsers/convert-from-string.d.ts.map +1 -0
  61. package/dist/src/parsers/convert-from-string.js +17 -0
  62. package/dist/src/parsers/index.cjs +50 -0
  63. package/dist/src/parsers/index.d.ts.map +1 -0
  64. package/dist/src/parsers/index.js +24 -0
  65. package/dist/src/schema/array.cjs +1863 -0
  66. package/dist/src/schema/array.d.ts.map +1 -0
  67. package/dist/src/schema/array.js +1837 -0
  68. package/dist/src/schema/boolean.cjs +1800 -0
  69. package/dist/src/schema/boolean.d.ts.map +1 -0
  70. package/dist/src/schema/boolean.js +1774 -0
  71. package/dist/src/schema/datetime.cjs +1789 -0
  72. package/dist/src/schema/datetime.d.ts.map +1 -0
  73. package/dist/src/schema/datetime.js +1763 -0
  74. package/dist/src/schema/index.cjs +2026 -0
  75. package/dist/src/schema/index.d.ts.map +1 -0
  76. package/dist/src/schema/index.js +2001 -0
  77. package/dist/src/schema/number.cjs +2026 -0
  78. package/dist/src/schema/number.d.ts.map +1 -0
  79. package/dist/src/schema/number.js +2000 -0
  80. package/dist/src/schema/object.cjs +1795 -0
  81. package/dist/src/schema/object.d.ts.map +1 -0
  82. package/dist/src/schema/object.js +1769 -0
  83. package/dist/src/schema/schema.cjs +844 -0
  84. package/dist/src/schema/schema.d.ts.map +1 -0
  85. package/dist/src/schema/schema.js +818 -0
  86. package/dist/src/schema/string.cjs +2126 -0
  87. package/dist/src/schema/string.d.ts.map +1 -0
  88. package/dist/src/schema/string.js +2100 -0
  89. package/dist/src/schema/types.cjs +18 -0
  90. package/dist/src/schema/types.d.ts.map +1 -0
  91. package/dist/src/schema/types.js +0 -0
  92. package/dist/src/schema/union.cjs +1737 -0
  93. package/dist/src/schema/union.d.ts.map +1 -0
  94. package/dist/src/schema/union.js +1711 -0
  95. package/dist/src/types.cjs +18 -0
  96. package/dist/src/types.d.ts.map +1 -0
  97. package/dist/src/types.js +0 -0
  98. package/dist/src/utils.cjs +477 -0
  99. package/dist/src/utils.d.ts.map +1 -0
  100. package/dist/src/utils.js +445 -0
  101. package/dist/src/validators/array.cjs +176 -0
  102. package/dist/src/validators/array.d.ts.map +1 -0
  103. package/dist/src/validators/array.js +150 -0
  104. package/dist/src/validators/boolean.cjs +71 -0
  105. package/dist/src/validators/boolean.d.ts.map +1 -0
  106. package/dist/src/validators/boolean.js +47 -0
  107. package/dist/src/validators/datetime.cjs +129 -0
  108. package/dist/src/validators/datetime.d.ts.map +1 -0
  109. package/dist/src/validators/datetime.js +103 -0
  110. package/dist/src/validators/number.cjs +194 -0
  111. package/dist/src/validators/number.d.ts.map +1 -0
  112. package/dist/src/validators/number.js +166 -0
  113. package/dist/src/validators/object.cjs +69 -0
  114. package/dist/src/validators/object.d.ts.map +1 -0
  115. package/dist/src/validators/object.js +46 -0
  116. package/dist/src/validators/schema.cjs +158 -0
  117. package/dist/src/validators/schema.d.ts.map +1 -0
  118. package/dist/src/validators/schema.js +132 -0
  119. package/dist/src/validators/string.cjs +255 -0
  120. package/dist/src/validators/string.d.ts.map +1 -0
  121. package/dist/src/validators/string.js +224 -0
  122. package/dist/src/validators/types.cjs +18 -0
  123. package/dist/src/validators/types.d.ts.map +1 -0
  124. package/dist/src/validators/types.js +0 -0
  125. package/dist/src/validators/union.cjs +69 -0
  126. package/dist/src/validators/union.d.ts.map +1 -0
  127. package/dist/src/validators/union.js +46 -0
  128. package/dist/src/validators/utils.cjs +165 -0
  129. package/dist/src/validators/utils.d.ts.map +1 -0
  130. package/dist/src/validators/utils.js +142 -0
  131. package/dist/tsconfig.types.tsbuildinfo +1 -0
  132. package/package.json +15 -23
  133. package/dist/cjs/src/adapter/fields/array.js +0 -152
  134. package/dist/cjs/src/adapter/fields/boolean.js +0 -162
  135. package/dist/cjs/src/adapter/fields/datetime.js +0 -162
  136. package/dist/cjs/src/adapter/fields/index.js +0 -311
  137. package/dist/cjs/src/adapter/fields/number.js +0 -162
  138. package/dist/cjs/src/adapter/fields/object.js +0 -171
  139. package/dist/cjs/src/adapter/fields/string.js +0 -162
  140. package/dist/cjs/src/adapter/fields/union.js +0 -162
  141. package/dist/cjs/src/adapter/index.js +0 -201
  142. package/dist/cjs/src/adapter/types.js +0 -4
  143. package/dist/cjs/src/compile.js +0 -262
  144. package/dist/cjs/src/conf.js +0 -26
  145. package/dist/cjs/src/constants.js +0 -36
  146. package/dist/cjs/src/domain.js +0 -156
  147. package/dist/cjs/src/exceptions.js +0 -168
  148. package/dist/cjs/src/index.js +0 -317
  149. package/dist/cjs/src/middleware.js +0 -213
  150. package/dist/cjs/src/model.js +0 -628
  151. package/dist/cjs/src/parsers/convert-from-number.js +0 -15
  152. package/dist/cjs/src/parsers/convert-from-string.js +0 -19
  153. package/dist/cjs/src/parsers/index.js +0 -20
  154. package/dist/cjs/src/schema/array.js +0 -1014
  155. package/dist/cjs/src/schema/boolean.js +0 -883
  156. package/dist/cjs/src/schema/datetime.js +0 -840
  157. package/dist/cjs/src/schema/index.js +0 -12
  158. package/dist/cjs/src/schema/number.js +0 -976
  159. package/dist/cjs/src/schema/object.js +0 -1052
  160. package/dist/cjs/src/schema/schema.js +0 -1840
  161. package/dist/cjs/src/schema/string.js +0 -1038
  162. package/dist/cjs/src/schema/types.js +0 -4
  163. package/dist/cjs/src/schema/union.js +0 -1070
  164. package/dist/cjs/src/types.js +0 -4
  165. package/dist/cjs/src/utils.js +0 -647
  166. package/dist/cjs/src/validators/array.js +0 -462
  167. package/dist/cjs/src/validators/boolean.js +0 -201
  168. package/dist/cjs/src/validators/datetime.js +0 -291
  169. package/dist/cjs/src/validators/number.js +0 -375
  170. package/dist/cjs/src/validators/object.js +0 -291
  171. package/dist/cjs/src/validators/schema.js +0 -322
  172. package/dist/cjs/src/validators/string.js +0 -467
  173. package/dist/cjs/src/validators/types.js +0 -4
  174. package/dist/cjs/src/validators/union.js +0 -233
  175. package/dist/cjs/src/validators/utils.js +0 -499
  176. package/dist/cjs/tsconfig.types.tsbuildinfo +0 -1
  177. package/dist/cjs/types/adapter/fields/array.d.ts.map +0 -1
  178. package/dist/cjs/types/adapter/fields/boolean.d.ts.map +0 -1
  179. package/dist/cjs/types/adapter/fields/datetime.d.ts.map +0 -1
  180. package/dist/cjs/types/adapter/fields/index.d.ts.map +0 -1
  181. package/dist/cjs/types/adapter/fields/number.d.ts.map +0 -1
  182. package/dist/cjs/types/adapter/fields/object.d.ts.map +0 -1
  183. package/dist/cjs/types/adapter/fields/string.d.ts.map +0 -1
  184. package/dist/cjs/types/adapter/fields/union.d.ts.map +0 -1
  185. package/dist/cjs/types/adapter/index.d.ts.map +0 -1
  186. package/dist/cjs/types/adapter/types.d.ts.map +0 -1
  187. package/dist/cjs/types/compile.d.ts.map +0 -1
  188. package/dist/cjs/types/conf.d.ts.map +0 -1
  189. package/dist/cjs/types/constants.d.ts.map +0 -1
  190. package/dist/cjs/types/domain.d.ts.map +0 -1
  191. package/dist/cjs/types/exceptions.d.ts.map +0 -1
  192. package/dist/cjs/types/index.d.ts.map +0 -1
  193. package/dist/cjs/types/middleware.d.ts.map +0 -1
  194. package/dist/cjs/types/model.d.ts.map +0 -1
  195. package/dist/cjs/types/parsers/convert-from-number.d.ts.map +0 -1
  196. package/dist/cjs/types/parsers/convert-from-string.d.ts.map +0 -1
  197. package/dist/cjs/types/parsers/index.d.ts.map +0 -1
  198. package/dist/cjs/types/schema/array.d.ts.map +0 -1
  199. package/dist/cjs/types/schema/boolean.d.ts.map +0 -1
  200. package/dist/cjs/types/schema/datetime.d.ts.map +0 -1
  201. package/dist/cjs/types/schema/index.d.ts.map +0 -1
  202. package/dist/cjs/types/schema/number.d.ts.map +0 -1
  203. package/dist/cjs/types/schema/object.d.ts.map +0 -1
  204. package/dist/cjs/types/schema/schema.d.ts.map +0 -1
  205. package/dist/cjs/types/schema/string.d.ts.map +0 -1
  206. package/dist/cjs/types/schema/types.d.ts.map +0 -1
  207. package/dist/cjs/types/schema/union.d.ts.map +0 -1
  208. package/dist/cjs/types/types.d.ts.map +0 -1
  209. package/dist/cjs/types/utils.d.ts.map +0 -1
  210. package/dist/cjs/types/validators/array.d.ts.map +0 -1
  211. package/dist/cjs/types/validators/boolean.d.ts.map +0 -1
  212. package/dist/cjs/types/validators/datetime.d.ts.map +0 -1
  213. package/dist/cjs/types/validators/number.d.ts.map +0 -1
  214. package/dist/cjs/types/validators/object.d.ts.map +0 -1
  215. package/dist/cjs/types/validators/schema.d.ts.map +0 -1
  216. package/dist/cjs/types/validators/string.d.ts.map +0 -1
  217. package/dist/cjs/types/validators/types.d.ts.map +0 -1
  218. package/dist/cjs/types/validators/union.d.ts.map +0 -1
  219. package/dist/cjs/types/validators/utils.d.ts.map +0 -1
  220. package/dist/esm/src/adapter/fields/array.js +0 -13
  221. package/dist/esm/src/adapter/fields/boolean.js +0 -20
  222. package/dist/esm/src/adapter/fields/datetime.js +0 -20
  223. package/dist/esm/src/adapter/fields/index.js +0 -37
  224. package/dist/esm/src/adapter/fields/number.js +0 -20
  225. package/dist/esm/src/adapter/fields/object.js +0 -26
  226. package/dist/esm/src/adapter/fields/string.js +0 -20
  227. package/dist/esm/src/adapter/fields/union.js +0 -20
  228. package/dist/esm/src/adapter/index.js +0 -21
  229. package/dist/esm/src/adapter/types.js +0 -1
  230. package/dist/esm/src/compile.js +0 -10
  231. package/dist/esm/src/conf.js +0 -18
  232. package/dist/esm/src/constants.js +0 -4
  233. package/dist/esm/src/domain.js +0 -11
  234. package/dist/esm/src/exceptions.js +0 -15
  235. package/dist/esm/src/index.js +0 -126
  236. package/dist/esm/src/middleware.js +0 -29
  237. package/dist/esm/src/model.js +0 -264
  238. package/dist/esm/src/parsers/convert-from-number.js +0 -8
  239. package/dist/esm/src/parsers/convert-from-string.js +0 -14
  240. package/dist/esm/src/parsers/index.js +0 -2
  241. package/dist/esm/src/schema/array.js +0 -487
  242. package/dist/esm/src/schema/boolean.js +0 -520
  243. package/dist/esm/src/schema/datetime.js +0 -477
  244. package/dist/esm/src/schema/index.js +0 -3
  245. package/dist/esm/src/schema/number.js +0 -610
  246. package/dist/esm/src/schema/object.js +0 -521
  247. package/dist/esm/src/schema/schema.js +0 -767
  248. package/dist/esm/src/schema/string.js +0 -668
  249. package/dist/esm/src/schema/types.js +0 -1
  250. package/dist/esm/src/schema/union.js +0 -468
  251. package/dist/esm/src/types.js +0 -14
  252. package/dist/esm/src/utils.js +0 -207
  253. package/dist/esm/src/validators/array.js +0 -140
  254. package/dist/esm/src/validators/boolean.js +0 -37
  255. package/dist/esm/src/validators/datetime.js +0 -89
  256. package/dist/esm/src/validators/number.js +0 -148
  257. package/dist/esm/src/validators/object.js +0 -39
  258. package/dist/esm/src/validators/schema.js +0 -118
  259. package/dist/esm/src/validators/string.js +0 -202
  260. package/dist/esm/src/validators/types.js +0 -1
  261. package/dist/esm/src/validators/union.js +0 -39
  262. package/dist/esm/src/validators/utils.js +0 -147
  263. /package/dist/{cjs/types → src}/adapter/fields/array.d.ts +0 -0
  264. /package/dist/{cjs/types → src}/adapter/fields/boolean.d.ts +0 -0
  265. /package/dist/{cjs/types → src}/adapter/fields/datetime.d.ts +0 -0
  266. /package/dist/{cjs/types → src}/adapter/fields/index.d.ts +0 -0
  267. /package/dist/{cjs/types → src}/adapter/fields/number.d.ts +0 -0
  268. /package/dist/{cjs/types → src}/adapter/fields/object.d.ts +0 -0
  269. /package/dist/{cjs/types → src}/adapter/fields/string.d.ts +0 -0
  270. /package/dist/{cjs/types → src}/adapter/fields/union.d.ts +0 -0
  271. /package/dist/{cjs/types → src}/adapter/index.d.ts +0 -0
  272. /package/dist/{cjs/types → src}/adapter/types.d.ts +0 -0
  273. /package/dist/{cjs/types → src}/compile.d.ts +0 -0
  274. /package/dist/{cjs/types → src}/conf.d.ts +0 -0
  275. /package/dist/{cjs/types → src}/constants.d.ts +0 -0
  276. /package/dist/{cjs/types → src}/domain.d.ts +0 -0
  277. /package/dist/{cjs/types → src}/exceptions.d.ts +0 -0
  278. /package/dist/{cjs/types → src}/index.d.ts +0 -0
  279. /package/dist/{cjs/types → src}/middleware.d.ts +0 -0
  280. /package/dist/{cjs/types → src}/model.d.ts +0 -0
  281. /package/dist/{cjs/types → src}/parsers/convert-from-number.d.ts +0 -0
  282. /package/dist/{cjs/types → src}/parsers/convert-from-string.d.ts +0 -0
  283. /package/dist/{cjs/types → src}/parsers/index.d.ts +0 -0
  284. /package/dist/{cjs/types → src}/schema/array.d.ts +0 -0
  285. /package/dist/{cjs/types → src}/schema/boolean.d.ts +0 -0
  286. /package/dist/{cjs/types → src}/schema/datetime.d.ts +0 -0
  287. /package/dist/{cjs/types → src}/schema/index.d.ts +0 -0
  288. /package/dist/{cjs/types → src}/schema/number.d.ts +0 -0
  289. /package/dist/{cjs/types → src}/schema/object.d.ts +0 -0
  290. /package/dist/{cjs/types → src}/schema/schema.d.ts +0 -0
  291. /package/dist/{cjs/types → src}/schema/string.d.ts +0 -0
  292. /package/dist/{cjs/types → src}/schema/types.d.ts +0 -0
  293. /package/dist/{cjs/types → src}/schema/union.d.ts +0 -0
  294. /package/dist/{cjs/types → src}/types.d.ts +0 -0
  295. /package/dist/{cjs/types → src}/utils.d.ts +0 -0
  296. /package/dist/{cjs/types → src}/validators/array.d.ts +0 -0
  297. /package/dist/{cjs/types → src}/validators/boolean.d.ts +0 -0
  298. /package/dist/{cjs/types → src}/validators/datetime.d.ts +0 -0
  299. /package/dist/{cjs/types → src}/validators/number.d.ts +0 -0
  300. /package/dist/{cjs/types → src}/validators/object.d.ts +0 -0
  301. /package/dist/{cjs/types → src}/validators/schema.d.ts +0 -0
  302. /package/dist/{cjs/types → src}/validators/string.d.ts +0 -0
  303. /package/dist/{cjs/types → src}/validators/types.d.ts +0 -0
  304. /package/dist/{cjs/types → src}/validators/union.d.ts +0 -0
  305. /package/dist/{cjs/types → src}/validators/utils.d.ts +0 -0
@@ -1,140 +0,0 @@
1
- export function arrayValidation(isTuple, schemas) {
2
- return {
3
- name: 'array',
4
- type: 'medium',
5
- callback: async (value, path, options)=>{
6
- const isNotAnArray = Array.isArray(value) === false;
7
- if (isNotAnArray) return {
8
- parsed: value,
9
- preventChildValidation: true,
10
- errors: [
11
- {
12
- isValid: false,
13
- code: 'array',
14
- // eslint-disable-next-line ts/no-unnecessary-condition
15
- path: path || [],
16
- message: 'The value must be an array. Received: ' + typeof value
17
- }
18
- ]
19
- };
20
- if (isTuple && value.length !== schemas.length) return {
21
- parsed: value,
22
- preventChildValidation: true,
23
- errors: [
24
- {
25
- isValid: false,
26
- code: 'tuple',
27
- // eslint-disable-next-line ts/no-unnecessary-condition
28
- path: path || [],
29
- message: 'The tuple must have exactly ' + schemas.length + ' elements. Received: ' + value.length
30
- }
31
- ]
32
- };
33
- const errorsOfArray = [];
34
- // To speed things up, we can do a simple type check, if the value is of type number and
35
- // number is on index 1, and on index 0 is a string,
36
- // if the value is a number we can skip checking at index 0.
37
- const schemaIndexByTypeof = new Map();
38
- let parsedValues = [];
39
- parsedValues = await Promise.all(value.map(async (element, index)=>{
40
- let errorsToAppendAfterLoopIfNoSchemaMatched = [];
41
- const typeofElement = typeof element;
42
- const schemaIndex = schemaIndexByTypeof.get(typeofElement);
43
- const existsASchemaIndex = typeof schemaIndex === 'number';
44
- const schemasToValidateAgainst = isTuple ? [
45
- schemas[index]
46
- ] : existsASchemaIndex ? [
47
- schemas[schemaIndex]
48
- ] : schemas;
49
- for(let indexOfSchema = 0; indexOfSchema < schemasToValidateAgainst.length; indexOfSchema++){
50
- const schemaToValidate = schemasToValidateAgainst[indexOfSchema];
51
- const schemaWithProtected = schemaToValidate;
52
- const { parsed, errors } = await schemaWithProtected.__parse(element, [
53
- ...path,
54
- index
55
- ], options);
56
- if (schemaWithProtected.__toInternal && options.toInternalToBubbleUp) options.toInternalToBubbleUp.push(async ()=>parsedValues[indexOfSchema] = await schemaWithProtected.__toInternal?.(parsed));
57
- // eslint-disable-next-line ts/no-unnecessary-condition
58
- if ((errors || []).length <= 0) {
59
- errorsToAppendAfterLoopIfNoSchemaMatched = [];
60
- schemaIndexByTypeof.set(typeofElement, indexOfSchema);
61
- return parsed;
62
- }
63
- errorsToAppendAfterLoopIfNoSchemaMatched.push(...errors);
64
- }
65
- errorsOfArray.push(...errorsToAppendAfterLoopIfNoSchemaMatched);
66
- return element;
67
- }));
68
- return {
69
- parsed: parsedValues,
70
- errors: errorsOfArray
71
- };
72
- }
73
- };
74
- }
75
- export function minLength(args) {
76
- return {
77
- name: 'minLength',
78
- type: 'low',
79
- // eslint-disable-next-line ts/require-await
80
- callback: async (value, path, _options)=>{
81
- const isValid = args.inclusive ? value.length >= args.value : value.length > args.value;
82
- return {
83
- parsed: value,
84
- errors: isValid ? [] : [
85
- {
86
- isValid: false,
87
- code: 'minLength',
88
- // eslint-disable-next-line ts/no-unnecessary-condition
89
- path: path || [],
90
- message: args.message
91
- }
92
- ]
93
- };
94
- }
95
- };
96
- }
97
- export function maxLength(args) {
98
- return {
99
- name: 'maxLength',
100
- type: 'low',
101
- // eslint-disable-next-line ts/require-await
102
- callback: async (value, path, _options)=>{
103
- const isValid = args.inclusive ? value.length <= args.value : value.length < args.value;
104
- return {
105
- parsed: value,
106
- errors: isValid ? [] : [
107
- {
108
- isValid: false,
109
- code: 'maxLength',
110
- // eslint-disable-next-line ts/no-unnecessary-condition
111
- path: path || [],
112
- message: args.message
113
- }
114
- ]
115
- };
116
- }
117
- };
118
- }
119
- export function nonEmpty(args) {
120
- return {
121
- name: 'nonEmpty',
122
- type: 'low',
123
- // eslint-disable-next-line ts/require-await
124
- callback: async (value, path, _options)=>{
125
- const isValid = value.length > 0;
126
- return {
127
- parsed: value,
128
- errors: isValid ? [] : [
129
- {
130
- isValid: false,
131
- code: 'nonEmpty',
132
- // eslint-disable-next-line ts/no-unnecessary-condition
133
- path: path || [],
134
- message: args.message
135
- }
136
- ]
137
- };
138
- }
139
- };
140
- }
@@ -1,37 +0,0 @@
1
- export function booleanValidation() {
2
- return {
3
- name: 'boolean',
4
- type: 'medium',
5
- // eslint-disable-next-line ts/require-await
6
- callback: async (value, path, _options)=>{
7
- const isValid = typeof value === 'boolean';
8
- return {
9
- parsed: value,
10
- errors: isValid ? [] : [
11
- {
12
- isValid: false,
13
- code: 'boolean',
14
- // eslint-disable-next-line ts/no-unnecessary-condition
15
- path: path || [],
16
- message: 'Value is not a boolean'
17
- }
18
- ],
19
- preventChildValidation: true
20
- };
21
- }
22
- };
23
- }
24
- export function allowStringParser() {
25
- return {
26
- name: 'allowString',
27
- type: 'high',
28
- // eslint-disable-next-line ts/require-await
29
- callback: async (value, _path, _options)=>{
30
- const parsed = Boolean(value);
31
- return {
32
- parsed: parsed,
33
- errors: []
34
- };
35
- }
36
- };
37
- }
@@ -1,89 +0,0 @@
1
- export function datetimeValidation() {
2
- return {
3
- name: 'datetime',
4
- type: 'medium',
5
- // eslint-disable-next-line ts/require-await
6
- callback: async (value, path, _options)=>{
7
- const isValid = value instanceof Date && !isNaN(value.getTime());
8
- return {
9
- parsed: value,
10
- errors: isValid ? [] : [
11
- {
12
- isValid: false,
13
- code: 'datetime',
14
- // eslint-disable-next-line ts/no-unnecessary-condition
15
- path: path || [],
16
- message: 'Value is not a date'
17
- }
18
- ],
19
- preventChildValidation: true
20
- };
21
- }
22
- };
23
- }
24
- export function allowStringParser() {
25
- return {
26
- name: 'allowString',
27
- type: 'high',
28
- // eslint-disable-next-line ts/require-await
29
- callback: async (value, _path, _options)=>{
30
- if (typeof value === 'string') {
31
- const parsed = new Date(value);
32
- if (parsed instanceof Date && !isNaN(parsed.getTime())) {
33
- return {
34
- parsed: parsed,
35
- errors: []
36
- };
37
- }
38
- }
39
- return {
40
- parsed: value,
41
- errors: []
42
- };
43
- }
44
- };
45
- }
46
- export function below(args) {
47
- return {
48
- name: 'below',
49
- type: 'low',
50
- // eslint-disable-next-line ts/require-await
51
- callback: async (value, path, _options)=>{
52
- const isValid = args.inclusive ? value <= args.value : value < args.value;
53
- return {
54
- parsed: value,
55
- errors: isValid ? [] : [
56
- {
57
- isValid: false,
58
- code: 'below',
59
- // eslint-disable-next-line ts/no-unnecessary-condition
60
- path: path || [],
61
- message: args.message
62
- }
63
- ]
64
- };
65
- }
66
- };
67
- }
68
- export function above(args) {
69
- return {
70
- name: 'above',
71
- type: 'low',
72
- // eslint-disable-next-line ts/require-await
73
- callback: async (value, path, _options)=>{
74
- const isValid = args.inclusive ? value <= args.value : value < args.value;
75
- return {
76
- parsed: value,
77
- errors: isValid ? [] : [
78
- {
79
- isValid: false,
80
- code: 'above',
81
- // eslint-disable-next-line ts/no-unnecessary-condition
82
- path: path || [],
83
- message: args.message
84
- }
85
- ]
86
- };
87
- }
88
- };
89
- }
@@ -1,148 +0,0 @@
1
- export function numberValidation() {
2
- return {
3
- name: 'number',
4
- type: 'medium',
5
- // eslint-disable-next-line ts/require-await
6
- callback: async (value, path, _options)=>{
7
- return {
8
- parsed: value,
9
- errors: [
10
- {
11
- isValid: typeof value === 'number',
12
- code: 'number',
13
- // eslint-disable-next-line ts/no-unnecessary-condition
14
- path: path || [],
15
- message: 'The value must be a number. Received: ' + typeof value
16
- }
17
- ]
18
- };
19
- }
20
- };
21
- }
22
- export function max(args) {
23
- return {
24
- name: 'max',
25
- type: 'low',
26
- // eslint-disable-next-line ts/require-await
27
- callback: async (value, path, _options)=>{
28
- if (args.inclusive) return {
29
- parsed: value,
30
- errors: [
31
- {
32
- isValid: value <= args.value,
33
- code: 'max',
34
- // eslint-disable-next-line ts/no-unnecessary-condition
35
- path: path || [],
36
- message: args.message
37
- }
38
- ]
39
- };
40
- return {
41
- parsed: value,
42
- errors: [
43
- {
44
- isValid: value < args.value,
45
- code: 'max',
46
- // eslint-disable-next-line ts/no-unnecessary-condition
47
- path: path || [],
48
- message: args.message
49
- }
50
- ]
51
- };
52
- }
53
- };
54
- }
55
- export function min(args) {
56
- return {
57
- name: 'min',
58
- type: 'low',
59
- // eslint-disable-next-line ts/require-await
60
- callback: async (value, path)=>{
61
- if (args.inclusive) return {
62
- parsed: value,
63
- errors: [
64
- {
65
- isValid: value >= args.value,
66
- message: args.message,
67
- code: 'min',
68
- path: path || []
69
- }
70
- ]
71
- };
72
- return {
73
- parsed: value,
74
- errors: [
75
- {
76
- isValid: value > args.value,
77
- message: args.message,
78
- code: 'min',
79
- path: path || []
80
- }
81
- ]
82
- };
83
- }
84
- };
85
- }
86
- export function integer(args) {
87
- return {
88
- name: 'integer',
89
- type: 'low',
90
- // eslint-disable-next-line ts/require-await
91
- callback: async (value, path)=>{
92
- const isValid = Number.isInteger(value);
93
- return {
94
- parsed: value,
95
- errors: isValid ? [] : [
96
- {
97
- isValid: isValid,
98
- message: args.message,
99
- code: 'integer',
100
- path: path || []
101
- }
102
- ]
103
- };
104
- }
105
- };
106
- }
107
- export function maxDigits(args) {
108
- return {
109
- name: 'maxDigits',
110
- type: 'low',
111
- // eslint-disable-next-line ts/require-await
112
- callback: async (value, path)=>{
113
- const isValid = value.toString().replace('.', '').length <= args.value;
114
- return {
115
- parsed: value,
116
- errors: isValid ? [] : [
117
- {
118
- isValid: isValid,
119
- message: args.message,
120
- code: 'maxDigits',
121
- path: path || []
122
- }
123
- ]
124
- };
125
- }
126
- };
127
- }
128
- export function decimalPlaces(args) {
129
- return {
130
- name: 'decimalPlaces',
131
- type: 'low',
132
- // eslint-disable-next-line ts/require-await
133
- callback: async (value, path)=>{
134
- const isValid = value.toString().split('.')[1]?.length <= args.value;
135
- return {
136
- parsed: value,
137
- errors: isValid ? [] : [
138
- {
139
- isValid: isValid,
140
- message: args.message,
141
- code: 'decimalPlaces',
142
- path: path || []
143
- }
144
- ]
145
- };
146
- }
147
- };
148
- }
@@ -1,39 +0,0 @@
1
- export function objectValidation(keysToFallback) {
2
- return {
3
- name: 'object',
4
- type: 'low',
5
- callback: async (value, path, options)=>{
6
- const isNotAnObject = typeof value !== 'object' && Array.isArray(value) === false && value !== null;
7
- if (isNotAnObject) return {
8
- parsed: value,
9
- preventChildValidation: true,
10
- errors: [
11
- {
12
- isValid: false,
13
- code: 'object',
14
- // eslint-disable-next-line ts/no-unnecessary-condition
15
- path: path || [],
16
- message: 'The value must be an object. Received: ' + typeof value
17
- }
18
- ]
19
- };
20
- const errors = {};
21
- const toValidateEntries = Object.entries(keysToFallback);
22
- await Promise.all(toValidateEntries.map(async ([key, schema])=>{
23
- const schemaWithProtected = schema;
24
- const { parsed, errors: parseErrors } = await schemaWithProtected.__parse(value[key], [
25
- ...path,
26
- key
27
- ], options);
28
- if (Array.isArray(parseErrors) && parseErrors.length > 0) errors[key] = parseErrors;
29
- else value[key] = parsed;
30
- // We append the toInternalToBubbleUp to the parent toInternalToBubbleUp
31
- if (schemaWithProtected.__toInternal && options.toInternalToBubbleUp) options.toInternalToBubbleUp.push(async ()=>value[key] = await schema.__toInternal(parsed));
32
- }));
33
- return {
34
- parsed: value,
35
- errors: Object.values(errors).flat()
36
- };
37
- }
38
- };
39
- }
@@ -1,118 +0,0 @@
1
- export function optional(args) {
2
- return {
3
- name: 'optional',
4
- type: 'high',
5
- // eslint-disable-next-line ts/require-await
6
- callback: async (value, path)=>{
7
- if (value === undefined) {
8
- if (args.allow === true) return {
9
- parsed: value,
10
- errors: [],
11
- preventChildValidation: true
12
- };
13
- return {
14
- parsed: value,
15
- errors: [
16
- {
17
- isValid: false,
18
- message: args.message,
19
- code: 'required',
20
- // eslint-disable-next-line ts/no-unnecessary-condition
21
- path: path || []
22
- }
23
- ],
24
- preventChildValidation: true
25
- };
26
- }
27
- return {
28
- parsed: value,
29
- errors: [],
30
- preventChildValidation: false
31
- };
32
- }
33
- };
34
- }
35
- export function nullable(args) {
36
- return {
37
- name: 'nullable',
38
- type: 'high',
39
- // eslint-disable-next-line ts/require-await
40
- callback: async (value, path)=>{
41
- if (value === null) {
42
- if (args.allow === true) return {
43
- parsed: value,
44
- errors: [],
45
- preventChildValidation: true
46
- };
47
- return {
48
- parsed: value,
49
- errors: [
50
- {
51
- isValid: false,
52
- message: args.message,
53
- code: 'null',
54
- // eslint-disable-next-line ts/no-unnecessary-condition
55
- path: path || []
56
- }
57
- ],
58
- preventChildValidation: true
59
- };
60
- }
61
- return {
62
- parsed: value,
63
- errors: [],
64
- preventChildValidation: false
65
- };
66
- }
67
- };
68
- }
69
- export function checkType(args) {
70
- return {
71
- name: 'checkType',
72
- type: 'medium',
73
- // eslint-disable-next-line ts/require-await
74
- callback: async (value, path)=>{
75
- if (args.check(value)) return {
76
- parsed: value,
77
- errors: [],
78
- preventChildValidation: false
79
- };
80
- return {
81
- parsed: value,
82
- errors: [
83
- {
84
- isValid: false,
85
- message: args.message,
86
- code: 'invalid_type',
87
- // eslint-disable-next-line ts/no-unnecessary-condition
88
- path: path || []
89
- }
90
- ],
91
- preventChildValidation: true
92
- };
93
- }
94
- };
95
- }
96
- export function is(args) {
97
- return {
98
- name: 'is',
99
- type: 'medium',
100
- // eslint-disable-next-line ts/require-await
101
- callback: async (value, path, _options)=>{
102
- const isValid = Array.isArray(args.value) ? args.value.includes(value) : value === args.value;
103
- return {
104
- parsed: value,
105
- errors: isValid ? [] : [
106
- {
107
- isValid: false,
108
- code: 'is',
109
- // eslint-disable-next-line ts/no-unnecessary-condition
110
- path: path || [],
111
- message: 'Value is not a boolean'
112
- }
113
- ],
114
- preventChildValidation: true
115
- };
116
- }
117
- };
118
- }