@palmares/schemas 0.0.1 → 0.1.1

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 (175) hide show
  1. package/.turbo/turbo-build$colon$watch.log +12 -410
  2. package/.turbo/turbo-build.log +13 -4
  3. package/CHANGELOG.md +26 -0
  4. package/__tests__/.drizzle/migrations/0000_skinny_harrier.sql +22 -0
  5. package/__tests__/.drizzle/migrations/meta/0000_snapshot.json +156 -0
  6. package/__tests__/.drizzle/migrations/meta/_journal.json +13 -0
  7. package/__tests__/.drizzle/schema.ts +35 -0
  8. package/__tests__/drizzle.config.ts +11 -0
  9. package/__tests__/eslint.config.js +10 -0
  10. package/__tests__/manage.ts +5 -0
  11. package/__tests__/node_modules/.bin/drizzle-kit +17 -0
  12. package/__tests__/node_modules/.bin/esbuild +14 -0
  13. package/__tests__/node_modules/.bin/tsc +17 -0
  14. package/__tests__/node_modules/.bin/tsserver +17 -0
  15. package/__tests__/node_modules/.bin/tsx +17 -0
  16. package/__tests__/package.json +36 -0
  17. package/__tests__/sqlite.db +0 -0
  18. package/__tests__/src/core/array.test.ts +130 -0
  19. package/__tests__/src/core/boolean.test.ts +66 -0
  20. package/__tests__/src/core/datetime.test.ts +102 -0
  21. package/__tests__/src/core/index.ts +35 -0
  22. package/__tests__/src/core/model.test.ts +260 -0
  23. package/__tests__/src/core/models.ts +50 -0
  24. package/__tests__/src/core/numbers.test.ts +177 -0
  25. package/__tests__/src/core/object.test.ts +198 -0
  26. package/__tests__/src/core/string.test.ts +222 -0
  27. package/__tests__/src/core/test.test.ts +59 -0
  28. package/__tests__/src/core/types.test.ts +97 -0
  29. package/__tests__/src/core/union.test.ts +99 -0
  30. package/__tests__/src/settings.ts +71 -0
  31. package/__tests__/tsconfig.json +11 -0
  32. package/dist/cjs/src/adapter/fields/index.js +2 -2
  33. package/dist/cjs/src/adapter/fields/object.js +9 -0
  34. package/dist/cjs/src/adapter/index.js +1 -0
  35. package/dist/cjs/src/constants.js +1 -7
  36. package/dist/cjs/src/domain.js +146 -1
  37. package/dist/cjs/src/index.js +69 -74
  38. package/dist/cjs/src/model.js +206 -206
  39. package/dist/cjs/src/schema/array.js +185 -58
  40. package/dist/cjs/src/schema/boolean.js +105 -44
  41. package/dist/cjs/src/schema/datetime.js +104 -38
  42. package/dist/cjs/src/schema/number.js +134 -114
  43. package/dist/cjs/src/schema/object.js +106 -43
  44. package/dist/cjs/src/schema/schema.js +123 -75
  45. package/dist/cjs/src/schema/string.js +152 -58
  46. package/dist/cjs/src/schema/union.js +412 -290
  47. package/dist/cjs/src/utils.js +42 -15
  48. package/dist/cjs/src/validators/array.js +6 -1
  49. package/dist/cjs/src/validators/boolean.js +2 -0
  50. package/dist/cjs/src/validators/datetime.js +4 -0
  51. package/dist/cjs/src/validators/number.js +12 -40
  52. package/dist/cjs/src/validators/object.js +1 -0
  53. package/dist/cjs/src/validators/schema.js +5 -1
  54. package/dist/cjs/src/validators/string.js +30 -2
  55. package/dist/cjs/src/validators/union.js +5 -4
  56. package/dist/cjs/src/validators/utils.js +99 -27
  57. package/dist/cjs/tsconfig.types.tsbuildinfo +1 -1
  58. package/dist/cjs/types/adapter/fields/array.d.ts +2 -2
  59. package/dist/cjs/types/adapter/fields/array.d.ts.map +1 -1
  60. package/dist/cjs/types/adapter/fields/boolean.d.ts.map +1 -1
  61. package/dist/cjs/types/adapter/fields/datetime.d.ts.map +1 -1
  62. package/dist/cjs/types/adapter/fields/index.d.ts +2 -2
  63. package/dist/cjs/types/adapter/fields/index.d.ts.map +1 -1
  64. package/dist/cjs/types/adapter/fields/number.d.ts.map +1 -1
  65. package/dist/cjs/types/adapter/fields/object.d.ts +2 -1
  66. package/dist/cjs/types/adapter/fields/object.d.ts.map +1 -1
  67. package/dist/cjs/types/adapter/fields/string.d.ts.map +1 -1
  68. package/dist/cjs/types/adapter/fields/union.d.ts.map +1 -1
  69. package/dist/cjs/types/adapter/index.d.ts +1 -0
  70. package/dist/cjs/types/adapter/index.d.ts.map +1 -1
  71. package/dist/cjs/types/adapter/types.d.ts +28 -18
  72. package/dist/cjs/types/adapter/types.d.ts.map +1 -1
  73. package/dist/cjs/types/constants.d.ts +0 -1
  74. package/dist/cjs/types/constants.d.ts.map +1 -1
  75. package/dist/cjs/types/domain.d.ts +5 -4
  76. package/dist/cjs/types/domain.d.ts.map +1 -1
  77. package/dist/cjs/types/index.d.ts +78 -55
  78. package/dist/cjs/types/index.d.ts.map +1 -1
  79. package/dist/cjs/types/model.d.ts +17 -17
  80. package/dist/cjs/types/model.d.ts.map +1 -1
  81. package/dist/cjs/types/schema/array.d.ts +168 -47
  82. package/dist/cjs/types/schema/array.d.ts.map +1 -1
  83. package/dist/cjs/types/schema/boolean.d.ts +103 -44
  84. package/dist/cjs/types/schema/boolean.d.ts.map +1 -1
  85. package/dist/cjs/types/schema/datetime.d.ts +90 -30
  86. package/dist/cjs/types/schema/datetime.d.ts.map +1 -1
  87. package/dist/cjs/types/schema/number.d.ts +133 -125
  88. package/dist/cjs/types/schema/number.d.ts.map +1 -1
  89. package/dist/cjs/types/schema/object.d.ts +104 -35
  90. package/dist/cjs/types/schema/object.d.ts.map +1 -1
  91. package/dist/cjs/types/schema/schema.d.ts +62 -44
  92. package/dist/cjs/types/schema/schema.d.ts.map +1 -1
  93. package/dist/cjs/types/schema/string.d.ts +152 -65
  94. package/dist/cjs/types/schema/string.d.ts.map +1 -1
  95. package/dist/cjs/types/schema/types.d.ts +11 -2
  96. package/dist/cjs/types/schema/types.d.ts.map +1 -1
  97. package/dist/cjs/types/schema/union.d.ts +133 -40
  98. package/dist/cjs/types/schema/union.d.ts.map +1 -1
  99. package/dist/cjs/types/types.d.ts +35 -0
  100. package/dist/cjs/types/types.d.ts.map +1 -1
  101. package/dist/cjs/types/utils.d.ts +41 -27
  102. package/dist/cjs/types/utils.d.ts.map +1 -1
  103. package/dist/cjs/types/validators/array.d.ts.map +1 -1
  104. package/dist/cjs/types/validators/boolean.d.ts.map +1 -1
  105. package/dist/cjs/types/validators/datetime.d.ts.map +1 -1
  106. package/dist/cjs/types/validators/number.d.ts +5 -6
  107. package/dist/cjs/types/validators/number.d.ts.map +1 -1
  108. package/dist/cjs/types/validators/object.d.ts.map +1 -1
  109. package/dist/cjs/types/validators/schema.d.ts +2 -2
  110. package/dist/cjs/types/validators/schema.d.ts.map +1 -1
  111. package/dist/cjs/types/validators/string.d.ts +9 -9
  112. package/dist/cjs/types/validators/string.d.ts.map +1 -1
  113. package/dist/cjs/types/validators/utils.d.ts +44 -27
  114. package/dist/cjs/types/validators/utils.d.ts.map +1 -1
  115. package/dist/esm/src/adapter/fields/index.js +2 -2
  116. package/dist/esm/src/adapter/fields/object.js +6 -0
  117. package/dist/esm/src/adapter/index.js +1 -0
  118. package/dist/esm/src/constants.js +1 -2
  119. package/dist/esm/src/domain.js +11 -1
  120. package/dist/esm/src/index.js +38 -73
  121. package/dist/esm/src/model.js +83 -78
  122. package/dist/esm/src/schema/array.js +136 -54
  123. package/dist/esm/src/schema/boolean.js +98 -44
  124. package/dist/esm/src/schema/datetime.js +91 -38
  125. package/dist/esm/src/schema/number.js +127 -110
  126. package/dist/esm/src/schema/object.js +98 -43
  127. package/dist/esm/src/schema/schema.js +102 -67
  128. package/dist/esm/src/schema/string.js +147 -59
  129. package/dist/esm/src/schema/union.js +119 -40
  130. package/dist/esm/src/types.js +14 -1
  131. package/dist/esm/src/utils.js +56 -27
  132. package/dist/esm/src/validators/array.js +6 -1
  133. package/dist/esm/src/validators/boolean.js +2 -0
  134. package/dist/esm/src/validators/datetime.js +4 -0
  135. package/dist/esm/src/validators/number.js +9 -23
  136. package/dist/esm/src/validators/object.js +1 -0
  137. package/dist/esm/src/validators/schema.js +5 -1
  138. package/dist/esm/src/validators/string.js +30 -2
  139. package/dist/esm/src/validators/union.js +5 -4
  140. package/dist/esm/src/validators/utils.js +62 -36
  141. package/package.json +3 -3
  142. package/src/adapter/fields/array.ts +2 -2
  143. package/src/adapter/fields/boolean.ts +3 -8
  144. package/src/adapter/fields/datetime.ts +3 -9
  145. package/src/adapter/fields/index.ts +11 -11
  146. package/src/adapter/fields/number.ts +3 -9
  147. package/src/adapter/fields/object.ts +13 -10
  148. package/src/adapter/fields/string.ts +3 -9
  149. package/src/adapter/fields/union.ts +3 -9
  150. package/src/adapter/index.ts +1 -0
  151. package/src/adapter/types.ts +60 -45
  152. package/src/constants.ts +1 -3
  153. package/src/domain.ts +15 -1
  154. package/src/index.ts +189 -211
  155. package/src/model.ts +119 -115
  156. package/src/schema/array.ts +274 -90
  157. package/src/schema/boolean.ts +145 -60
  158. package/src/schema/datetime.ts +133 -49
  159. package/src/schema/number.ts +210 -173
  160. package/src/schema/object.ts +167 -74
  161. package/src/schema/schema.ts +205 -126
  162. package/src/schema/string.ts +221 -94
  163. package/src/schema/types.ts +44 -16
  164. package/src/schema/union.ts +193 -68
  165. package/src/types.ts +53 -0
  166. package/src/utils.ts +115 -57
  167. package/src/validators/array.ts +46 -27
  168. package/src/validators/boolean.ts +13 -7
  169. package/src/validators/datetime.ts +24 -16
  170. package/src/validators/number.ts +53 -63
  171. package/src/validators/object.ts +6 -5
  172. package/src/validators/schema.ts +33 -25
  173. package/src/validators/string.ts +122 -59
  174. package/src/validators/union.ts +8 -8
  175. package/src/validators/utils.ts +67 -42
@@ -9,4 +9,149 @@ Object.defineProperty(exports, "default", {
9
9
  }
10
10
  });
11
11
  var _core = require("@palmares/core");
12
- var _default = (0, _core.domain)('@palmares/schemas', __dirname, {});
12
+ var _conf = require("./conf");
13
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
14
+ try {
15
+ var info = gen[key](arg);
16
+ var value = info.value;
17
+ } catch (error) {
18
+ reject(error);
19
+ return;
20
+ }
21
+ if (info.done) {
22
+ resolve(value);
23
+ } else {
24
+ Promise.resolve(value).then(_next, _throw);
25
+ }
26
+ }
27
+ function _async_to_generator(fn) {
28
+ return function() {
29
+ var self = this, args = arguments;
30
+ return new Promise(function(resolve, reject) {
31
+ var gen = fn.apply(self, args);
32
+ function _next(value) {
33
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
34
+ }
35
+ function _throw(err) {
36
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
37
+ }
38
+ _next(undefined);
39
+ });
40
+ };
41
+ }
42
+ function _ts_generator(thisArg, body) {
43
+ var f, y, t, g, _ = {
44
+ label: 0,
45
+ sent: function() {
46
+ if (t[0] & 1) throw t[1];
47
+ return t[1];
48
+ },
49
+ trys: [],
50
+ ops: []
51
+ };
52
+ return g = {
53
+ next: verb(0),
54
+ "throw": verb(1),
55
+ "return": verb(2)
56
+ }, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
57
+ return this;
58
+ }), g;
59
+ function verb(n) {
60
+ return function(v) {
61
+ return step([
62
+ n,
63
+ v
64
+ ]);
65
+ };
66
+ }
67
+ function step(op) {
68
+ if (f) throw new TypeError("Generator is already executing.");
69
+ while(_)try {
70
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
71
+ if (y = 0, t) op = [
72
+ op[0] & 2,
73
+ t.value
74
+ ];
75
+ switch(op[0]){
76
+ case 0:
77
+ case 1:
78
+ t = op;
79
+ break;
80
+ case 4:
81
+ _.label++;
82
+ return {
83
+ value: op[1],
84
+ done: false
85
+ };
86
+ case 5:
87
+ _.label++;
88
+ y = op[1];
89
+ op = [
90
+ 0
91
+ ];
92
+ continue;
93
+ case 7:
94
+ op = _.ops.pop();
95
+ _.trys.pop();
96
+ continue;
97
+ default:
98
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
99
+ _ = 0;
100
+ continue;
101
+ }
102
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
103
+ _.label = op[1];
104
+ break;
105
+ }
106
+ if (op[0] === 6 && _.label < t[1]) {
107
+ _.label = t[1];
108
+ t = op;
109
+ break;
110
+ }
111
+ if (t && _.label < t[2]) {
112
+ _.label = t[2];
113
+ _.ops.push(op);
114
+ break;
115
+ }
116
+ if (t[2]) _.ops.pop();
117
+ _.trys.pop();
118
+ continue;
119
+ }
120
+ op = body.call(thisArg, _);
121
+ } catch (e) {
122
+ op = [
123
+ 6,
124
+ e
125
+ ];
126
+ y = 0;
127
+ } finally{
128
+ f = t = 0;
129
+ }
130
+ if (op[0] & 5) throw op[1];
131
+ return {
132
+ value: op[0] ? op[1] : void 0,
133
+ done: true
134
+ };
135
+ }
136
+ }
137
+ var schemasDomain = (0, _core.domain)('@palmares/schemas', __dirname, {
138
+ commands: {},
139
+ // eslint-disable-next-line ts/require-await
140
+ load: function() {
141
+ var _ref = _async_to_generator(function(settings) {
142
+ var schemaAdapter;
143
+ return _ts_generator(this, function(_state) {
144
+ (0, _conf.setDefaultAdapter)(new settings.schemaAdapter());
145
+ schemaAdapter = (0, _conf.getDefaultAdapter)();
146
+ return [
147
+ 2,
148
+ undefined
149
+ ];
150
+ });
151
+ });
152
+ return function(settings) {
153
+ return _ref.apply(this, arguments);
154
+ };
155
+ }()
156
+ });
157
+ var _default = schemasDomain;
@@ -30,7 +30,7 @@ _export(exports, {
30
30
  FieldAdapter: function() {
31
31
  return _fields.default;
32
32
  },
33
- NumberAdapter: function() {
33
+ NumberFieldAdapter: function() {
34
34
  return _number1.default;
35
35
  },
36
36
  NumberSchema: function() {
@@ -63,30 +63,54 @@ _export(exports, {
63
63
  array: function() {
64
64
  return _array.array;
65
65
  },
66
+ arrayFieldAdapter: function() {
67
+ return _array1.arrayFieldAdapter;
68
+ },
66
69
  boolean: function() {
67
70
  return _boolean.boolean;
68
71
  },
72
+ booleanFieldAdapter: function() {
73
+ return _boolean1.booleanFieldAdapter;
74
+ },
69
75
  compile: function() {
70
76
  return _compile.default;
71
77
  },
72
78
  datetime: function() {
73
79
  return _datetime.datetime;
74
80
  },
81
+ datetimeFieldAdapter: function() {
82
+ return _datetime1.datetimeFieldAdapter;
83
+ },
75
84
  default: function() {
76
- return _domain.default;
85
+ return _default;
86
+ },
87
+ fieldAdapter: function() {
88
+ return _fields.fieldAdapter;
89
+ },
90
+ getDefaultAdapter: function() {
91
+ return _conf.getDefaultAdapter;
77
92
  },
78
93
  getSchemasWithDefaultAdapter: function() {
79
94
  return getSchemasWithDefaultAdapter;
80
95
  },
96
+ infer: function() {
97
+ return _types.Infer;
98
+ },
81
99
  modelSchema: function() {
82
100
  return _model.modelSchema;
83
101
  },
84
102
  number: function() {
85
103
  return _number.number;
86
104
  },
105
+ numberFieldAdapter: function() {
106
+ return _number1.numberFieldAdapter;
107
+ },
87
108
  object: function() {
88
109
  return _object.object;
89
110
  },
111
+ objectFieldAdapter: function() {
112
+ return _object1.objectFieldAdapter;
113
+ },
90
114
  schema: function() {
91
115
  return _schema.schema;
92
116
  },
@@ -96,11 +120,18 @@ _export(exports, {
96
120
  string: function() {
97
121
  return _string.string;
98
122
  },
123
+ stringFieldAdapter: function() {
124
+ return _string1.stringFieldAdapter;
125
+ },
99
126
  union: function() {
100
127
  return _union.union;
128
+ },
129
+ unionFieldAdapter: function() {
130
+ return _union1.unionFieldAdapter;
101
131
  }
102
132
  });
103
133
  var _adapter = /*#__PURE__*/ _interop_require_default(require("./adapter"));
134
+ var _domain = /*#__PURE__*/ _interop_require_default(require("./domain"));
104
135
  var _model = require("./model");
105
136
  var _array = /*#__PURE__*/ _interop_require_wildcard(require("./schema/array"));
106
137
  var _boolean = /*#__PURE__*/ _interop_require_wildcard(require("./schema/boolean"));
@@ -110,15 +141,15 @@ var _object = /*#__PURE__*/ _interop_require_wildcard(require("./schema/object")
110
141
  var _schema = /*#__PURE__*/ _interop_require_wildcard(require("./schema/schema"));
111
142
  var _string = /*#__PURE__*/ _interop_require_wildcard(require("./schema/string"));
112
143
  var _union = /*#__PURE__*/ _interop_require_wildcard(require("./schema/union"));
113
- var _domain = /*#__PURE__*/ _interop_require_default(require("./domain"));
114
- var _fields = /*#__PURE__*/ _interop_require_default(require("./adapter/fields"));
115
- var _number1 = /*#__PURE__*/ _interop_require_default(require("./adapter/fields/number"));
116
- var _object1 = /*#__PURE__*/ _interop_require_default(require("./adapter/fields/object"));
117
- var _union1 = /*#__PURE__*/ _interop_require_default(require("./adapter/fields/union"));
118
- var _string1 = /*#__PURE__*/ _interop_require_default(require("./adapter/fields/string"));
119
- var _array1 = /*#__PURE__*/ _interop_require_default(require("./adapter/fields/array"));
120
- var _boolean1 = /*#__PURE__*/ _interop_require_default(require("./adapter/fields/boolean"));
121
- var _datetime1 = /*#__PURE__*/ _interop_require_default(require("./adapter/fields/datetime"));
144
+ var _fields = /*#__PURE__*/ _interop_require_wildcard(require("./adapter/fields"));
145
+ var _number1 = /*#__PURE__*/ _interop_require_wildcard(require("./adapter/fields/number"));
146
+ var _object1 = /*#__PURE__*/ _interop_require_wildcard(require("./adapter/fields/object"));
147
+ var _union1 = /*#__PURE__*/ _interop_require_wildcard(require("./adapter/fields/union"));
148
+ var _string1 = /*#__PURE__*/ _interop_require_wildcard(require("./adapter/fields/string"));
149
+ var _array1 = /*#__PURE__*/ _interop_require_wildcard(require("./adapter/fields/array"));
150
+ var _boolean1 = /*#__PURE__*/ _interop_require_wildcard(require("./adapter/fields/boolean"));
151
+ var _datetime1 = /*#__PURE__*/ _interop_require_wildcard(require("./adapter/fields/datetime"));
152
+ var _types = require("./types");
122
153
  var _conf = require("./conf");
123
154
  _export_star(require("./adapter/types"), exports);
124
155
  _export_star(require("./schema"), exports);
@@ -207,6 +238,7 @@ function _unsupported_iterable_to_array(o, minLen) {
207
238
  if (n === "Map" || n === "Set") return Array.from(n);
208
239
  if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
209
240
  }
241
+ var _default = _domain.default;
210
242
  function getSchemasWithDefaultAdapter() {
211
243
  return {
212
244
  number: function() {
@@ -237,22 +269,23 @@ function getSchemasWithDefaultAdapter() {
237
269
  return _datetime.default.new();
238
270
  },
239
271
  /**
240
- * Different from other models, this function is a factory function that returns either an ObjectSchema or an ArraySchema.
272
+ * Different from other models, this function is a factory function that returns either an ObjectSchema or
273
+ * an ArraySchema.
241
274
  * The idea is to build the schema of a model dynamically based on its fields.
242
275
  *
243
- * Another feature is that it can automatically add the foreign key relation to the schema, but for that you need to define
244
- * the fields of the related model in the fields object.
276
+ * Another feature is that it can automatically add the foreign key relation to the schema,
277
+ * but for that you need to define the fields of the related model in the fields object.
245
278
  *
246
- * For example: A User model have a field `companyId` that is a ForeignKeyField to the Company model. The `relationName`
247
- * is the direct relation from the User model to the Company model, and the `relatedName` is the reverse relation from the
248
- * Company model to the User model. If you define the fieldName as either the relatedName or the relationName it will fetch
249
- * the data automatically.
279
+ * For example: A User model have a field `companyId` that is a ForeignKeyField to the Company model.
280
+ * The `relationName` is the direct relation from the User model to the Company model, and the `relatedName`
281
+ * is the reverse relation from the Company model to the User model. If you define the fieldName as either
282
+ * the relatedName or the relationName it will fetch the data automatically.
250
283
  *
251
- * **Important**: We build the schema dynamically but also lazily, if you don't try to parse or validate the schema, it won't be built.
252
- * After the first time it's built, it's cached and never built again.
284
+ * **Important**: We build the schema dynamically but also lazily, if you don't try to parse or validate the
285
+ * schema, it won't be built. After the first time it's built, it's cached and never built again.
253
286
  *
254
- * **Important 2**: If you want to use the automatic relation feature, you need to define guarantee that the foreignKey field fieldName
255
- * exists on `show` array, or that it doesn't exist on `omit` array.
287
+ * **Important 2**: If you want to use the automatic relation feature, you need to define guarantee that the
288
+ * foreignKey field fieldName exists on `show` array, or that it doesn't exist on `omit` array.
256
289
  *
257
290
  * Like: `{ options: { show: ['id', 'name', 'companyId'] }}` or `{ options: { omit: ['id'] }}` it **will work**.
258
291
  *
@@ -307,59 +340,21 @@ function getSchemasWithDefaultAdapter() {
307
340
  * show: ['id', 'type']
308
341
  * });
309
342
  *```
310
- * @param model - The model that you want to build the schema from.
311
- * @param options - The options to build the schema.
312
- * @param options.ignoreExtraneousFields - If you want to ignore extraneous fields set this to true.
313
- * @param options.engineInstance - What engine instance you want to use to fetch the data. Defaults to the first one.
314
- * @param options.fields - Extra fields that you want to add to the schema. If it has the same name as the model field,
315
- * We will not create a schema for that field and use the one you have defined here.
316
- * @param options.omit - Fields that you want to omit from the schema. If that is defined, we ignore `show` option.
317
- * @param options.show - Fields that you want to show on the schema. If that is defined, we ignore `omit` option.
318
- * @param options.many - If you want to return an array instead of an object, set this to true. With that we create
319
- * an ArraySchema instead of an ObjectSchema.
320
- *
321
- * @returns - If you pass the `many` option as true, we return an ArraySchema, otherwise we return an ObjectSchema.
322
- */ modelSchema: function(model, options) {
343
+ * @param model - The model that you want to build the schema from.
344
+ * @param options - The options to build the schema.
345
+ * @param options.ignoreExtraneousFields - If you want to ignore extraneous fields set this to true.
346
+ * @param options.engineInstance - What engine instance you want to use to fetch the data.
347
+ * Defaults to the first one.
348
+ * @param options.fields - Extra fields that you want to add to the schema. If it has the same name as the
349
+ * model field, We will not create a schema for that field and use the one you have defined here.
350
+ * @param options.omit - Fields that you want to omit from the schema. If that is defined, we ignore `show` option.
351
+ * @param options.show - Fields that you want to show on the schema. If that is defined, we ignore `omit` option.
352
+ * @param options.many - If you want to return an array instead of an object, set this to true. With that we create
353
+ * an ArraySchema instead of an ObjectSchema.
354
+ *
355
+ * @returns - If you pass the `many` option as true, we return an ArraySchema, otherwise we return an ObjectSchema.
356
+ */ modelSchema: function(model, options) {
323
357
  return (0, _model.modelSchema)(model, options);
324
358
  }
325
359
  };
326
- } /*
327
- export class User extends Model<User>() {
328
- fields = {
329
- id: AutoField.new(),
330
- uuid: UuidField.new({
331
- autoGenerate: true
332
- }),
333
- name: CharField.new({ maxLength: 255, dbIndex: true, allowNull: true }),
334
- age: IntegerField.new({ dbIndex: true }),
335
- userType: EnumField.new({ choices: ['admin', 'user'], defaultValue: 'admin' }),
336
- price: DecimalField.new({ maxDigits: 5, decimalPlaces: 2, allowNull: true }),
337
- isActive: BooleanField.new({ defaultValue: true }),
338
- companyId: ForeignKeyField.new({
339
- onDelete: ON_DELETE.CASCADE,
340
- relatedName: 'usersOfCompany',
341
- relationName: 'company',
342
- toField: 'id',
343
- relatedTo: Company
344
- }),
345
- updatedAt: DateField.new({ autoNow: true }),
346
- createdAt: DateField.new({ autoNowAdd: true }),
347
- }
348
-
349
- options: ModelOptionsType<User> = {
350
- tableName: 'users',
351
- }
352
- }
353
-
354
- export class Company extends Model<Company>() {
355
- fields = {
356
- id: AutoField.new(),
357
- name: CharField.new({ maxLength: 255 }),
358
- address: CharField.new({ maxLength: 255, allowNull: true }),
359
- }
360
-
361
- options: ModelOptionsType<Company> = {
362
- tableName: 'companies',
363
- }
364
360
  }
365
- */