@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.
- package/.turbo/turbo-build$colon$watch.log +12 -410
- package/.turbo/turbo-build.log +13 -4
- package/CHANGELOG.md +26 -0
- package/__tests__/.drizzle/migrations/0000_skinny_harrier.sql +22 -0
- package/__tests__/.drizzle/migrations/meta/0000_snapshot.json +156 -0
- package/__tests__/.drizzle/migrations/meta/_journal.json +13 -0
- package/__tests__/.drizzle/schema.ts +35 -0
- package/__tests__/drizzle.config.ts +11 -0
- package/__tests__/eslint.config.js +10 -0
- package/__tests__/manage.ts +5 -0
- package/__tests__/node_modules/.bin/drizzle-kit +17 -0
- package/__tests__/node_modules/.bin/esbuild +14 -0
- package/__tests__/node_modules/.bin/tsc +17 -0
- package/__tests__/node_modules/.bin/tsserver +17 -0
- package/__tests__/node_modules/.bin/tsx +17 -0
- package/__tests__/package.json +36 -0
- package/__tests__/sqlite.db +0 -0
- package/__tests__/src/core/array.test.ts +130 -0
- package/__tests__/src/core/boolean.test.ts +66 -0
- package/__tests__/src/core/datetime.test.ts +102 -0
- package/__tests__/src/core/index.ts +35 -0
- package/__tests__/src/core/model.test.ts +260 -0
- package/__tests__/src/core/models.ts +50 -0
- package/__tests__/src/core/numbers.test.ts +177 -0
- package/__tests__/src/core/object.test.ts +198 -0
- package/__tests__/src/core/string.test.ts +222 -0
- package/__tests__/src/core/test.test.ts +59 -0
- package/__tests__/src/core/types.test.ts +97 -0
- package/__tests__/src/core/union.test.ts +99 -0
- package/__tests__/src/settings.ts +71 -0
- package/__tests__/tsconfig.json +11 -0
- package/dist/cjs/src/adapter/fields/index.js +2 -2
- package/dist/cjs/src/adapter/fields/object.js +9 -0
- package/dist/cjs/src/adapter/index.js +1 -0
- package/dist/cjs/src/constants.js +1 -7
- package/dist/cjs/src/domain.js +146 -1
- package/dist/cjs/src/index.js +69 -74
- package/dist/cjs/src/model.js +206 -206
- package/dist/cjs/src/schema/array.js +185 -58
- package/dist/cjs/src/schema/boolean.js +105 -44
- package/dist/cjs/src/schema/datetime.js +104 -38
- package/dist/cjs/src/schema/number.js +134 -114
- package/dist/cjs/src/schema/object.js +106 -43
- package/dist/cjs/src/schema/schema.js +123 -75
- package/dist/cjs/src/schema/string.js +152 -58
- package/dist/cjs/src/schema/union.js +412 -290
- package/dist/cjs/src/utils.js +42 -15
- package/dist/cjs/src/validators/array.js +6 -1
- package/dist/cjs/src/validators/boolean.js +2 -0
- package/dist/cjs/src/validators/datetime.js +4 -0
- package/dist/cjs/src/validators/number.js +12 -40
- package/dist/cjs/src/validators/object.js +1 -0
- package/dist/cjs/src/validators/schema.js +5 -1
- package/dist/cjs/src/validators/string.js +30 -2
- package/dist/cjs/src/validators/union.js +5 -4
- package/dist/cjs/src/validators/utils.js +99 -27
- package/dist/cjs/tsconfig.types.tsbuildinfo +1 -1
- package/dist/cjs/types/adapter/fields/array.d.ts +2 -2
- package/dist/cjs/types/adapter/fields/array.d.ts.map +1 -1
- package/dist/cjs/types/adapter/fields/boolean.d.ts.map +1 -1
- package/dist/cjs/types/adapter/fields/datetime.d.ts.map +1 -1
- package/dist/cjs/types/adapter/fields/index.d.ts +2 -2
- package/dist/cjs/types/adapter/fields/index.d.ts.map +1 -1
- package/dist/cjs/types/adapter/fields/number.d.ts.map +1 -1
- package/dist/cjs/types/adapter/fields/object.d.ts +2 -1
- package/dist/cjs/types/adapter/fields/object.d.ts.map +1 -1
- package/dist/cjs/types/adapter/fields/string.d.ts.map +1 -1
- package/dist/cjs/types/adapter/fields/union.d.ts.map +1 -1
- package/dist/cjs/types/adapter/index.d.ts +1 -0
- package/dist/cjs/types/adapter/index.d.ts.map +1 -1
- package/dist/cjs/types/adapter/types.d.ts +28 -18
- package/dist/cjs/types/adapter/types.d.ts.map +1 -1
- package/dist/cjs/types/constants.d.ts +0 -1
- package/dist/cjs/types/constants.d.ts.map +1 -1
- package/dist/cjs/types/domain.d.ts +5 -4
- package/dist/cjs/types/domain.d.ts.map +1 -1
- package/dist/cjs/types/index.d.ts +78 -55
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/model.d.ts +17 -17
- package/dist/cjs/types/model.d.ts.map +1 -1
- package/dist/cjs/types/schema/array.d.ts +168 -47
- package/dist/cjs/types/schema/array.d.ts.map +1 -1
- package/dist/cjs/types/schema/boolean.d.ts +103 -44
- package/dist/cjs/types/schema/boolean.d.ts.map +1 -1
- package/dist/cjs/types/schema/datetime.d.ts +90 -30
- package/dist/cjs/types/schema/datetime.d.ts.map +1 -1
- package/dist/cjs/types/schema/number.d.ts +133 -125
- package/dist/cjs/types/schema/number.d.ts.map +1 -1
- package/dist/cjs/types/schema/object.d.ts +104 -35
- package/dist/cjs/types/schema/object.d.ts.map +1 -1
- package/dist/cjs/types/schema/schema.d.ts +62 -44
- package/dist/cjs/types/schema/schema.d.ts.map +1 -1
- package/dist/cjs/types/schema/string.d.ts +152 -65
- package/dist/cjs/types/schema/string.d.ts.map +1 -1
- package/dist/cjs/types/schema/types.d.ts +11 -2
- package/dist/cjs/types/schema/types.d.ts.map +1 -1
- package/dist/cjs/types/schema/union.d.ts +133 -40
- package/dist/cjs/types/schema/union.d.ts.map +1 -1
- package/dist/cjs/types/types.d.ts +35 -0
- package/dist/cjs/types/types.d.ts.map +1 -1
- package/dist/cjs/types/utils.d.ts +41 -27
- package/dist/cjs/types/utils.d.ts.map +1 -1
- package/dist/cjs/types/validators/array.d.ts.map +1 -1
- package/dist/cjs/types/validators/boolean.d.ts.map +1 -1
- package/dist/cjs/types/validators/datetime.d.ts.map +1 -1
- package/dist/cjs/types/validators/number.d.ts +5 -6
- package/dist/cjs/types/validators/number.d.ts.map +1 -1
- package/dist/cjs/types/validators/object.d.ts.map +1 -1
- package/dist/cjs/types/validators/schema.d.ts +2 -2
- package/dist/cjs/types/validators/schema.d.ts.map +1 -1
- package/dist/cjs/types/validators/string.d.ts +9 -9
- package/dist/cjs/types/validators/string.d.ts.map +1 -1
- package/dist/cjs/types/validators/utils.d.ts +44 -27
- package/dist/cjs/types/validators/utils.d.ts.map +1 -1
- package/dist/esm/src/adapter/fields/index.js +2 -2
- package/dist/esm/src/adapter/fields/object.js +6 -0
- package/dist/esm/src/adapter/index.js +1 -0
- package/dist/esm/src/constants.js +1 -2
- package/dist/esm/src/domain.js +11 -1
- package/dist/esm/src/index.js +38 -73
- package/dist/esm/src/model.js +83 -78
- package/dist/esm/src/schema/array.js +136 -54
- package/dist/esm/src/schema/boolean.js +98 -44
- package/dist/esm/src/schema/datetime.js +91 -38
- package/dist/esm/src/schema/number.js +127 -110
- package/dist/esm/src/schema/object.js +98 -43
- package/dist/esm/src/schema/schema.js +102 -67
- package/dist/esm/src/schema/string.js +147 -59
- package/dist/esm/src/schema/union.js +119 -40
- package/dist/esm/src/types.js +14 -1
- package/dist/esm/src/utils.js +56 -27
- package/dist/esm/src/validators/array.js +6 -1
- package/dist/esm/src/validators/boolean.js +2 -0
- package/dist/esm/src/validators/datetime.js +4 -0
- package/dist/esm/src/validators/number.js +9 -23
- package/dist/esm/src/validators/object.js +1 -0
- package/dist/esm/src/validators/schema.js +5 -1
- package/dist/esm/src/validators/string.js +30 -2
- package/dist/esm/src/validators/union.js +5 -4
- package/dist/esm/src/validators/utils.js +62 -36
- package/package.json +3 -3
- package/src/adapter/fields/array.ts +2 -2
- package/src/adapter/fields/boolean.ts +3 -8
- package/src/adapter/fields/datetime.ts +3 -9
- package/src/adapter/fields/index.ts +11 -11
- package/src/adapter/fields/number.ts +3 -9
- package/src/adapter/fields/object.ts +13 -10
- package/src/adapter/fields/string.ts +3 -9
- package/src/adapter/fields/union.ts +3 -9
- package/src/adapter/index.ts +1 -0
- package/src/adapter/types.ts +60 -45
- package/src/constants.ts +1 -3
- package/src/domain.ts +15 -1
- package/src/index.ts +189 -211
- package/src/model.ts +119 -115
- package/src/schema/array.ts +274 -90
- package/src/schema/boolean.ts +145 -60
- package/src/schema/datetime.ts +133 -49
- package/src/schema/number.ts +210 -173
- package/src/schema/object.ts +167 -74
- package/src/schema/schema.ts +205 -126
- package/src/schema/string.ts +221 -94
- package/src/schema/types.ts +44 -16
- package/src/schema/union.ts +193 -68
- package/src/types.ts +53 -0
- package/src/utils.ts +115 -57
- package/src/validators/array.ts +46 -27
- package/src/validators/boolean.ts +13 -7
- package/src/validators/datetime.ts +24 -16
- package/src/validators/number.ts +53 -63
- package/src/validators/object.ts +6 -5
- package/src/validators/schema.ts +33 -25
- package/src/validators/string.ts +122 -59
- package/src/validators/union.ts +8 -8
- package/src/validators/utils.ts +67 -42
package/dist/cjs/src/domain.js
CHANGED
@@ -9,4 +9,149 @@ Object.defineProperty(exports, "default", {
|
|
9
9
|
}
|
10
10
|
});
|
11
11
|
var _core = require("@palmares/core");
|
12
|
-
var
|
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;
|
package/dist/cjs/src/index.js
CHANGED
@@ -30,7 +30,7 @@ _export(exports, {
|
|
30
30
|
FieldAdapter: function() {
|
31
31
|
return _fields.default;
|
32
32
|
},
|
33
|
-
|
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
|
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
|
114
|
-
var
|
115
|
-
var
|
116
|
-
var
|
117
|
-
var
|
118
|
-
var
|
119
|
-
var
|
120
|
-
var
|
121
|
-
var
|
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
|
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,
|
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.
|
247
|
-
* is the direct relation from the User model to the Company model, and the `relatedName`
|
248
|
-
* Company model to the User model. If you define the fieldName as either
|
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
|
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
|
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
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
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
|
-
*/
|