@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 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
@@ -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();