temba 0.16.0 → 0.18.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.
- package/README.md +77 -45
- package/config/index.d.ts +13 -8
- package/config/index.js +41 -18
- package/config/index.js.map +1 -1
- package/delay/delayMiddleware.js +1 -1
- package/delay/delayMiddleware.js.map +1 -1
- package/index.js +26 -22
- package/index.js.map +1 -1
- package/package.json +16 -14
- package/queries/in-memory.d.ts +9 -8
- package/queries/in-memory.js +64 -42
- package/queries/in-memory.js.map +1 -1
- package/queries/mongo.d.ts +8 -8
- package/queries/mongo.js +177 -65
- package/queries/mongo.js.map +1 -1
- package/queries/queries.d.ts +7 -16
- package/queries/queries.js +3 -3
- package/queries/queries.js.map +1 -1
- package/queries/types.d.ts +14 -0
- package/queries/types.js +3 -0
- package/queries/types.js.map +1 -0
- package/routes/delete.d.ts +5 -2
- package/routes/delete.js +55 -17
- package/routes/delete.js.map +1 -1
- package/routes/get.d.ts +5 -2
- package/routes/get.js +92 -48
- package/routes/get.js.map +1 -1
- package/routes/interceptRequestBody.d.ts +3 -0
- package/routes/interceptRequestBody.js +19 -0
- package/routes/interceptRequestBody.js.map +1 -0
- package/routes/patch.d.ts +6 -2
- package/routes/patch.js +82 -27
- package/routes/patch.js.map +1 -1
- package/routes/post.d.ts +6 -2
- package/routes/post.js +67 -27
- package/routes/post.js.map +1 -1
- package/routes/put.d.ts +6 -2
- package/routes/put.js +82 -27
- package/routes/put.js.map +1 -1
- package/routes/routes.d.ts +3 -1
- package/routes/routes.js +51 -22
- package/routes/routes.js.map +1 -1
- package/routes/types.d.ts +12 -6
- package/routes/utils.d.ts +1 -3
- package/routes/utils.js +7 -2
- package/routes/utils.js.map +1 -1
- package/schema/compile.d.ts +2 -0
- package/schema/compile.js +41 -0
- package/schema/compile.js.map +1 -0
- package/schema/transformConfig.d.ts +2 -0
- package/schema/transformConfig.js +17 -0
- package/schema/transformConfig.js.map +1 -0
- package/schema/types.d.ts +35 -0
- package/schema/types.js +3 -0
- package/schema/types.js.map +1 -0
- package/schema/validate.d.ts +3 -0
- package/schema/validate.js +19 -0
- package/schema/validate.js.map +1 -0
- package/urls/urlMiddleware.d.ts +4 -2
- package/urls/urlMiddleware.js +21 -10
- package/urls/urlMiddleware.js.map +1 -1
- package/urls/urlParser.d.ts +3 -3
- package/urls/urlParser.js +5 -5
- package/urls/urlParser.js.map +1 -1
- package/routes/interceptors.d.ts +0 -3
- package/routes/interceptors.js +0 -22
- package/routes/interceptors.js.map +0 -1
package/routes/put.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -8,39 +19,83 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
19
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
20
|
});
|
|
10
21
|
};
|
|
22
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
23
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
24
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
25
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
26
|
+
function step(op) {
|
|
27
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
28
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
29
|
+
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;
|
|
30
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
31
|
+
switch (op[0]) {
|
|
32
|
+
case 0: case 1: t = op; break;
|
|
33
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
34
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
35
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
36
|
+
default:
|
|
37
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
38
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
39
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
40
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
41
|
+
if (t[2]) _.ops.pop();
|
|
42
|
+
_.trys.pop(); continue;
|
|
43
|
+
}
|
|
44
|
+
op = body.call(thisArg, _);
|
|
45
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
46
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
47
|
+
}
|
|
48
|
+
};
|
|
11
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
50
|
exports.createPutRoutes = void 0;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
51
|
+
var interceptRequestBody_1 = require("./interceptRequestBody");
|
|
52
|
+
var validate_1 = require("../schema/validate");
|
|
53
|
+
var utils_1 = require("./utils");
|
|
54
|
+
function createPutRoutes(queries, requestBodyInterceptor, returnNullFields, schemas) {
|
|
16
55
|
function handlePut(req, res) {
|
|
17
|
-
return __awaiter(this, void 0, void 0, function
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
56
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
57
|
+
var _a, resource, id, validationResult, body, item, replacedItem, error_1;
|
|
58
|
+
return __generator(this, function (_b) {
|
|
59
|
+
switch (_b.label) {
|
|
60
|
+
case 0:
|
|
61
|
+
_b.trys.push([0, 4, , 5]);
|
|
62
|
+
_a = req.requestInfo, resource = _a.resource, id = _a.id;
|
|
63
|
+
validationResult = (0, validate_1.validate)(req.body, schemas === null || schemas === void 0 ? void 0 : schemas[resource]);
|
|
64
|
+
if (validationResult.isValid === false) {
|
|
65
|
+
return [2 /*return*/, res.status(400).json({ message: validationResult.errorMessage })];
|
|
66
|
+
}
|
|
67
|
+
body = (0, interceptRequestBody_1.interceptRequestBody)(requestBodyInterceptor.put, req);
|
|
68
|
+
if (typeof body === 'string')
|
|
69
|
+
return [2 /*return*/, res.status(400).json({ message: body }).send()];
|
|
70
|
+
item = null;
|
|
71
|
+
if (!id) return [3 /*break*/, 2];
|
|
72
|
+
return [4 /*yield*/, queries.getById(resource, id)];
|
|
73
|
+
case 1:
|
|
74
|
+
item = _b.sent();
|
|
75
|
+
_b.label = 2;
|
|
76
|
+
case 2:
|
|
77
|
+
if (!item)
|
|
78
|
+
return [2 /*return*/, res.status(404).json({
|
|
79
|
+
message: "ID '".concat(id, "' not found"),
|
|
80
|
+
})];
|
|
81
|
+
item = __assign(__assign({}, body), { id: id });
|
|
82
|
+
return [4 /*yield*/, queries.replace(resource, item)];
|
|
83
|
+
case 3:
|
|
84
|
+
replacedItem = _b.sent();
|
|
85
|
+
return [2 /*return*/, res
|
|
86
|
+
.status(200)
|
|
87
|
+
.json(returnNullFields ? replacedItem : (0, utils_1.removeNullFields)(replacedItem))
|
|
88
|
+
.send()];
|
|
89
|
+
case 4:
|
|
90
|
+
error_1 = _b.sent();
|
|
91
|
+
return [2 /*return*/, res.status(500).json({ message: error_1.message })];
|
|
92
|
+
case 5: return [2 /*return*/];
|
|
93
|
+
}
|
|
94
|
+
});
|
|
40
95
|
});
|
|
41
96
|
}
|
|
42
97
|
return {
|
|
43
|
-
handlePut,
|
|
98
|
+
handlePut: handlePut,
|
|
44
99
|
};
|
|
45
100
|
}
|
|
46
101
|
exports.createPutRoutes = createPutRoutes;
|
package/routes/put.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"put.js","sourceRoot":"","sources":["../../src/routes/put.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"put.js","sourceRoot":"","sources":["../../src/routes/put.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+DAA6D;AAC7D,+CAA6C;AAC7C,iCAA0C;AAM1C,SAAS,eAAe,CACtB,OAAgB,EAChB,sBAA8C,EAC9C,gBAAyB,EACzB,OAAoC;IAEpC,SAAe,SAAS,CAAC,GAAoB,EAAE,GAAa;;;;;;;wBAElD,KAAmB,GAAG,CAAC,WAAW,EAAhC,QAAQ,cAAA,EAAE,EAAE,QAAA,CAAoB;wBAElC,gBAAgB,GAAG,IAAA,mBAAQ,EAAC,GAAG,CAAC,IAAI,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,QAAQ,CAAC,CAAC,CAAA;wBAChE,IAAI,gBAAgB,CAAC,OAAO,KAAK,KAAK,EAAE;4BACtC,sBAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,gBAAgB,CAAC,YAAY,EAAE,CAAC,EAAA;yBACxE;wBAEK,IAAI,GAAG,IAAA,2CAAoB,EAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;wBAElE,IAAI,OAAO,IAAI,KAAK,QAAQ;4BAAE,sBAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAA;wBAE/E,IAAI,GAAG,IAAI,CAAA;6BACX,EAAE,EAAF,wBAAE;wBAAS,qBAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAA;;wBAA1C,IAAI,GAAG,SAAmC,CAAA;;;wBAElD,IAAI,CAAC,IAAI;4BACP,sBAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oCAC1B,OAAO,EAAE,cAAO,EAAE,gBAAa;iCAChC,CAAC,EAAA;wBAEJ,IAAI,yBAAQ,IAAI,KAAE,EAAE,IAAA,GAAE,CAAA;wBAED,qBAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAA;;wBAApD,YAAY,GAAG,SAAqC;wBAE1D,sBAAO,GAAG;iCACP,MAAM,CAAC,GAAG,CAAC;iCACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,YAAY,CAAC,CAAC;iCACtE,IAAI,EAAE,EAAA;;;wBAET,sBAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,OAAe,CAAC,OAAO,EAAE,CAAC,EAAA;;;;;KAErE;IAED,OAAO;QACL,SAAS,WAAA;KACV,CAAA;AACH,CAAC;AAEQ,0CAAe"}
|
package/routes/routes.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { RouterConfig } from '../config';
|
|
2
|
-
|
|
2
|
+
import { CompiledSchemas } from '../schema/types';
|
|
3
|
+
import { Queries } from '../queries/types';
|
|
4
|
+
declare function createResourceRouter(queries: Queries, schemas: CompiledSchemas, routerConfig: RouterConfig): import("express-serve-static-core").Router;
|
|
3
5
|
declare const rootRouter: import("express-serve-static-core").Router;
|
|
4
6
|
declare function handleMethodNotAllowed(_: any, res: any): void;
|
|
5
7
|
declare function handleNotFound(_: any, res: any): void;
|
package/routes/routes.js
CHANGED
|
@@ -8,31 +8,58 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
+
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
+
function step(op) {
|
|
16
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
+
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;
|
|
19
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
+
switch (op[0]) {
|
|
21
|
+
case 0: case 1: t = op; break;
|
|
22
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
+
default:
|
|
26
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
+
if (t[2]) _.ops.pop();
|
|
31
|
+
_.trys.pop(); continue;
|
|
32
|
+
}
|
|
33
|
+
op = body.call(thisArg, _);
|
|
34
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
+
}
|
|
37
|
+
};
|
|
11
38
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
39
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
40
|
};
|
|
14
41
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
42
|
exports.handleNotFound = exports.handleMethodNotAllowed = exports.rootRouter = exports.createResourceRouter = void 0;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
function createResourceRouter(queries, routerConfig) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
43
|
+
var express_1 = __importDefault(require("express"));
|
|
44
|
+
var get_1 = require("./get");
|
|
45
|
+
var post_1 = require("./post");
|
|
46
|
+
var put_1 = require("./put");
|
|
47
|
+
var patch_1 = require("./patch");
|
|
48
|
+
var delete_1 = require("./delete");
|
|
49
|
+
var urlMiddleware_1 = require("../urls/urlMiddleware");
|
|
50
|
+
function createResourceRouter(queries, schemas, routerConfig) {
|
|
51
|
+
var validateResources = routerConfig.validateResources, resources = routerConfig.resources, apiPrefix = routerConfig.apiPrefix, cacheControl = routerConfig.cacheControl, requestBodyInterceptor = routerConfig.requestBodyInterceptor, responseBodyInterceptor = routerConfig.responseBodyInterceptor, returnNullFields = routerConfig.returnNullFields;
|
|
52
|
+
var handleGet = (0, get_1.createGetRoutes)(queries, cacheControl, responseBodyInterceptor, returnNullFields).handleGet;
|
|
53
|
+
var handlePost = (0, post_1.createPostRoutes)(queries, requestBodyInterceptor, returnNullFields, schemas.post).handlePost;
|
|
54
|
+
var handlePut = (0, put_1.createPutRoutes)(queries, requestBodyInterceptor, returnNullFields, schemas.put).handlePut;
|
|
55
|
+
var handlePatch = (0, patch_1.createPatchRoutes)(queries, requestBodyInterceptor, returnNullFields, schemas.patch).handlePatch;
|
|
56
|
+
var handleDelete = (0, delete_1.createDeleteRoutes)(queries).handleDelete;
|
|
57
|
+
var validateResource = (0, urlMiddleware_1.createValidateResourceMiddleware)(validateResources, resources);
|
|
58
|
+
var getResourceAndId = (0, urlMiddleware_1.createResourceAndIdParser)(apiPrefix);
|
|
59
|
+
var resourceRouter = express_1.default.Router();
|
|
33
60
|
resourceRouter
|
|
34
61
|
// The router.get() function automatically handles HEAD requests as well, unless router.head is called first.
|
|
35
|
-
.get('*', getResourceAndId, validateResource,
|
|
62
|
+
.get('*', getResourceAndId, validateResource, handleGet)
|
|
36
63
|
.post('*', getResourceAndId, validateResource, handlePost)
|
|
37
64
|
.put('*', getResourceAndId, validateResource, handlePut)
|
|
38
65
|
.patch('*', getResourceAndId, validateResource, handlePatch)
|
|
@@ -41,11 +68,13 @@ function createResourceRouter(queries, routerConfig) {
|
|
|
41
68
|
}
|
|
42
69
|
exports.createResourceRouter = createResourceRouter;
|
|
43
70
|
// A GET to the root URL shows a default message.
|
|
44
|
-
|
|
71
|
+
var rootRouter = express_1.default.Router();
|
|
45
72
|
exports.rootRouter = rootRouter;
|
|
46
|
-
rootRouter.get('/', (_, res)
|
|
47
|
-
return
|
|
48
|
-
|
|
73
|
+
rootRouter.get('/', function (_, res) { return __awaiter(void 0, void 0, void 0, function () {
|
|
74
|
+
return __generator(this, function (_a) {
|
|
75
|
+
return [2 /*return*/, res.send('It works! ツ')];
|
|
76
|
+
});
|
|
77
|
+
}); });
|
|
49
78
|
// All other requests to the root URL are not allowed.
|
|
50
79
|
rootRouter.all('/', handleMethodNotAllowed);
|
|
51
80
|
// Route for handling not allowed methods.
|
package/routes/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes/routes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes/routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA6B;AAC7B,6BAAuC;AACvC,+BAAyC;AACzC,6BAAuC;AACvC,iCAA2C;AAC3C,mCAA6C;AAC7C,uDAAmG;AAKnG,SAAS,oBAAoB,CAC3B,OAAgB,EAChB,OAAwB,EACxB,YAA0B;IAGxB,IAAA,iBAAiB,GAOf,YAAY,kBAPG,EACjB,SAAS,GAMP,YAAY,UANL,EACT,SAAS,GAKP,YAAY,UALL,EACT,YAAY,GAIV,YAAY,aAJF,EACZ,sBAAsB,GAGpB,YAAY,uBAHQ,EACtB,uBAAuB,GAErB,YAAY,wBAFS,EACvB,gBAAgB,GACd,YAAY,iBADE,CACF;IAER,IAAA,SAAS,GAAK,IAAA,qBAAe,EACnC,OAAO,EACP,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,CACjB,UALgB,CAKhB;IAEO,IAAA,UAAU,GAAK,IAAA,uBAAgB,EACrC,OAAO,EACP,sBAAsB,EACtB,gBAAgB,EAChB,OAAO,CAAC,IAAI,CACb,WALiB,CAKjB;IAEO,IAAA,SAAS,GAAK,IAAA,qBAAe,EACnC,OAAO,EACP,sBAAsB,EACtB,gBAAgB,EAChB,OAAO,CAAC,GAAG,CACZ,UALgB,CAKhB;IAEO,IAAA,WAAW,GAAK,IAAA,yBAAiB,EACvC,OAAO,EACP,sBAAsB,EACtB,gBAAgB,EAChB,OAAO,CAAC,KAAK,CACd,YALkB,CAKlB;IAEO,IAAA,YAAY,GAAK,IAAA,2BAAkB,EAAC,OAAO,CAAC,aAAhC,CAAgC;IAEpD,IAAM,gBAAgB,GAAG,IAAA,gDAAgC,EAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IACvF,IAAM,gBAAgB,GAAG,IAAA,yCAAyB,EAAC,SAAS,CAAC,CAAA;IAE7D,IAAM,cAAc,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;IAEvC,cAAc;QACZ,6GAA6G;SAC5G,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,CAAC;SACvD,IAAI,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,UAAU,CAAC;SACzD,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,CAAC;SACvD,KAAK,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,WAAW,CAAC;SAC3D,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAA;IAEhE,OAAO,cAAc,CAAA;AACvB,CAAC;AAqBQ,oDAAoB;AAnB7B,iDAAiD;AACjD,IAAM,UAAU,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;AAkBJ,gCAAU;AAjBzC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,UAAO,CAAC,EAAE,GAAG;;QAC/B,sBAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,EAAA;;KAC/B,CAAC,CAAA;AAEF,sDAAsD;AACtD,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAAA;AAE3C,0CAA0C;AAC1C,SAAS,sBAAsB,CAAC,CAAC,EAAE,GAAG;IACpC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAA;AACzD,CAAC;AAO0C,wDAAsB;AALjE,gCAAgC;AAChC,SAAS,cAAc,CAAC,CAAC,EAAE,GAAG;IAC5B,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;AAChD,CAAC;AAEkE,wCAAc"}
|
package/routes/types.d.ts
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
|
+
import { Request } from 'express';
|
|
2
|
+
import { Item } from '../queries/types';
|
|
3
|
+
export type ExtendedRequest = Request & {
|
|
4
|
+
requestInfo: RequestInfo;
|
|
5
|
+
};
|
|
1
6
|
type RequestInfo = {
|
|
2
|
-
|
|
3
|
-
|
|
7
|
+
resource: string;
|
|
8
|
+
body: unknown;
|
|
9
|
+
id?: string;
|
|
4
10
|
};
|
|
5
11
|
export type RequestBodyInterceptorCallback = (info: RequestInfo) => void | string | object;
|
|
6
12
|
export type RequestBodyInterceptor = {
|
|
@@ -8,10 +14,10 @@ export type RequestBodyInterceptor = {
|
|
|
8
14
|
patch?: RequestBodyInterceptorCallback;
|
|
9
15
|
put?: RequestBodyInterceptorCallback;
|
|
10
16
|
};
|
|
11
|
-
type ResponseInfo = {
|
|
12
|
-
|
|
13
|
-
|
|
17
|
+
export type ResponseInfo<T extends Item | Item[]> = {
|
|
18
|
+
resource: string;
|
|
19
|
+
body: T;
|
|
14
20
|
id?: string;
|
|
15
21
|
};
|
|
16
|
-
export type ResponseBodyInterceptor = (info: ResponseInfo) => unknown;
|
|
22
|
+
export type ResponseBodyInterceptor = (info: ResponseInfo<Item | Item[]>) => unknown;
|
|
17
23
|
export {};
|
package/routes/utils.d.ts
CHANGED
package/routes/utils.js
CHANGED
|
@@ -1,8 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.removeNullFields = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
var removeNullFields = function (obj) {
|
|
5
|
+
if (typeof obj !== 'object')
|
|
6
|
+
return obj;
|
|
7
|
+
return Object.fromEntries(Object.entries(obj).filter(function (_a) {
|
|
8
|
+
var value = _a[1];
|
|
9
|
+
return value !== null;
|
|
10
|
+
}));
|
|
6
11
|
};
|
|
7
12
|
exports.removeNullFields = removeNullFields;
|
|
8
13
|
//# sourceMappingURL=utils.js.map
|
package/routes/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/routes/utils.ts"],"names":[],"mappings":";;;AAAO,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/routes/utils.ts"],"names":[],"mappings":";;;AAAO,IAAM,gBAAgB,GAAG,UAAC,GAAY;IAC3C,IAAI,OAAO,GAAG,KAAK,QAAQ;QAAE,OAAO,GAAG,CAAA;IACvC,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAC,EAAS;YAAN,KAAK,QAAA;QAAM,OAAA,KAAK,KAAK,IAAI;IAAd,CAAc,CAAC,CAAC,CAAA;AACtF,CAAC,CAAA;AAHY,QAAA,gBAAgB,oBAG5B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.compileAndTransformSchemas = void 0;
|
|
18
|
+
var ajv_1 = __importDefault(require("ajv"));
|
|
19
|
+
var transformConfig_1 = require("./transformConfig");
|
|
20
|
+
var compileSchemas = function (schemas) {
|
|
21
|
+
// Use a single Ajv instance in the whole app
|
|
22
|
+
var ajv = new ajv_1.default();
|
|
23
|
+
// Turn the configured schemas into compiled schemas
|
|
24
|
+
var compiledSchemas = __assign({}, schemas);
|
|
25
|
+
Object.keys(schemas).forEach(function (resource) {
|
|
26
|
+
Object.keys(schemas[resource]).forEach(function (method) {
|
|
27
|
+
compiledSchemas[resource][method] = ajv.compile(schemas[resource][method]);
|
|
28
|
+
});
|
|
29
|
+
});
|
|
30
|
+
return compiledSchemas;
|
|
31
|
+
};
|
|
32
|
+
var compileAndTransformSchemas = function (schemas) {
|
|
33
|
+
var transformedSchemas = {};
|
|
34
|
+
if (schemas) {
|
|
35
|
+
var compiledSchemas = compileSchemas(schemas);
|
|
36
|
+
transformedSchemas = (0, transformConfig_1.transformSchemas)(compiledSchemas);
|
|
37
|
+
}
|
|
38
|
+
return transformedSchemas;
|
|
39
|
+
};
|
|
40
|
+
exports.compileAndTransformSchemas = compileAndTransformSchemas;
|
|
41
|
+
//# sourceMappingURL=compile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/schema/compile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,4CAAqB;AAErB,qDAAoD;AAEpD,IAAM,cAAc,GAAG,UAAC,OAA0B;IAChD,6CAA6C;IAC7C,IAAM,GAAG,GAAG,IAAI,aAAG,EAAE,CAAA;IAErB,oDAAoD;IACpD,IAAM,eAAe,gBAAyB,OAAO,CAAE,CAAA;IACvD,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,QAAQ;QACpC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAC,MAAM;YAC5C,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;QAC5E,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA;AAEM,IAAM,0BAA0B,GAAG,UAAC,OAA0B;IACnE,IAAI,kBAAkB,GAAG,EAAE,CAAA;IAC3B,IAAI,OAAO,EAAE;QACX,IAAM,eAAe,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QAC/C,kBAAkB,GAAG,IAAA,kCAAgB,EAAC,eAAe,CAAC,CAAA;KACvD;IAED,OAAO,kBAAkB,CAAA;AAC3B,CAAC,CAAA;AARY,QAAA,0BAA0B,8BAQtC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.transformSchemas = void 0;
|
|
4
|
+
var transformSchemas = function (schemas) {
|
|
5
|
+
var transformedObject = {};
|
|
6
|
+
for (var resource in schemas) {
|
|
7
|
+
for (var key in schemas[resource]) {
|
|
8
|
+
if (!transformedObject[key]) {
|
|
9
|
+
transformedObject[key] = {};
|
|
10
|
+
}
|
|
11
|
+
transformedObject[key][resource] = schemas[resource][key];
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
return transformedObject;
|
|
15
|
+
};
|
|
16
|
+
exports.transformSchemas = transformSchemas;
|
|
17
|
+
//# sourceMappingURL=transformConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformConfig.js","sourceRoot":"","sources":["../../src/schema/transformConfig.ts"],"names":[],"mappings":";;;AAEO,IAAM,gBAAgB,GAAG,UAAC,OAA0B;IACzD,IAAM,iBAAiB,GAAG,EAAE,CAAA;IAE5B,KAAK,IAAM,QAAQ,IAAI,OAAO,EAAE;QAC9B,KAAK,IAAM,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE;YACnC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE;gBAC3B,iBAAiB,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;aAC5B;YACD,iBAAiB,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAA;SAC1D;KACF;IAED,OAAO,iBAAiB,CAAA;AAC1B,CAAC,CAAA;AAbY,QAAA,gBAAgB,oBAa5B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ValidateFunction } from 'ajv';
|
|
2
|
+
export type ConfiguredSchemas = {
|
|
3
|
+
[resource: string]: ConfiguredResourceSchema;
|
|
4
|
+
};
|
|
5
|
+
type ConfiguredResourceSchema = {
|
|
6
|
+
post?: unknown;
|
|
7
|
+
put?: unknown;
|
|
8
|
+
patch?: unknown;
|
|
9
|
+
};
|
|
10
|
+
export type TransformedSchemas = {
|
|
11
|
+
post?: {
|
|
12
|
+
[resource: string]: unknown;
|
|
13
|
+
};
|
|
14
|
+
put?: {
|
|
15
|
+
[resource: string]: unknown;
|
|
16
|
+
};
|
|
17
|
+
patch?: {
|
|
18
|
+
[resource: string]: unknown;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
export type ValidateFunctionPerResource = {
|
|
22
|
+
[resource: string]: ValidateFunction<unknown>;
|
|
23
|
+
};
|
|
24
|
+
export type CompiledSchemas = {
|
|
25
|
+
post?: ValidateFunctionPerResource;
|
|
26
|
+
put?: ValidateFunctionPerResource;
|
|
27
|
+
patch?: ValidateFunctionPerResource;
|
|
28
|
+
};
|
|
29
|
+
export type ValidationResult = {
|
|
30
|
+
isValid: false;
|
|
31
|
+
errorMessage: string;
|
|
32
|
+
} | {
|
|
33
|
+
isValid: true;
|
|
34
|
+
};
|
|
35
|
+
export {};
|
package/schema/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/schema/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validate = void 0;
|
|
4
|
+
var validate = function (body, validate) {
|
|
5
|
+
var _a, _b;
|
|
6
|
+
if (!validate)
|
|
7
|
+
return { isValid: true };
|
|
8
|
+
if (validate(body)) {
|
|
9
|
+
return { isValid: true };
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
return {
|
|
13
|
+
isValid: false,
|
|
14
|
+
errorMessage: (_b = (_a = validate.errors) === null || _a === void 0 ? void 0 : _a[0].message) !== null && _b !== void 0 ? _b : 'Unknown schema validation error',
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
exports.validate = validate;
|
|
19
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/schema/validate.ts"],"names":[],"mappings":";;;AAGO,IAAM,QAAQ,GAAG,UAAC,IAAa,EAAE,QAAoC;;IAC1E,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAEvC,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE;QAClB,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;KACzB;SAAM;QACL,OAAO;YACL,OAAO,EAAE,KAAK;YACd,YAAY,EAAE,MAAA,MAAA,QAAQ,CAAC,MAAM,0CAAG,CAAC,EAAE,OAAO,mCAAI,iCAAiC;SAChF,CAAA;KACF;AACH,CAAC,CAAA;AAXY,QAAA,QAAQ,YAWpB"}
|
package/urls/urlMiddleware.d.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { Response } from 'express';
|
|
2
|
+
import { ExtendedRequest } from '../routes/types';
|
|
3
|
+
declare function createResourceAndIdParser(apiPrefix: string): (req: ExtendedRequest, res: Response, next: () => void) => void;
|
|
4
|
+
declare function createValidateResourceMiddleware(validateResources: boolean, resources: string[]): (req: ExtendedRequest, res: Response, next: () => void) => void | Response<any, Record<string, any>>;
|
|
3
5
|
export { createResourceAndIdParser, createValidateResourceMiddleware };
|
package/urls/urlMiddleware.js
CHANGED
|
@@ -1,26 +1,37 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
14
|
exports.createValidateResourceMiddleware = exports.createResourceAndIdParser = void 0;
|
|
4
|
-
|
|
15
|
+
var urlParser_1 = require("./urlParser");
|
|
5
16
|
function createResourceAndIdParser(apiPrefix) {
|
|
6
|
-
return function getResourceAndId(req,
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
req.requestInfo =
|
|
17
|
+
return function getResourceAndId(req, res, next) {
|
|
18
|
+
var url = req.baseUrl.replace(apiPrefix, '');
|
|
19
|
+
var urlInfo = (0, urlParser_1.parseUrl)(url);
|
|
20
|
+
req.requestInfo = __assign(__assign({}, req.requestInfo), urlInfo);
|
|
10
21
|
return next();
|
|
11
22
|
};
|
|
12
23
|
}
|
|
13
24
|
exports.createResourceAndIdParser = createResourceAndIdParser;
|
|
14
|
-
function createValidateResourceMiddleware(validateResources,
|
|
25
|
+
function createValidateResourceMiddleware(validateResources, resources) {
|
|
15
26
|
return function validateResource(req, res, next) {
|
|
16
27
|
if (!validateResources)
|
|
17
28
|
return next();
|
|
18
|
-
|
|
19
|
-
if (!
|
|
29
|
+
var resource = req.requestInfo.resource;
|
|
30
|
+
if (!resource)
|
|
20
31
|
return next();
|
|
21
|
-
if (!
|
|
32
|
+
if (!resources.includes(resource.toLowerCase())) {
|
|
22
33
|
return res.status(404).json({
|
|
23
|
-
message:
|
|
34
|
+
message: "'".concat(resource, "' is an unknown resource"),
|
|
24
35
|
});
|
|
25
36
|
}
|
|
26
37
|
return next();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlMiddleware.js","sourceRoot":"","sources":["../../src/urls/urlMiddleware.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"urlMiddleware.js","sourceRoot":"","sources":["../../src/urls/urlMiddleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AACA,yCAAsC;AAGtC,SAAS,yBAAyB,CAAC,SAAiB;IAClD,OAAO,SAAS,gBAAgB,CAAC,GAAoB,EAAE,GAAa,EAAE,IAAgB;QACpF,IAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAC9C,IAAM,OAAO,GAAG,IAAA,oBAAQ,EAAC,GAAG,CAAC,CAAA;QAE7B,GAAG,CAAC,WAAW,yBAAQ,GAAG,CAAC,WAAW,GAAK,OAAO,CAAE,CAAA;QAEpD,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAoBQ,8DAAyB;AAlBlC,SAAS,gCAAgC,CAAC,iBAA0B,EAAE,SAAmB;IACvF,OAAO,SAAS,gBAAgB,CAAC,GAAoB,EAAE,GAAa,EAAE,IAAgB;QACpF,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,EAAE,CAAA;QAE7B,IAAA,QAAQ,GAAK,GAAG,CAAC,WAAW,SAApB,CAAoB;QAEpC,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,EAAE,CAAA;QAE5B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE;YAC/C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gBAC1B,OAAO,EAAE,WAAI,QAAQ,6BAA0B;aAChD,CAAC,CAAA;SACH;QAED,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAEmC,4EAAgC"}
|
package/urls/urlParser.d.ts
CHANGED
package/urls/urlParser.js
CHANGED
|
@@ -3,11 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.parseUrl = void 0;
|
|
4
4
|
function parseUrl(url) {
|
|
5
5
|
if (!url || (url && !url.trim()))
|
|
6
|
-
return {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
return {
|
|
6
|
+
return { resource: null, id: null };
|
|
7
|
+
var urlSegments = url.split('/').filter(function (i) { return i; });
|
|
8
|
+
var resource = urlSegments.length > 0 ? urlSegments[0] : null;
|
|
9
|
+
var id = urlSegments.length > 1 ? urlSegments[1] : null;
|
|
10
|
+
return { resource: resource, id: id };
|
|
11
11
|
}
|
|
12
12
|
exports.parseUrl = parseUrl;
|
|
13
13
|
//# sourceMappingURL=urlParser.js.map
|
package/urls/urlParser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlParser.js","sourceRoot":"","sources":["../../src/urls/urlParser.ts"],"names":[],"mappings":";;;AAAA,SAAS,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"urlParser.js","sourceRoot":"","sources":["../../src/urls/urlParser.ts"],"names":[],"mappings":";;;AAAA,SAAS,QAAQ,CAAC,GAAW;IAC3B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,CAAA;IAErE,IAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,EAAD,CAAC,CAAC,CAAA;IAEnD,IAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC/D,IAAM,EAAE,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAEzD,OAAO,EAAE,QAAQ,UAAA,EAAE,EAAE,IAAA,EAAE,CAAA;AACzB,CAAC;AAEQ,4BAAQ"}
|
package/routes/interceptors.d.ts
DELETED
package/routes/interceptors.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.interceptRequestBody = void 0;
|
|
4
|
-
function interceptRequestBody(intercept, req) {
|
|
5
|
-
const { resourceName } = req.requestInfo;
|
|
6
|
-
let requestBody = req.body;
|
|
7
|
-
const validationResult = intercept({ resourceName, requestBody });
|
|
8
|
-
if (!validationResult && typeof requestBody === 'object')
|
|
9
|
-
return requestBody;
|
|
10
|
-
if (typeof validationResult === 'string')
|
|
11
|
-
return validationResult;
|
|
12
|
-
// The requestBody was replaced by something else.
|
|
13
|
-
if (validationResult)
|
|
14
|
-
requestBody = validationResult;
|
|
15
|
-
if (typeof requestBody === 'object') {
|
|
16
|
-
return requestBody;
|
|
17
|
-
}
|
|
18
|
-
else
|
|
19
|
-
return req.body;
|
|
20
|
-
}
|
|
21
|
-
exports.interceptRequestBody = interceptRequestBody;
|
|
22
|
-
//# sourceMappingURL=interceptors.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interceptors.js","sourceRoot":"","sources":["../../src/routes/interceptors.ts"],"names":[],"mappings":";;;AAEA,SAAS,oBAAoB,CAAC,SAAyC,EAAE,GAAG;IAC1E,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;IACxC,IAAI,WAAW,GAAG,GAAG,CAAC,IAAI,CAAA;IAE1B,MAAM,gBAAgB,GAAG,SAAS,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAA;IAEjE,IAAI,CAAC,gBAAgB,IAAI,OAAO,WAAW,KAAK,QAAQ;QAAE,OAAO,WAAW,CAAA;IAE5E,IAAI,OAAO,gBAAgB,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAA;IAEjE,kDAAkD;IAClD,IAAI,gBAAgB;QAAE,WAAW,GAAG,gBAAgB,CAAA;IAEpD,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE;QACnC,OAAO,WAAW,CAAA;KACnB;;QAAM,OAAO,GAAG,CAAC,IAAI,CAAA;AACxB,CAAC;AAEQ,oDAAoB"}
|