@palmares/schemas 0.1.5 → 0.1.7
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/CHANGELOG.md +17 -0
- package/dist/cjs/src/index.js +4 -0
- package/dist/cjs/src/middleware.js +215 -0
- package/dist/cjs/src/schema/schema.js +7 -5
- package/dist/cjs/tsconfig.types.tsbuildinfo +1 -1
- package/dist/cjs/types/domain.d.ts +16 -2
- package/dist/cjs/types/domain.d.ts.map +1 -1
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.d.ts.map +1 -1
- package/dist/cjs/types/middleware.d.ts +34 -0
- package/dist/cjs/types/middleware.d.ts.map +1 -0
- package/dist/cjs/types/schema/array.d.ts +1 -1
- package/dist/cjs/types/schema/array.d.ts.map +1 -1
- package/dist/cjs/types/schema/boolean.d.ts +1 -1
- package/dist/cjs/types/schema/boolean.d.ts.map +1 -1
- package/dist/cjs/types/schema/datetime.d.ts +1 -1
- package/dist/cjs/types/schema/datetime.d.ts.map +1 -1
- package/dist/cjs/types/schema/number.d.ts +1 -1
- package/dist/cjs/types/schema/number.d.ts.map +1 -1
- package/dist/cjs/types/schema/object.d.ts +1 -1
- package/dist/cjs/types/schema/object.d.ts.map +1 -1
- package/dist/cjs/types/schema/schema.d.ts +5 -4
- package/dist/cjs/types/schema/schema.d.ts.map +1 -1
- package/dist/cjs/types/schema/string.d.ts +1 -1
- package/dist/cjs/types/schema/string.d.ts.map +1 -1
- package/dist/cjs/types/schema/union.d.ts +1 -1
- package/dist/cjs/types/schema/union.d.ts.map +1 -1
- package/dist/esm/src/index.js +1 -0
- package/dist/esm/src/middleware.js +29 -0
- package/dist/esm/src/schema/schema.js +7 -5
- package/package.json +4 -4
- package/src/index.ts +1 -0
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,22 @@
|
|
1
1
|
# @palmares/schemas
|
2
2
|
|
3
|
+
## 0.1.7
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- Updated dependencies
|
8
|
+
- @palmares/core@0.1.5
|
9
|
+
- @palmares/databases@0.1.7
|
10
|
+
- @palmares/server@0.1.5
|
11
|
+
|
12
|
+
## 0.1.6
|
13
|
+
|
14
|
+
### Patch Changes
|
15
|
+
|
16
|
+
- Exported schemas handler for easier management
|
17
|
+
- Updated dependencies
|
18
|
+
- @palmares/databases@0.1.6
|
19
|
+
|
3
20
|
## 0.1.5
|
4
21
|
|
5
22
|
### Patch Changes
|
package/dist/cjs/src/index.js
CHANGED
@@ -114,6 +114,9 @@ _export(exports, {
|
|
114
114
|
schema: function() {
|
115
115
|
return _schema.schema;
|
116
116
|
},
|
117
|
+
schemaHandler: function() {
|
118
|
+
return _middleware.default;
|
119
|
+
},
|
117
120
|
setDefaultAdapter: function() {
|
118
121
|
return _conf.setDefaultAdapter;
|
119
122
|
},
|
@@ -154,6 +157,7 @@ var _conf = require("./conf");
|
|
154
157
|
_export_star(require("./adapter/types"), exports);
|
155
158
|
_export_star(require("./schema"), exports);
|
156
159
|
var _compile = /*#__PURE__*/ _interop_require_default(require("./compile"));
|
160
|
+
var _middleware = /*#__PURE__*/ _interop_require_default(require("./middleware"));
|
157
161
|
function _array_like_to_array(arr, len) {
|
158
162
|
if (len == null || len > arr.length) len = arr.length;
|
159
163
|
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
|
@@ -0,0 +1,215 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
3
|
+
value: true
|
4
|
+
});
|
5
|
+
Object.defineProperty(exports, /**
|
6
|
+
* Validates the request body and returns a response automatically, don't need to do anything else.
|
7
|
+
*/ "default", {
|
8
|
+
enumerable: true,
|
9
|
+
get: function() {
|
10
|
+
return schemaHandler;
|
11
|
+
}
|
12
|
+
});
|
13
|
+
var _server = require("@palmares/server");
|
14
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
15
|
+
try {
|
16
|
+
var info = gen[key](arg);
|
17
|
+
var value = info.value;
|
18
|
+
} catch (error) {
|
19
|
+
reject(error);
|
20
|
+
return;
|
21
|
+
}
|
22
|
+
if (info.done) {
|
23
|
+
resolve(value);
|
24
|
+
} else {
|
25
|
+
Promise.resolve(value).then(_next, _throw);
|
26
|
+
}
|
27
|
+
}
|
28
|
+
function _async_to_generator(fn) {
|
29
|
+
return function() {
|
30
|
+
var self = this, args = arguments;
|
31
|
+
return new Promise(function(resolve, reject) {
|
32
|
+
var gen = fn.apply(self, args);
|
33
|
+
function _next(value) {
|
34
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
35
|
+
}
|
36
|
+
function _throw(err) {
|
37
|
+
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
38
|
+
}
|
39
|
+
_next(undefined);
|
40
|
+
});
|
41
|
+
};
|
42
|
+
}
|
43
|
+
function _ts_generator(thisArg, body) {
|
44
|
+
var f, y, t, g, _ = {
|
45
|
+
label: 0,
|
46
|
+
sent: function() {
|
47
|
+
if (t[0] & 1) throw t[1];
|
48
|
+
return t[1];
|
49
|
+
},
|
50
|
+
trys: [],
|
51
|
+
ops: []
|
52
|
+
};
|
53
|
+
return g = {
|
54
|
+
next: verb(0),
|
55
|
+
"throw": verb(1),
|
56
|
+
"return": verb(2)
|
57
|
+
}, typeof Symbol === "function" && (g[Symbol.iterator] = function() {
|
58
|
+
return this;
|
59
|
+
}), g;
|
60
|
+
function verb(n) {
|
61
|
+
return function(v) {
|
62
|
+
return step([
|
63
|
+
n,
|
64
|
+
v
|
65
|
+
]);
|
66
|
+
};
|
67
|
+
}
|
68
|
+
function step(op) {
|
69
|
+
if (f) throw new TypeError("Generator is already executing.");
|
70
|
+
while(_)try {
|
71
|
+
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;
|
72
|
+
if (y = 0, t) op = [
|
73
|
+
op[0] & 2,
|
74
|
+
t.value
|
75
|
+
];
|
76
|
+
switch(op[0]){
|
77
|
+
case 0:
|
78
|
+
case 1:
|
79
|
+
t = op;
|
80
|
+
break;
|
81
|
+
case 4:
|
82
|
+
_.label++;
|
83
|
+
return {
|
84
|
+
value: op[1],
|
85
|
+
done: false
|
86
|
+
};
|
87
|
+
case 5:
|
88
|
+
_.label++;
|
89
|
+
y = op[1];
|
90
|
+
op = [
|
91
|
+
0
|
92
|
+
];
|
93
|
+
continue;
|
94
|
+
case 7:
|
95
|
+
op = _.ops.pop();
|
96
|
+
_.trys.pop();
|
97
|
+
continue;
|
98
|
+
default:
|
99
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
|
100
|
+
_ = 0;
|
101
|
+
continue;
|
102
|
+
}
|
103
|
+
if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
|
104
|
+
_.label = op[1];
|
105
|
+
break;
|
106
|
+
}
|
107
|
+
if (op[0] === 6 && _.label < t[1]) {
|
108
|
+
_.label = t[1];
|
109
|
+
t = op;
|
110
|
+
break;
|
111
|
+
}
|
112
|
+
if (t && _.label < t[2]) {
|
113
|
+
_.label = t[2];
|
114
|
+
_.ops.push(op);
|
115
|
+
break;
|
116
|
+
}
|
117
|
+
if (t[2]) _.ops.pop();
|
118
|
+
_.trys.pop();
|
119
|
+
continue;
|
120
|
+
}
|
121
|
+
op = body.call(thisArg, _);
|
122
|
+
} catch (e) {
|
123
|
+
op = [
|
124
|
+
6,
|
125
|
+
e
|
126
|
+
];
|
127
|
+
y = 0;
|
128
|
+
} finally{
|
129
|
+
f = t = 0;
|
130
|
+
}
|
131
|
+
if (op[0] & 5) throw op[1];
|
132
|
+
return {
|
133
|
+
value: op[0] ? op[1] : void 0,
|
134
|
+
done: true
|
135
|
+
};
|
136
|
+
}
|
137
|
+
}
|
138
|
+
function schemaHandler(input, output) {
|
139
|
+
return function() {
|
140
|
+
var _ref = _async_to_generator(function(request) {
|
141
|
+
var data, validatedData, savedData, status, _;
|
142
|
+
return _ts_generator(this, function(_state) {
|
143
|
+
switch(_state.label){
|
144
|
+
case 0:
|
145
|
+
return [
|
146
|
+
4,
|
147
|
+
request.json()
|
148
|
+
];
|
149
|
+
case 1:
|
150
|
+
data = _state.sent();
|
151
|
+
return [
|
152
|
+
4,
|
153
|
+
input.validate(data, {
|
154
|
+
request: request
|
155
|
+
})
|
156
|
+
];
|
157
|
+
case 2:
|
158
|
+
validatedData = _state.sent();
|
159
|
+
if (!validatedData.isValid) return [
|
160
|
+
3,
|
161
|
+
6
|
162
|
+
];
|
163
|
+
return [
|
164
|
+
4,
|
165
|
+
validatedData.save()
|
166
|
+
];
|
167
|
+
case 3:
|
168
|
+
savedData = _state.sent();
|
169
|
+
status = request.method === 'POST' ? 201 : 200;
|
170
|
+
if (!output) return [
|
171
|
+
3,
|
172
|
+
5
|
173
|
+
];
|
174
|
+
_ = _server.Response.json;
|
175
|
+
return [
|
176
|
+
4,
|
177
|
+
output.data(savedData)
|
178
|
+
];
|
179
|
+
case 4:
|
180
|
+
return [
|
181
|
+
2,
|
182
|
+
_.apply(_server.Response, [
|
183
|
+
_state.sent(),
|
184
|
+
{
|
185
|
+
status: status
|
186
|
+
}
|
187
|
+
])
|
188
|
+
];
|
189
|
+
case 5:
|
190
|
+
return [
|
191
|
+
2,
|
192
|
+
_server.Response.json(savedData, {
|
193
|
+
status: status,
|
194
|
+
headers: {
|
195
|
+
'content-type': 'application/json'
|
196
|
+
}
|
197
|
+
})
|
198
|
+
];
|
199
|
+
case 6:
|
200
|
+
return [
|
201
|
+
2,
|
202
|
+
_server.Response.json({
|
203
|
+
errors: validatedData.errors
|
204
|
+
}, {
|
205
|
+
status: 400
|
206
|
+
})
|
207
|
+
];
|
208
|
+
}
|
209
|
+
});
|
210
|
+
});
|
211
|
+
return function(request) {
|
212
|
+
return _ref.apply(this, arguments);
|
213
|
+
};
|
214
|
+
}();
|
215
|
+
}
|
@@ -1323,7 +1323,7 @@ var Schema = /*#__PURE__*/ function() {
|
|
1323
1323
|
*
|
1324
1324
|
* @returns An object with the property isValid, if the value is valid, the function `save` will be present.
|
1325
1325
|
* If the value is invalid, the property errors will be present.
|
1326
|
-
*/ function validate(value) {
|
1326
|
+
*/ function validate(value, context) {
|
1327
1327
|
var _this = this;
|
1328
1328
|
return _async_to_generator(function() {
|
1329
1329
|
var _ref, errors, parsed;
|
@@ -1332,7 +1332,9 @@ var Schema = /*#__PURE__*/ function() {
|
|
1332
1332
|
case 0:
|
1333
1333
|
return [
|
1334
1334
|
4,
|
1335
|
-
_this.__parse(value, [], {
|
1335
|
+
_this.__parse(value, [], {
|
1336
|
+
context: context
|
1337
|
+
})
|
1336
1338
|
];
|
1337
1339
|
case 1:
|
1338
1340
|
_ref = _state.sent(), errors = _ref.errors, parsed = _ref.parsed;
|
@@ -1352,7 +1354,7 @@ var Schema = /*#__PURE__*/ function() {
|
|
1352
1354
|
return _ts_generator(this, function(_state) {
|
1353
1355
|
return [
|
1354
1356
|
2,
|
1355
|
-
_this._save.bind(_this)(parsed)
|
1357
|
+
_this._save.bind(_this)(parsed, context)
|
1356
1358
|
];
|
1357
1359
|
});
|
1358
1360
|
})
|
@@ -1372,7 +1374,7 @@ var Schema = /*#__PURE__*/ function() {
|
|
1372
1374
|
* @param value - The value to be saved.
|
1373
1375
|
*
|
1374
1376
|
* @returns The value to representation.
|
1375
|
-
*/ function _save(value) {
|
1377
|
+
*/ function _save(value, context) {
|
1376
1378
|
var _this = this;
|
1377
1379
|
return _async_to_generator(function() {
|
1378
1380
|
var result;
|
@@ -1385,7 +1387,7 @@ var Schema = /*#__PURE__*/ function() {
|
|
1385
1387
|
];
|
1386
1388
|
return [
|
1387
1389
|
4,
|
1388
|
-
_this.__saveCallback(value)
|
1390
|
+
_this.__saveCallback(value, context)
|
1389
1391
|
];
|
1390
1392
|
case 1:
|
1391
1393
|
result = _state.sent();
|