@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,13 +0,0 @@
1
- import { FieldAdapter } from '.';
2
- export function arrayFieldAdapter(args) {
3
- class CustomArrayFieldAdapter extends ArrayFieldAdapter {
4
- translate = args.translate;
5
- toString = args.toString;
6
- formatError = args.formatError;
7
- parse = args.parse;
8
- }
9
- return CustomArrayFieldAdapter;
10
- }
11
- export class ArrayFieldAdapter extends FieldAdapter {
12
- translate(_fieldAdapter, _args) {}
13
- }
@@ -1,20 +0,0 @@
1
- import { FieldAdapter } from '.';
2
- import { SchemaAdapterNotImplementedError } from '../../exceptions';
3
- export function booleanFieldAdapter(args) {
4
- class CustomBooleanFieldAdapter extends BooleanFieldAdapter {
5
- translate = args.translate;
6
- toString = args.toString;
7
- formatError = args.formatError;
8
- parse = args.parse;
9
- }
10
- return CustomBooleanFieldAdapter;
11
- }
12
- export class BooleanFieldAdapter extends FieldAdapter {
13
- translate(_fieldAdapter, _args) {}
14
- parse(_adapter, _fieldAdapter, _result, _value, _args) {
15
- throw new SchemaAdapterNotImplementedError({
16
- className: this.constructor.name,
17
- functionName: 'parse'
18
- });
19
- }
20
- }
@@ -1,20 +0,0 @@
1
- import { FieldAdapter } from '.';
2
- import { SchemaAdapterNotImplementedError } from '../../exceptions';
3
- export function datetimeFieldAdapter(args) {
4
- class CustomDatetimeFieldAdapter extends DatetimeFieldAdapter {
5
- translate = args.translate;
6
- toString = args.toString;
7
- formatError = args.formatError;
8
- parse = args.parse;
9
- }
10
- return CustomDatetimeFieldAdapter;
11
- }
12
- export class DatetimeFieldAdapter extends FieldAdapter {
13
- translate(_fieldAdapter, _args) {}
14
- parse(_adapter, _fieldAdapter, _result, _value, _args) {
15
- throw new SchemaAdapterNotImplementedError({
16
- className: this.constructor.name,
17
- functionName: 'parse'
18
- });
19
- }
20
- }
@@ -1,37 +0,0 @@
1
- import { SchemaAdapterNotImplementedError } from '../../exceptions';
2
- export function fieldAdapter(args) {
3
- class CustomFieldAdapter extends FieldAdapter {
4
- translate = args.translate;
5
- toString = args.toString;
6
- formatError = args.formatError;
7
- parse = args.parse;
8
- }
9
- return CustomFieldAdapter;
10
- }
11
- export class FieldAdapter {
12
- translate(_fieldAdapter, _args, _base) {
13
- throw new SchemaAdapterNotImplementedError({
14
- className: this.constructor.name,
15
- functionName: 'translate'
16
- });
17
- }
18
- parse(_adapter, _fieldAdapter, _schema, _value, _args) {
19
- throw new SchemaAdapterNotImplementedError({
20
- className: this.constructor.name,
21
- functionName: 'parse'
22
- });
23
- }
24
- toString(_adapter, _fieldAdapter, _args, _base) {
25
- throw new SchemaAdapterNotImplementedError({
26
- className: this.constructor.name,
27
- functionName: 'toString'
28
- });
29
- }
30
- // eslint-disable-next-line ts/require-await
31
- async formatError(_adapter, _fieldAdapter, _schema, _error, _metadata) {
32
- throw new SchemaAdapterNotImplementedError({
33
- className: this.constructor.name,
34
- functionName: 'formatError'
35
- });
36
- }
37
- }
@@ -1,20 +0,0 @@
1
- import { FieldAdapter } from '.';
2
- import { SchemaAdapterNotImplementedError } from '../../exceptions';
3
- export function numberFieldAdapter(args) {
4
- class CustomNumberFieldAdapter extends NumberFieldAdapter {
5
- translate = args.translate;
6
- toString = args.toString;
7
- formatError = args.formatError;
8
- parse = args.parse;
9
- }
10
- return CustomNumberFieldAdapter;
11
- }
12
- export class NumberFieldAdapter extends FieldAdapter {
13
- translate(_fieldAdapter, _args) {}
14
- parse(_adapter, _fieldAdapter, _result, _value, _args) {
15
- throw new SchemaAdapterNotImplementedError({
16
- className: this.constructor.name,
17
- functionName: 'parse'
18
- });
19
- }
20
- }
@@ -1,26 +0,0 @@
1
- import { FieldAdapter } from '.';
2
- import { SchemaAdapterNotImplementedError } from '../../exceptions';
3
- export function objectFieldAdapter(args) {
4
- class CustomObjectFieldAdapter extends ObjectFieldAdapter {
5
- translate = args.translate;
6
- toString = args.toString;
7
- formatError = args.formatError;
8
- parse = args.parse;
9
- }
10
- return CustomObjectFieldAdapter;
11
- }
12
- export class ObjectFieldAdapter extends FieldAdapter {
13
- translate(_fieldAdapter, _args) {}
14
- parse(_adapter, _fieldAdapter, _result, _value, _args) {
15
- throw new SchemaAdapterNotImplementedError({
16
- className: this.constructor.name,
17
- functionName: 'parse'
18
- });
19
- }
20
- toString(_adapter, _fieldAdapter, _args, _base) {
21
- throw new SchemaAdapterNotImplementedError({
22
- className: this.constructor.name,
23
- functionName: 'toString'
24
- });
25
- }
26
- }
@@ -1,20 +0,0 @@
1
- import { FieldAdapter } from '.';
2
- import { SchemaAdapterNotImplementedError } from '../../exceptions';
3
- export function stringFieldAdapter(args) {
4
- class CustomStringFieldAdapter extends StringFieldAdapter {
5
- translate = args.translate;
6
- toString = args.toString;
7
- formatError = args.formatError;
8
- parse = args.parse;
9
- }
10
- return CustomStringFieldAdapter;
11
- }
12
- export class StringFieldAdapter extends FieldAdapter {
13
- translate(_fieldAdapter, _args) {}
14
- parse(_adapter, _fieldAdapter, _result, _value, _args) {
15
- throw new SchemaAdapterNotImplementedError({
16
- className: this.constructor.name,
17
- functionName: 'parse'
18
- });
19
- }
20
- }
@@ -1,20 +0,0 @@
1
- import { FieldAdapter } from '.';
2
- import { SchemaAdapterNotImplementedError } from '../../exceptions';
3
- export function unionFieldAdapter(args) {
4
- class CustomUnionFieldAdapter extends UnionFieldAdapter {
5
- translate = args.translate;
6
- toString = args.toString;
7
- formatError = args.formatError;
8
- parse = args.parse;
9
- }
10
- return CustomUnionFieldAdapter;
11
- }
12
- export class UnionFieldAdapter extends FieldAdapter {
13
- translate(_fieldAdapter, _args) {}
14
- parse(_adapter, _fieldAdapter, _result, _value, _args) {
15
- throw new SchemaAdapterNotImplementedError({
16
- className: this.constructor.name,
17
- functionName: 'parse'
18
- });
19
- }
20
- }
@@ -1,21 +0,0 @@
1
- import { SchemaAdapterNotImplementedError } from '../exceptions';
2
- export class SchemaAdapter {
3
- $$type = '$PSchemaAdapter';
4
- name;
5
- field;
6
- number;
7
- object;
8
- union;
9
- string;
10
- array;
11
- boolean;
12
- datetime;
13
- adapterInstance;
14
- // eslint-disable-next-line ts/require-await
15
- async formatError(_error, _metadata) {
16
- throw new SchemaAdapterNotImplementedError({
17
- className: 'SchemaAdapter',
18
- functionName: 'formatError'
19
- });
20
- }
21
- }
@@ -1 +0,0 @@
1
- export { };
@@ -1,10 +0,0 @@
1
- import { getDefaultStd } from '@palmares/core';
2
- import { getDefaultAdapter } from './conf';
3
- export async function compile(schemas) {
4
- const schemasAsEntries = Object.entries(schemas);
5
- const adapter = getDefaultAdapter();
6
- const std = getDefaultStd();
7
- for (const [keyName, schema] of schemasAsEntries){
8
- console.log(await schema.compile(adapter));
9
- }
10
- }
@@ -1,18 +0,0 @@
1
- import { NoAdapterFoundError } from './exceptions';
2
- /**
3
- * Sets the default adapter to be used by all of your schemas.
4
- *
5
- * @param adapter - The adapter to use when you define schemas.
6
- */ export function setDefaultAdapter(adapter) {
7
- globalThis.$PSchemasAdapter = adapter;
8
- }
9
- /**
10
- * Gets the default adapter to be used by all of your schemas.
11
- *
12
- * @throws {NoAdapterFoundError} - If no adapter has been set.
13
- *
14
- * @returns The default adapter.
15
- */ export function getDefaultAdapter() {
16
- if (!globalThis.$PSchemasAdapter) throw new NoAdapterFoundError();
17
- return globalThis.$PSchemasAdapter;
18
- }
@@ -1,4 +0,0 @@
1
- export const DEFAULT_NUMBER_MAX_EXCEPTION = (max, inclusive)=>`The number is greater than the allowed ${max}.${inclusive ? ` The value ${max} is accepted as well.` : ''}`;
2
- export const DEFAULT_NUMBER_MIN_EXCEPTION = (min, inclusive)=>`The number is less than the allowed ${min}.${inclusive ? ` The value ${min} is accepted as well.` : ''}`;
3
- export const DEFAULT_NUMBER_POSITIVE_EXCEPTION = (allowZero)=>`The number should be positive.${allowZero ? ` The value 0 is accepted as well.` : ''}`;
4
- export const DEFAULT_NUMBER_INTEGER_EXCEPTION = ()=>`The number should be an integer.`;
@@ -1,11 +0,0 @@
1
- import { domain } from '@palmares/core';
2
- import { getDefaultAdapter, setDefaultAdapter } from './conf';
3
- export const schemasDomain = domain('@palmares/schemas', '', {
4
- commands: {},
5
- // eslint-disable-next-line ts/require-await
6
- load: async (settings)=>{
7
- setDefaultAdapter(new settings.schemaAdapter());
8
- const schemaAdapter = getDefaultAdapter();
9
- return undefined;
10
- }
11
- });
@@ -1,15 +0,0 @@
1
- export class SchemaAdapterNotImplementedError extends Error {
2
- constructor(args){
3
- super(`Schema adapter did not implement ${args.functionName} in ${args.className}`);
4
- }
5
- }
6
- export class NoAdapterFoundError extends Error {
7
- constructor(){
8
- super('No adapter found, please define an adapter using setDefaultAdapter() before using any schema.');
9
- }
10
- }
11
- export class TranslatableFieldNotImplementedError extends Error {
12
- constructor(fieldName){
13
- super(`TranslatableField '${fieldName}' did not implement the 'schema' key on 'customAttributes'`);
14
- }
15
- }
@@ -1,126 +0,0 @@
1
- import { SchemaAdapter } from './adapter';
2
- import { schemasDomain as SchemaDomain } from './domain';
3
- import { modelSchema } from './model';
4
- import { ArraySchema, array } from './schema/array';
5
- import { BooleanSchema, boolean } from './schema/boolean';
6
- import { DatetimeSchema, datetime } from './schema/datetime';
7
- import { NumberSchema, number } from './schema/number';
8
- import { ObjectSchema, object } from './schema/object';
9
- import { Schema, schema } from './schema/schema';
10
- import { StringSchema, string } from './schema/string';
11
- import { UnionSchema, union } from './schema/union';
12
- export { FieldAdapter, fieldAdapter } from './adapter/fields';
13
- export { NumberFieldAdapter, numberFieldAdapter } from './adapter/fields/number';
14
- export { ObjectFieldAdapter, objectFieldAdapter } from './adapter/fields/object';
15
- export { UnionFieldAdapter, unionFieldAdapter } from './adapter/fields/union';
16
- export { StringFieldAdapter, stringFieldAdapter } from './adapter/fields/string';
17
- export { ArrayFieldAdapter, arrayFieldAdapter } from './adapter/fields/array';
18
- export { BooleanFieldAdapter, booleanFieldAdapter } from './adapter/fields/boolean';
19
- export { DatetimeFieldAdapter, datetimeFieldAdapter } from './adapter/fields/datetime';
20
- export { setDefaultAdapter, getDefaultAdapter } from './conf';
21
- export * from './adapter/types';
22
- export * from './schema';
23
- export { SchemaAdapter, NumberSchema, ObjectSchema, UnionSchema, StringSchema, ArraySchema, BooleanSchema, DatetimeSchema, Schema };
24
- export { schema, number, object, union, string, array, datetime, boolean };
25
- export { compile } from './compile';
26
- export { schemaHandler } from './middleware';
27
- export { modelSchema };
28
- export { SchemaDomain };
29
- export default SchemaDomain;
30
- export function getSchemasWithDefaultAdapter() {
31
- return {
32
- number: ()=>NumberSchema.new(),
33
- string: ()=>StringSchema.new(),
34
- array: (...schemas)=>array(...schemas),
35
- boolean: ()=>BooleanSchema.new(),
36
- object: (data)=>ObjectSchema.new(data),
37
- union: (...schemas)=>UnionSchema.new(schemas),
38
- datetime: ()=>DatetimeSchema.new(),
39
- /**
40
- * Different from other models, this function is a factory function that returns either an ObjectSchema or
41
- * an ArraySchema.
42
- * The idea is to build the schema of a model dynamically based on its fields.
43
- *
44
- * Another feature is that it can automatically add the foreign key relation to the schema,
45
- * but for that you need to define the fields of the related model in the fields object.
46
- *
47
- * For example: A User model have a field `companyId` that is a ForeignKeyField to the Company model.
48
- * The `relationName` is the direct relation from the User model to the Company model, and the `relatedName`
49
- * is the reverse relation from the Company model to the User model. If you define the fieldName as either
50
- * the relatedName or the relationName it will fetch the data automatically.
51
- *
52
- * **Important**: We build the schema dynamically but also lazily, if you don't try to parse or validate the
53
- * schema, it won't be built. After the first time it's built, it's cached and never built again.
54
- *
55
- * **Important 2**: If you want to use the automatic relation feature, you need to define guarantee that the
56
- * foreignKey field fieldName exists on `show` array, or that it doesn't exist on `omit` array.
57
- *
58
- * Like: `{ options: { show: ['id', 'name', 'companyId'] }}` or `{ options: { omit: ['id'] }}` it **will work**.
59
- *
60
- * If you do `{ options: { show: ['id', 'name'] }}` or `{ options: { omit: ['companyId']} }` it **won't work**.
61
- *
62
- * **Important 3**: If you want to return an array instead of an object, you need to pass the `many` option as true.
63
- *
64
- * @example
65
- * ```typescript
66
- * import { auto, choice, foreignKey, Model, define } from '@palmares/databases';
67
- * import * as p from '@palmares/schemas';
68
- *
69
- * const Company = define('Company', {
70
- * fields: {
71
- * id: auto(),
72
- * name: text(),
73
- * },
74
- * options: {
75
- * tableName: 'company',
76
- * }
77
- * });
78
- *
79
- * class User extends Model<User>() {
80
- * fields = {
81
- * id: auto(),
82
- * type: choice({ choices: ['user', 'admin'] }),
83
- * companyId: foreignKey({
84
- * relatedTo: Company,
85
- * relationName: 'company',
86
- * relatedName: 'usersOfCompany',
87
- * toField: 'id',
88
- * onDelete: 'CASCADE',
89
- * }),
90
- * }
91
- *
92
- * options = {
93
- * tableName: 'user',
94
- * }
95
- * }
96
- *
97
- * const userSchema = p.modelSchema(User, {
98
- * fields: {
99
- * company: p.modelSchema(Company).optional({ outputOnly: true });
100
- * },
101
- * show: ['type', 'companyId']
102
- * });
103
- *
104
- * const companySchema = p.modelSchema(Company, {
105
- * fields: {
106
- * usersOfCompany: p.modelSchema(User, { many: true }).optional({ outputOnly: true });
107
- * },
108
- * show: ['id', 'type']
109
- * });
110
- *```
111
- * @param model - The model that you want to build the schema from.
112
- * @param options - The options to build the schema.
113
- * @param options.ignoreExtraneousFields - If you want to ignore extraneous fields set this to true.
114
- * @param options.engineInstance - What engine instance you want to use to fetch the data.
115
- * Defaults to the first one.
116
- * @param options.fields - Extra fields that you want to add to the schema. If it has the same name as the
117
- * model field, We will not create a schema for that field and use the one you have defined here.
118
- * @param options.omit - Fields that you want to omit from the schema. If that is defined, we ignore `show` option.
119
- * @param options.show - Fields that you want to show on the schema. If that is defined, we ignore `omit` option.
120
- * @param options.many - If you want to return an array instead of an object, set this to true. With that we create
121
- * an ArraySchema instead of an ObjectSchema.
122
- *
123
- * @returns - If you pass the `many` option as true, we return an ArraySchema, otherwise we return an ObjectSchema.
124
- */ modelSchema: (model, options)=>modelSchema(model, options)
125
- };
126
- }
@@ -1,29 +0,0 @@
1
- import { Response } from '@palmares/server';
2
- /**
3
- * Validates the request body and returns a response automatically, don't need to do anything else.
4
- */ export function schemaHandler(input, output) {
5
- return async (request)=>{
6
- const data = await request.json();
7
- const validatedData = await input.validate(data, {
8
- request
9
- });
10
- if (validatedData.isValid) {
11
- const savedData = await validatedData.save();
12
- const status = request.method === 'POST' ? 201 : 200;
13
- if (output) return Response.json(await output.data(savedData), {
14
- status: status
15
- });
16
- return Response.json(savedData, {
17
- status,
18
- headers: {
19
- 'content-type': 'application/json'
20
- }
21
- });
22
- }
23
- return Response.json({
24
- errors: validatedData.errors
25
- }, {
26
- status: 400
27
- });
28
- };
29
- }