@palmares/schemas 0.1.25 → 0.2.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.
Files changed (305) hide show
  1. package/CHANGELOG.md +26 -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 +48 -0
  45. package/dist/{cjs/types → src}/exceptions.d.ts +0 -3
  46. package/dist/src/exceptions.d.ts.map +1 -0
  47. package/dist/src/exceptions.js +24 -0
  48. package/dist/src/index.cjs +6509 -0
  49. package/dist/src/index.d.ts.map +1 -0
  50. package/dist/src/index.js +6445 -0
  51. package/dist/src/middleware.cjs +58 -0
  52. package/dist/src/middleware.d.ts.map +1 -0
  53. package/dist/src/middleware.js +35 -0
  54. package/dist/src/model.cjs +5992 -0
  55. package/dist/src/model.d.ts.map +1 -0
  56. package/dist/src/model.js +5967 -0
  57. package/dist/src/parsers/convert-from-number.cjs +34 -0
  58. package/dist/src/parsers/convert-from-number.d.ts.map +1 -0
  59. package/dist/src/parsers/convert-from-number.js +11 -0
  60. package/dist/src/parsers/convert-from-string.cjs +40 -0
  61. package/dist/src/parsers/convert-from-string.d.ts.map +1 -0
  62. package/dist/src/parsers/convert-from-string.js +17 -0
  63. package/dist/src/parsers/index.cjs +50 -0
  64. package/dist/src/parsers/index.d.ts.map +1 -0
  65. package/dist/src/parsers/index.js +24 -0
  66. package/dist/src/schema/array.cjs +1863 -0
  67. package/dist/src/schema/array.d.ts.map +1 -0
  68. package/dist/src/schema/array.js +1837 -0
  69. package/dist/src/schema/boolean.cjs +1800 -0
  70. package/dist/src/schema/boolean.d.ts.map +1 -0
  71. package/dist/src/schema/boolean.js +1774 -0
  72. package/dist/src/schema/datetime.cjs +1789 -0
  73. package/dist/src/schema/datetime.d.ts.map +1 -0
  74. package/dist/src/schema/datetime.js +1763 -0
  75. package/dist/src/schema/index.cjs +2026 -0
  76. package/dist/src/schema/index.d.ts.map +1 -0
  77. package/dist/src/schema/index.js +2001 -0
  78. package/dist/src/schema/number.cjs +2026 -0
  79. package/dist/src/schema/number.d.ts.map +1 -0
  80. package/dist/src/schema/number.js +2000 -0
  81. package/dist/src/schema/object.cjs +1795 -0
  82. package/dist/src/schema/object.d.ts.map +1 -0
  83. package/dist/src/schema/object.js +1769 -0
  84. package/dist/src/schema/schema.cjs +844 -0
  85. package/dist/src/schema/schema.d.ts.map +1 -0
  86. package/dist/src/schema/schema.js +818 -0
  87. package/dist/src/schema/string.cjs +2126 -0
  88. package/dist/src/schema/string.d.ts.map +1 -0
  89. package/dist/src/schema/string.js +2100 -0
  90. package/dist/src/schema/types.cjs +18 -0
  91. package/dist/src/schema/types.d.ts.map +1 -0
  92. package/dist/src/schema/types.js +0 -0
  93. package/dist/src/schema/union.cjs +1737 -0
  94. package/dist/src/schema/union.d.ts.map +1 -0
  95. package/dist/src/schema/union.js +1711 -0
  96. package/dist/src/types.cjs +18 -0
  97. package/dist/src/types.d.ts.map +1 -0
  98. package/dist/src/types.js +0 -0
  99. package/dist/src/utils.cjs +477 -0
  100. package/dist/src/utils.d.ts.map +1 -0
  101. package/dist/src/utils.js +445 -0
  102. package/dist/src/validators/array.cjs +176 -0
  103. package/dist/src/validators/array.d.ts.map +1 -0
  104. package/dist/src/validators/array.js +150 -0
  105. package/dist/src/validators/boolean.cjs +71 -0
  106. package/dist/src/validators/boolean.d.ts.map +1 -0
  107. package/dist/src/validators/boolean.js +47 -0
  108. package/dist/src/validators/datetime.cjs +129 -0
  109. package/dist/src/validators/datetime.d.ts.map +1 -0
  110. package/dist/src/validators/datetime.js +103 -0
  111. package/dist/src/validators/number.cjs +194 -0
  112. package/dist/src/validators/number.d.ts.map +1 -0
  113. package/dist/src/validators/number.js +166 -0
  114. package/dist/src/validators/object.cjs +69 -0
  115. package/dist/src/validators/object.d.ts.map +1 -0
  116. package/dist/src/validators/object.js +46 -0
  117. package/dist/src/validators/schema.cjs +158 -0
  118. package/dist/src/validators/schema.d.ts.map +1 -0
  119. package/dist/src/validators/schema.js +132 -0
  120. package/dist/src/validators/string.cjs +255 -0
  121. package/dist/src/validators/string.d.ts.map +1 -0
  122. package/dist/src/validators/string.js +224 -0
  123. package/dist/src/validators/types.cjs +18 -0
  124. package/dist/src/validators/types.d.ts.map +1 -0
  125. package/dist/src/validators/types.js +0 -0
  126. package/dist/src/validators/union.cjs +69 -0
  127. package/dist/src/validators/union.d.ts.map +1 -0
  128. package/dist/src/validators/union.js +46 -0
  129. package/dist/src/validators/utils.cjs +165 -0
  130. package/dist/src/validators/utils.d.ts.map +1 -0
  131. package/dist/src/validators/utils.js +142 -0
  132. package/dist/tsconfig.types.tsbuildinfo +1 -0
  133. package/package.json +15 -23
  134. package/dist/cjs/src/adapter/fields/array.js +0 -152
  135. package/dist/cjs/src/adapter/fields/boolean.js +0 -162
  136. package/dist/cjs/src/adapter/fields/datetime.js +0 -162
  137. package/dist/cjs/src/adapter/fields/index.js +0 -311
  138. package/dist/cjs/src/adapter/fields/number.js +0 -162
  139. package/dist/cjs/src/adapter/fields/object.js +0 -171
  140. package/dist/cjs/src/adapter/fields/string.js +0 -162
  141. package/dist/cjs/src/adapter/fields/union.js +0 -162
  142. package/dist/cjs/src/adapter/index.js +0 -201
  143. package/dist/cjs/src/adapter/types.js +0 -4
  144. package/dist/cjs/src/compile.js +0 -262
  145. package/dist/cjs/src/conf.js +0 -26
  146. package/dist/cjs/src/constants.js +0 -36
  147. package/dist/cjs/src/domain.js +0 -156
  148. package/dist/cjs/src/exceptions.js +0 -168
  149. package/dist/cjs/src/index.js +0 -317
  150. package/dist/cjs/src/middleware.js +0 -213
  151. package/dist/cjs/src/model.js +0 -628
  152. package/dist/cjs/src/parsers/convert-from-number.js +0 -15
  153. package/dist/cjs/src/parsers/convert-from-string.js +0 -19
  154. package/dist/cjs/src/parsers/index.js +0 -20
  155. package/dist/cjs/src/schema/array.js +0 -1014
  156. package/dist/cjs/src/schema/boolean.js +0 -883
  157. package/dist/cjs/src/schema/datetime.js +0 -840
  158. package/dist/cjs/src/schema/index.js +0 -12
  159. package/dist/cjs/src/schema/number.js +0 -976
  160. package/dist/cjs/src/schema/object.js +0 -1052
  161. package/dist/cjs/src/schema/schema.js +0 -1840
  162. package/dist/cjs/src/schema/string.js +0 -1038
  163. package/dist/cjs/src/schema/types.js +0 -4
  164. package/dist/cjs/src/schema/union.js +0 -1070
  165. package/dist/cjs/src/types.js +0 -4
  166. package/dist/cjs/src/utils.js +0 -647
  167. package/dist/cjs/src/validators/array.js +0 -462
  168. package/dist/cjs/src/validators/boolean.js +0 -201
  169. package/dist/cjs/src/validators/datetime.js +0 -291
  170. package/dist/cjs/src/validators/number.js +0 -375
  171. package/dist/cjs/src/validators/object.js +0 -291
  172. package/dist/cjs/src/validators/schema.js +0 -322
  173. package/dist/cjs/src/validators/string.js +0 -467
  174. package/dist/cjs/src/validators/types.js +0 -4
  175. package/dist/cjs/src/validators/union.js +0 -233
  176. package/dist/cjs/src/validators/utils.js +0 -499
  177. package/dist/cjs/tsconfig.types.tsbuildinfo +0 -1
  178. package/dist/cjs/types/adapter/fields/array.d.ts.map +0 -1
  179. package/dist/cjs/types/adapter/fields/boolean.d.ts.map +0 -1
  180. package/dist/cjs/types/adapter/fields/datetime.d.ts.map +0 -1
  181. package/dist/cjs/types/adapter/fields/index.d.ts.map +0 -1
  182. package/dist/cjs/types/adapter/fields/number.d.ts.map +0 -1
  183. package/dist/cjs/types/adapter/fields/object.d.ts.map +0 -1
  184. package/dist/cjs/types/adapter/fields/string.d.ts.map +0 -1
  185. package/dist/cjs/types/adapter/fields/union.d.ts.map +0 -1
  186. package/dist/cjs/types/adapter/index.d.ts.map +0 -1
  187. package/dist/cjs/types/adapter/types.d.ts.map +0 -1
  188. package/dist/cjs/types/compile.d.ts.map +0 -1
  189. package/dist/cjs/types/conf.d.ts.map +0 -1
  190. package/dist/cjs/types/constants.d.ts.map +0 -1
  191. package/dist/cjs/types/domain.d.ts.map +0 -1
  192. package/dist/cjs/types/exceptions.d.ts.map +0 -1
  193. package/dist/cjs/types/index.d.ts.map +0 -1
  194. package/dist/cjs/types/middleware.d.ts.map +0 -1
  195. package/dist/cjs/types/model.d.ts.map +0 -1
  196. package/dist/cjs/types/parsers/convert-from-number.d.ts.map +0 -1
  197. package/dist/cjs/types/parsers/convert-from-string.d.ts.map +0 -1
  198. package/dist/cjs/types/parsers/index.d.ts.map +0 -1
  199. package/dist/cjs/types/schema/array.d.ts.map +0 -1
  200. package/dist/cjs/types/schema/boolean.d.ts.map +0 -1
  201. package/dist/cjs/types/schema/datetime.d.ts.map +0 -1
  202. package/dist/cjs/types/schema/index.d.ts.map +0 -1
  203. package/dist/cjs/types/schema/number.d.ts.map +0 -1
  204. package/dist/cjs/types/schema/object.d.ts.map +0 -1
  205. package/dist/cjs/types/schema/schema.d.ts.map +0 -1
  206. package/dist/cjs/types/schema/string.d.ts.map +0 -1
  207. package/dist/cjs/types/schema/types.d.ts.map +0 -1
  208. package/dist/cjs/types/schema/union.d.ts.map +0 -1
  209. package/dist/cjs/types/types.d.ts.map +0 -1
  210. package/dist/cjs/types/utils.d.ts.map +0 -1
  211. package/dist/cjs/types/validators/array.d.ts.map +0 -1
  212. package/dist/cjs/types/validators/boolean.d.ts.map +0 -1
  213. package/dist/cjs/types/validators/datetime.d.ts.map +0 -1
  214. package/dist/cjs/types/validators/number.d.ts.map +0 -1
  215. package/dist/cjs/types/validators/object.d.ts.map +0 -1
  216. package/dist/cjs/types/validators/schema.d.ts.map +0 -1
  217. package/dist/cjs/types/validators/string.d.ts.map +0 -1
  218. package/dist/cjs/types/validators/types.d.ts.map +0 -1
  219. package/dist/cjs/types/validators/union.d.ts.map +0 -1
  220. package/dist/cjs/types/validators/utils.d.ts.map +0 -1
  221. package/dist/esm/src/adapter/fields/array.js +0 -13
  222. package/dist/esm/src/adapter/fields/boolean.js +0 -20
  223. package/dist/esm/src/adapter/fields/datetime.js +0 -20
  224. package/dist/esm/src/adapter/fields/index.js +0 -37
  225. package/dist/esm/src/adapter/fields/number.js +0 -20
  226. package/dist/esm/src/adapter/fields/object.js +0 -26
  227. package/dist/esm/src/adapter/fields/string.js +0 -20
  228. package/dist/esm/src/adapter/fields/union.js +0 -20
  229. package/dist/esm/src/adapter/index.js +0 -21
  230. package/dist/esm/src/adapter/types.js +0 -1
  231. package/dist/esm/src/compile.js +0 -10
  232. package/dist/esm/src/conf.js +0 -18
  233. package/dist/esm/src/constants.js +0 -4
  234. package/dist/esm/src/domain.js +0 -11
  235. package/dist/esm/src/exceptions.js +0 -15
  236. package/dist/esm/src/index.js +0 -126
  237. package/dist/esm/src/middleware.js +0 -29
  238. package/dist/esm/src/model.js +0 -264
  239. package/dist/esm/src/parsers/convert-from-number.js +0 -8
  240. package/dist/esm/src/parsers/convert-from-string.js +0 -14
  241. package/dist/esm/src/parsers/index.js +0 -2
  242. package/dist/esm/src/schema/array.js +0 -487
  243. package/dist/esm/src/schema/boolean.js +0 -520
  244. package/dist/esm/src/schema/datetime.js +0 -477
  245. package/dist/esm/src/schema/index.js +0 -3
  246. package/dist/esm/src/schema/number.js +0 -610
  247. package/dist/esm/src/schema/object.js +0 -521
  248. package/dist/esm/src/schema/schema.js +0 -767
  249. package/dist/esm/src/schema/string.js +0 -668
  250. package/dist/esm/src/schema/types.js +0 -1
  251. package/dist/esm/src/schema/union.js +0 -468
  252. package/dist/esm/src/types.js +0 -14
  253. package/dist/esm/src/utils.js +0 -207
  254. package/dist/esm/src/validators/array.js +0 -140
  255. package/dist/esm/src/validators/boolean.js +0 -37
  256. package/dist/esm/src/validators/datetime.js +0 -89
  257. package/dist/esm/src/validators/number.js +0 -148
  258. package/dist/esm/src/validators/object.js +0 -39
  259. package/dist/esm/src/validators/schema.js +0 -118
  260. package/dist/esm/src/validators/string.js +0 -202
  261. package/dist/esm/src/validators/types.js +0 -1
  262. package/dist/esm/src/validators/union.js +0 -39
  263. package/dist/esm/src/validators/utils.js +0 -147
  264. /package/dist/{cjs/types → src}/adapter/fields/array.d.ts +0 -0
  265. /package/dist/{cjs/types → src}/adapter/fields/boolean.d.ts +0 -0
  266. /package/dist/{cjs/types → src}/adapter/fields/datetime.d.ts +0 -0
  267. /package/dist/{cjs/types → src}/adapter/fields/index.d.ts +0 -0
  268. /package/dist/{cjs/types → src}/adapter/fields/number.d.ts +0 -0
  269. /package/dist/{cjs/types → src}/adapter/fields/object.d.ts +0 -0
  270. /package/dist/{cjs/types → src}/adapter/fields/string.d.ts +0 -0
  271. /package/dist/{cjs/types → src}/adapter/fields/union.d.ts +0 -0
  272. /package/dist/{cjs/types → src}/adapter/index.d.ts +0 -0
  273. /package/dist/{cjs/types → src}/adapter/types.d.ts +0 -0
  274. /package/dist/{cjs/types → src}/compile.d.ts +0 -0
  275. /package/dist/{cjs/types → src}/conf.d.ts +0 -0
  276. /package/dist/{cjs/types → src}/constants.d.ts +0 -0
  277. /package/dist/{cjs/types → src}/domain.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
- }