temba 0.17.0 → 0.19.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 +58 -10
- package/package.json +17 -17
- package/{config → src/config}/index.d.ts +15 -8
- package/src/config/index.d.ts.map +1 -0
- package/{config → src/config}/index.js +23 -28
- package/src/config/index.js.map +1 -0
- package/src/delay/delayMiddleware.d.ts +3 -0
- package/src/delay/delayMiddleware.d.ts.map +1 -0
- package/src/delay/delayMiddleware.js +13 -0
- package/src/delay/delayMiddleware.js.map +1 -0
- package/src/index.d.ts +6 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +83 -0
- package/src/index.js.map +1 -0
- package/src/queries/in-memory.d.ts +3 -0
- package/src/queries/in-memory.d.ts.map +1 -0
- package/src/queries/in-memory.js +61 -0
- package/src/queries/in-memory.js.map +1 -0
- package/src/queries/mongo.d.ts +3 -0
- package/src/queries/mongo.d.ts.map +1 -0
- package/src/queries/mongo.js +75 -0
- package/src/queries/mongo.js.map +1 -0
- package/src/queries/queries.d.ts +2 -0
- package/src/queries/queries.d.ts.map +1 -0
- package/src/queries/queries.js +10 -0
- package/src/queries/queries.js.map +1 -0
- package/src/queries/types.d.ts +15 -0
- package/src/queries/types.d.ts.map +1 -0
- package/src/queries/types.js +2 -0
- package/src/queries/types.js.map +1 -0
- package/src/requestBodyInterceptor/interceptRequestBody.d.ts +3 -0
- package/src/requestBodyInterceptor/interceptRequestBody.d.ts.map +1 -0
- package/src/requestBodyInterceptor/interceptRequestBody.js +14 -0
- package/src/requestBodyInterceptor/interceptRequestBody.js.map +1 -0
- package/src/requestBodyInterceptor/types.d.ts +12 -0
- package/src/requestBodyInterceptor/types.d.ts.map +1 -0
- package/src/requestBodyInterceptor/types.js +2 -0
- package/src/requestBodyInterceptor/types.js.map +1 -0
- package/src/requestHandlers/delete.d.ts +12 -0
- package/src/requestHandlers/delete.d.ts.map +1 -0
- package/src/requestHandlers/delete.js +22 -0
- package/src/requestHandlers/delete.js.map +1 -0
- package/src/requestHandlers/get.d.ts +22 -0
- package/src/requestHandlers/get.d.ts.map +1 -0
- package/src/requestHandlers/get.js +47 -0
- package/src/requestHandlers/get.js.map +1 -0
- package/src/requestHandlers/index.d.ts +54 -0
- package/src/requestHandlers/index.d.ts.map +1 -0
- package/src/requestHandlers/index.js +21 -0
- package/src/requestHandlers/index.js.map +1 -0
- package/src/requestHandlers/patch.d.ts +9 -0
- package/src/requestHandlers/patch.d.ts.map +1 -0
- package/src/requestHandlers/patch.js +35 -0
- package/src/requestHandlers/patch.js.map +1 -0
- package/src/requestHandlers/post.d.ts +18 -0
- package/src/requestHandlers/post.d.ts.map +1 -0
- package/src/requestHandlers/post.js +37 -0
- package/src/requestHandlers/post.js.map +1 -0
- package/src/requestHandlers/put.d.ts +9 -0
- package/src/requestHandlers/put.d.ts.map +1 -0
- package/src/requestHandlers/put.js +35 -0
- package/src/requestHandlers/put.js.map +1 -0
- package/src/requestHandlers/types.d.ts +38 -0
- package/src/requestHandlers/types.d.ts.map +1 -0
- package/src/requestHandlers/types.js +2 -0
- package/src/requestHandlers/types.js.map +1 -0
- package/src/requestHandlers/utils.d.ts +2 -0
- package/src/requestHandlers/utils.d.ts.map +1 -0
- package/src/requestHandlers/utils.js +6 -0
- package/src/requestHandlers/utils.js.map +1 -0
- package/src/resourceRouter.d.ts +5 -0
- package/src/resourceRouter.d.ts.map +1 -0
- package/src/resourceRouter.js +95 -0
- package/src/resourceRouter.js.map +1 -0
- package/src/responseBodyInterceptor/interceptResponseBody.d.ts +3 -0
- package/src/responseBodyInterceptor/interceptResponseBody.d.ts.map +1 -0
- package/src/responseBodyInterceptor/interceptResponseBody.js +7 -0
- package/src/responseBodyInterceptor/interceptResponseBody.js.map +1 -0
- package/src/responseBodyInterceptor/types.d.ts +11 -0
- package/src/responseBodyInterceptor/types.d.ts.map +1 -0
- package/src/responseBodyInterceptor/types.js +2 -0
- package/src/responseBodyInterceptor/types.js.map +1 -0
- package/src/schema/compile.d.ts +3 -0
- package/src/schema/compile.d.ts.map +1 -0
- package/src/schema/compile.js +26 -0
- package/src/schema/compile.js.map +1 -0
- package/src/schema/types.d.ts +25 -0
- package/src/schema/types.d.ts.map +1 -0
- package/src/schema/types.js +2 -0
- package/{routes → src/schema}/types.js.map +1 -1
- package/src/schema/validate.d.ts +4 -0
- package/src/schema/validate.d.ts.map +1 -0
- package/src/schema/validate.js +14 -0
- package/src/schema/validate.js.map +1 -0
- package/src/urls/urlParser.d.ts +5 -0
- package/src/urls/urlParser.d.ts.map +1 -0
- package/src/urls/urlParser.js +9 -0
- package/src/urls/urlParser.js.map +1 -0
- package/test/integration/api-prefix.test.d.ts +2 -0
- package/test/integration/api-prefix.test.d.ts.map +1 -0
- package/test/integration/api-prefix.test.js +69 -0
- package/test/integration/api-prefix.test.js.map +1 -0
- package/test/integration/createServer.d.ts +4 -0
- package/test/integration/createServer.d.ts.map +1 -0
- package/test/integration/createServer.js +4 -0
- package/test/integration/createServer.js.map +1 -0
- package/test/integration/crud.test.d.ts +2 -0
- package/test/integration/crud.test.d.ts.map +1 -0
- package/test/integration/crud.test.js +173 -0
- package/test/integration/crud.test.js.map +1 -0
- package/test/integration/custom-router.test.d.ts +2 -0
- package/test/integration/custom-router.test.d.ts.map +1 -0
- package/test/integration/custom-router.test.js +74 -0
- package/test/integration/custom-router.test.js.map +1 -0
- package/test/integration/head-method.test.d.ts +2 -0
- package/test/integration/head-method.test.d.ts.map +1 -0
- package/test/integration/head-method.test.js +38 -0
- package/test/integration/head-method.test.js.map +1 -0
- package/test/integration/options-method.test.d.ts +2 -0
- package/test/integration/options-method.test.d.ts.map +1 -0
- package/test/integration/options-method.test.js +30 -0
- package/test/integration/options-method.test.js.map +1 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-change-requestBody.test.d.ts +2 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-change-requestBody.test.d.ts.map +1 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-change-requestBody.test.js +76 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-change-requestBody.test.js.map +1 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-error-string.test.d.ts +2 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-error-string.test.d.ts.map +1 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-error-string.test.js +60 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-error-string.test.js.map +1 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-invalid-return-types.test.d.ts +2 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-invalid-return-types.test.d.ts.map +1 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-invalid-return-types.test.js +89 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-invalid-return-types.test.js.map +1 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-void.test.d.ts +2 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-void.test.d.ts.map +1 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-void.test.js +47 -0
- package/test/integration/requestBodyInterceptor/requestBodyInterceptor-void.test.js.map +1 -0
- package/test/integration/responseBodyInterceptor.test.d.ts +2 -0
- package/test/integration/responseBodyInterceptor.test.d.ts.map +1 -0
- package/test/integration/responseBodyInterceptor.test.js +107 -0
- package/test/integration/responseBodyInterceptor.test.js.map +1 -0
- package/test/integration/returnNullFields.test.d.ts +2 -0
- package/test/integration/returnNullFields.test.d.ts.map +1 -0
- package/test/integration/returnNullFields.test.js +51 -0
- package/test/integration/returnNullFields.test.js.map +1 -0
- package/test/integration/root-url.test.d.ts +2 -0
- package/test/integration/root-url.test.d.ts.map +1 -0
- package/test/integration/root-url.test.js +29 -0
- package/test/integration/root-url.test.js.map +1 -0
- package/test/integration/schema-validation.test.d.ts +2 -0
- package/test/integration/schema-validation.test.d.ts.map +1 -0
- package/test/integration/schema-validation.test.js +169 -0
- package/test/integration/schema-validation.test.js.map +1 -0
- package/test/unit/config/config.test.d.ts +2 -0
- package/test/unit/config/config.test.d.ts.map +1 -0
- package/test/unit/config/config.test.js +121 -0
- package/test/unit/config/config.test.js.map +1 -0
- package/test/unit/urls/urlParser.test.d.ts +2 -0
- package/test/unit/urls/urlParser.test.d.ts.map +1 -0
- package/test/unit/urls/urlParser.test.js +43 -0
- package/test/unit/urls/urlParser.test.js.map +1 -0
- package/tsconfig.tsbuildinfo +1 -0
- package/vitest.config.d.ts +3 -0
- package/vitest.config.d.ts.map +1 -0
- package/vitest.config.js +10 -0
- package/vitest.config.js.map +1 -0
- package/config/index.js.map +0 -1
- package/delay/delayMiddleware.d.ts +0 -2
- package/delay/delayMiddleware.js +0 -16
- package/delay/delayMiddleware.js.map +0 -1
- package/index.d.ts +0 -5
- package/index.js +0 -94
- package/index.js.map +0 -1
- package/queries/in-memory.d.ts +0 -19
- package/queries/in-memory.js +0 -66
- package/queries/in-memory.js.map +0 -1
- package/queries/mongo.d.ts +0 -19
- package/queries/mongo.js +0 -106
- package/queries/mongo.js.map +0 -1
- package/queries/queries.d.ts +0 -20
- package/queries/queries.js +0 -17
- package/queries/queries.js.map +0 -1
- package/routes/delete.d.ts +0 -4
- package/routes/delete.js +0 -39
- package/routes/delete.js.map +0 -1
- package/routes/get.d.ts +0 -4
- package/routes/get.js +0 -71
- package/routes/get.js.map +0 -1
- package/routes/interceptors.d.ts +0 -3
- package/routes/interceptors.js +0 -22
- package/routes/interceptors.js.map +0 -1
- package/routes/patch.d.ts +0 -4
- package/routes/patch.js +0 -47
- package/routes/patch.js.map +0 -1
- package/routes/post.d.ts +0 -4
- package/routes/post.js +0 -47
- package/routes/post.js.map +0 -1
- package/routes/put.d.ts +0 -4
- package/routes/put.js +0 -47
- package/routes/put.js.map +0 -1
- package/routes/routes.d.ts +0 -6
- package/routes/routes.js +0 -61
- package/routes/routes.js.map +0 -1
- package/routes/types.d.ts +0 -17
- package/routes/types.js +0 -3
- package/routes/utils.d.ts +0 -3
- package/routes/utils.js +0 -8
- package/routes/utils.js.map +0 -1
- package/urls/urlMiddleware.d.ts +0 -3
- package/urls/urlMiddleware.js +0 -30
- package/urls/urlMiddleware.js.map +0 -1
- package/urls/urlParser.d.ts +0 -5
- package/urls/urlParser.js +0 -13
- package/urls/urlParser.js.map +0 -1
package/routes/delete.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.createDeleteRoutes = void 0;
|
|
13
|
-
function createDeleteRoutes(queries) {
|
|
14
|
-
function handleDelete(req, res) {
|
|
15
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
16
|
-
try {
|
|
17
|
-
const { resource, id } = req.requestInfo;
|
|
18
|
-
if (id) {
|
|
19
|
-
const item = yield queries.getById(resource, id);
|
|
20
|
-
if (item) {
|
|
21
|
-
yield queries.deleteById(resource, id);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
yield queries.deleteAll(resource);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
return res.status(500).json({ message: error.message });
|
|
30
|
-
}
|
|
31
|
-
return res.status(204).send();
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
return {
|
|
35
|
-
handleDelete,
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
exports.createDeleteRoutes = createDeleteRoutes;
|
|
39
|
-
//# sourceMappingURL=delete.js.map
|
package/routes/delete.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/routes/delete.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,SAAS,kBAAkB,CAAC,OAAO;IACjC,SAAe,YAAY,CAAC,GAAG,EAAE,GAAG;;YAClC,IAAI;gBACF,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAExC,IAAI,EAAE,EAAE;oBACN,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;oBAChD,IAAI,IAAI,EAAE;wBACR,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;qBACvC;iBACF;qBAAM;oBACL,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA;iBAClC;aACF;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;YAED,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;QAC/B,CAAC;KAAA;IAED,OAAO;QACL,YAAY;KACb,CAAA;AACH,CAAC;AAEQ,gDAAkB"}
|
package/routes/get.d.ts
DELETED
package/routes/get.js
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.createGetRoutes = void 0;
|
|
13
|
-
const utils_1 = require("./utils");
|
|
14
|
-
function createGetRoutes(queries, cacheControl, responseBodyInterceptor, returnNullFields) {
|
|
15
|
-
function handleGetResource(req, res) {
|
|
16
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
-
try {
|
|
18
|
-
const { resource, id } = req.requestInfo;
|
|
19
|
-
res.set('Cache-control', cacheControl);
|
|
20
|
-
if (id) {
|
|
21
|
-
const item = yield queries.getById(resource, id);
|
|
22
|
-
if (!item) {
|
|
23
|
-
res.status(404);
|
|
24
|
-
return res.send();
|
|
25
|
-
}
|
|
26
|
-
let theItem = item;
|
|
27
|
-
if (responseBodyInterceptor) {
|
|
28
|
-
try {
|
|
29
|
-
theItem = responseBodyInterceptor({ resource, body: item, id });
|
|
30
|
-
if (!theItem)
|
|
31
|
-
theItem = item;
|
|
32
|
-
}
|
|
33
|
-
catch (error) {
|
|
34
|
-
return res.status(500).json({
|
|
35
|
-
message: 'Error in responseBodyInterceptor: ' + error.message,
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
res.status(200);
|
|
40
|
-
res.json(returnNullFields ? theItem : (0, utils_1.removeNullFields)(theItem));
|
|
41
|
-
return res.send();
|
|
42
|
-
}
|
|
43
|
-
const items = yield queries.getAll(resource);
|
|
44
|
-
let theItems = items;
|
|
45
|
-
if (responseBodyInterceptor) {
|
|
46
|
-
try {
|
|
47
|
-
theItems = responseBodyInterceptor({ resource, body: items });
|
|
48
|
-
if (!theItems)
|
|
49
|
-
theItems = items;
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
return res.status(500).json({
|
|
53
|
-
message: 'Error in responseBodyInterceptor: ' + error.message,
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
res.status(200);
|
|
58
|
-
res.json(returnNullFields ? theItems : theItems.map((item) => (0, utils_1.removeNullFields)(item)));
|
|
59
|
-
return res.send();
|
|
60
|
-
}
|
|
61
|
-
catch (error) {
|
|
62
|
-
return res.status(500).json({ message: error.message });
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
return {
|
|
67
|
-
handleGetResource,
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
exports.createGetRoutes = createGetRoutes;
|
|
71
|
-
//# sourceMappingURL=get.js.map
|
package/routes/get.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"get.js","sourceRoot":"","sources":["../../src/routes/get.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAA0C;AAE1C,SAAS,eAAe,CAAC,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,gBAAgB;IACvF,SAAe,iBAAiB,CAAC,GAAG,EAAE,GAAG;;YACvC,IAAI;gBACF,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAExC,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,YAAY,CAAC,CAAA;gBAEtC,IAAI,EAAE,EAAE;oBACN,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;oBAEhD,IAAI,CAAC,IAAI,EAAE;wBACT,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;wBACf,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;qBAClB;oBAED,IAAI,OAAO,GAAG,IAAI,CAAA;oBAClB,IAAI,uBAAuB,EAAE;wBAC3B,IAAI;4BACF,OAAO,GAAG,uBAAuB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;4BAC/D,IAAI,CAAC,OAAO;gCAAE,OAAO,GAAG,IAAI,CAAA;yBAC7B;wBAAC,OAAO,KAAK,EAAE;4BACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;gCAC1B,OAAO,EAAE,oCAAoC,GAAG,KAAK,CAAC,OAAO;6BAC9D,CAAC,CAAA;yBACH;qBACF;oBAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBACf,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAC,CAAA;oBAChE,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;iBAClB;gBAED,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;gBAE5C,IAAI,QAAQ,GAAG,KAAK,CAAA;gBACpB,IAAI,uBAAuB,EAAE;oBAC3B,IAAI;wBACF,QAAQ,GAAG,uBAAuB,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;wBAC7D,IAAI,CAAC,QAAQ;4BAAE,QAAQ,GAAG,KAAK,CAAA;qBAChC;oBAAC,OAAO,KAAK,EAAE;wBACd,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;4BAC1B,OAAO,EAAE,oCAAoC,GAAG,KAAK,CAAC,OAAO;yBAC9D,CAAC,CAAA;qBACH;iBACF;gBAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACf,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,wBAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACtF,OAAO,GAAG,CAAC,IAAI,EAAE,CAAA;aAClB;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;QACH,CAAC;KAAA;IAED,OAAO;QACL,iBAAiB;KAClB,CAAA;AACH,CAAC;AAEQ,0CAAe"}
|
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 { resource } = req.requestInfo;
|
|
6
|
-
let body = req.body;
|
|
7
|
-
const validationResult = intercept({ resource, body });
|
|
8
|
-
if (!validationResult && typeof body === 'object')
|
|
9
|
-
return body;
|
|
10
|
-
if (typeof validationResult === 'string')
|
|
11
|
-
return validationResult;
|
|
12
|
-
// The request body was replaced by something else.
|
|
13
|
-
if (validationResult)
|
|
14
|
-
body = validationResult;
|
|
15
|
-
if (typeof body === 'object') {
|
|
16
|
-
return body;
|
|
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,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;IACpC,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;IAEnB,MAAM,gBAAgB,GAAG,SAAS,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAA;IAEtD,IAAI,CAAC,gBAAgB,IAAI,OAAO,IAAI,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAA;IAE9D,IAAI,OAAO,gBAAgB,KAAK,QAAQ;QAAE,OAAO,gBAAgB,CAAA;IAEjE,mDAAmD;IACnD,IAAI,gBAAgB;QAAE,IAAI,GAAG,gBAAgB,CAAA;IAE7C,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QAC5B,OAAO,IAAI,CAAA;KACZ;;QAAM,OAAO,GAAG,CAAC,IAAI,CAAA;AACxB,CAAC;AAEQ,oDAAoB"}
|
package/routes/patch.d.ts
DELETED
package/routes/patch.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.createPatchRoutes = void 0;
|
|
13
|
-
const interceptors_1 = require("./interceptors");
|
|
14
|
-
const utils_1 = require("./utils");
|
|
15
|
-
function createPatchRoutes(queries, requestBodyInterceptor, returnNullFields) {
|
|
16
|
-
function handlePatch(req, res) {
|
|
17
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
-
try {
|
|
19
|
-
const { resource, id } = req.requestInfo;
|
|
20
|
-
const body = (0, interceptors_1.interceptRequestBody)(requestBodyInterceptor.patch, req);
|
|
21
|
-
if (typeof body === 'string')
|
|
22
|
-
return res.status(400).json({ message: body }).send();
|
|
23
|
-
let item = null;
|
|
24
|
-
if (id)
|
|
25
|
-
item = yield queries.getById(resource, id);
|
|
26
|
-
if (!item)
|
|
27
|
-
return res.status(404).json({
|
|
28
|
-
message: `ID '${id}' not found`,
|
|
29
|
-
});
|
|
30
|
-
item = Object.assign(Object.assign(Object.assign({}, item), body), { id });
|
|
31
|
-
const updatedItem = yield queries.update(resource, item);
|
|
32
|
-
return res
|
|
33
|
-
.status(200)
|
|
34
|
-
.json(returnNullFields ? updatedItem : (0, utils_1.removeNullFields)(updatedItem))
|
|
35
|
-
.send();
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
return res.status(500).json({ message: error.message });
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
handlePatch,
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
exports.createPatchRoutes = createPatchRoutes;
|
|
47
|
-
//# sourceMappingURL=patch.js.map
|
package/routes/patch.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"patch.js","sourceRoot":"","sources":["../../src/routes/patch.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAqD;AACrD,mCAA0C;AAE1C,SAAS,iBAAiB,CAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB;IAC1E,SAAe,WAAW,CAAC,GAAG,EAAE,GAAG;;YACjC,IAAI;gBACF,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAExC,MAAM,IAAI,GAAG,IAAA,mCAAoB,EAAC,sBAAsB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;gBAEpE,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;gBAEnF,IAAI,IAAI,GAAG,IAAI,CAAA;gBACf,IAAI,EAAE;oBAAE,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBAElD,IAAI,CAAC,IAAI;oBACP,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC1B,OAAO,EAAE,OAAO,EAAE,aAAa;qBAChC,CAAC,CAAA;gBAEJ,IAAI,iDAAQ,IAAI,GAAK,IAAI,KAAE,EAAE,GAAE,CAAA;gBAE/B,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBAExD,OAAO,GAAG;qBACP,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,WAAW,CAAC,CAAC;qBACpE,IAAI,EAAE,CAAA;aACV;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;QACH,CAAC;KAAA;IAED,OAAO;QACL,WAAW;KACZ,CAAA;AACH,CAAC;AAEQ,8CAAiB"}
|
package/routes/post.d.ts
DELETED
package/routes/post.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.createPostRoutes = void 0;
|
|
13
|
-
const url_1 = require("url");
|
|
14
|
-
const interceptors_1 = require("./interceptors");
|
|
15
|
-
const utils_1 = require("./utils");
|
|
16
|
-
function createPostRoutes(queries, requestBodyInterceptor, returnNullFields) {
|
|
17
|
-
function handlePost(req, res) {
|
|
18
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
-
try {
|
|
20
|
-
const { resource } = req.requestInfo;
|
|
21
|
-
const body = (0, interceptors_1.interceptRequestBody)(requestBodyInterceptor.post, req);
|
|
22
|
-
if (typeof body === 'string')
|
|
23
|
-
return res.status(400).json({ message: body }).send();
|
|
24
|
-
const newItem = yield queries.create(resource, body);
|
|
25
|
-
return res
|
|
26
|
-
.set({
|
|
27
|
-
Location: (0, url_1.format)({
|
|
28
|
-
protocol: req.protocol,
|
|
29
|
-
host: req.get('host'),
|
|
30
|
-
pathname: `${resource}/${newItem.id}`,
|
|
31
|
-
}),
|
|
32
|
-
})
|
|
33
|
-
.status(201)
|
|
34
|
-
.json(returnNullFields ? newItem : (0, utils_1.removeNullFields)(newItem))
|
|
35
|
-
.send();
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
return res.status(500).json({ message: error.message });
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
handlePost,
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
exports.createPostRoutes = createPostRoutes;
|
|
47
|
-
//# sourceMappingURL=post.js.map
|
package/routes/post.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"post.js","sourceRoot":"","sources":["../../src/routes/post.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6BAA4B;AAC5B,iDAAqD;AACrD,mCAA0C;AAE1C,SAAS,gBAAgB,CAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB;IACzE,SAAe,UAAU,CAAC,GAAG,EAAE,GAAG;;YAChC,IAAI;gBACF,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAEpC,MAAM,IAAI,GAAG,IAAA,mCAAoB,EAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;gBAEnE,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;gBAEnF,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBAEpD,OAAO,GAAG;qBACP,GAAG,CAAC;oBACH,QAAQ,EAAE,IAAA,YAAM,EAAC;wBACf,QAAQ,EAAE,GAAG,CAAC,QAAQ;wBACtB,IAAI,EAAE,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC;wBACrB,QAAQ,EAAE,GAAG,QAAQ,IAAI,OAAO,CAAC,EAAE,EAAE;qBACtC,CAAC;iBACH,CAAC;qBACD,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,OAAO,CAAC,CAAC;qBAC5D,IAAI,EAAE,CAAA;aACV;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;QACH,CAAC;KAAA;IAED,OAAO;QACL,UAAU;KACX,CAAA;AACH,CAAC;AAEQ,4CAAgB"}
|
package/routes/put.d.ts
DELETED
package/routes/put.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.createPutRoutes = void 0;
|
|
13
|
-
const interceptors_1 = require("./interceptors");
|
|
14
|
-
const utils_1 = require("./utils");
|
|
15
|
-
function createPutRoutes(queries, requestBodyInterceptor, returnNullFields) {
|
|
16
|
-
function handlePut(req, res) {
|
|
17
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
18
|
-
try {
|
|
19
|
-
const { resource, id } = req.requestInfo;
|
|
20
|
-
const body = (0, interceptors_1.interceptRequestBody)(requestBodyInterceptor.put, req);
|
|
21
|
-
if (typeof body === 'string')
|
|
22
|
-
return res.status(400).json({ message: body }).send();
|
|
23
|
-
let item = null;
|
|
24
|
-
if (id)
|
|
25
|
-
item = yield queries.getById(resource, id);
|
|
26
|
-
if (!item)
|
|
27
|
-
return res.status(404).json({
|
|
28
|
-
message: `ID '${id}' not found`,
|
|
29
|
-
});
|
|
30
|
-
item = Object.assign(Object.assign({}, body), { id });
|
|
31
|
-
const replacedItem = yield queries.replace(resource, item);
|
|
32
|
-
return res
|
|
33
|
-
.status(200)
|
|
34
|
-
.json(returnNullFields ? replacedItem : (0, utils_1.removeNullFields)(replacedItem))
|
|
35
|
-
.send();
|
|
36
|
-
}
|
|
37
|
-
catch (error) {
|
|
38
|
-
return res.status(500).json({ message: error.message });
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
return {
|
|
43
|
-
handlePut,
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
exports.createPutRoutes = createPutRoutes;
|
|
47
|
-
//# sourceMappingURL=put.js.map
|
package/routes/put.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"put.js","sourceRoot":"","sources":["../../src/routes/put.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,iDAAqD;AACrD,mCAA0C;AAE1C,SAAS,eAAe,CAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB;IACxE,SAAe,SAAS,CAAC,GAAG,EAAE,GAAG;;YAC/B,IAAI;gBACF,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;gBAExC,MAAM,IAAI,GAAG,IAAA,mCAAoB,EAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;gBAElE,IAAI,OAAO,IAAI,KAAK,QAAQ;oBAAE,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;gBAEnF,IAAI,IAAI,GAAG,IAAI,CAAA;gBACf,IAAI,EAAE;oBAAE,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBAElD,IAAI,CAAC,IAAI;oBACP,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;wBAC1B,OAAO,EAAE,OAAO,EAAE,aAAa;qBAChC,CAAC,CAAA;gBAEJ,IAAI,mCAAQ,IAAI,KAAE,EAAE,GAAE,CAAA;gBAEtB,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;gBAE1D,OAAO,GAAG;qBACP,MAAM,CAAC,GAAG,CAAC;qBACX,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAA,wBAAgB,EAAC,YAAY,CAAC,CAAC;qBACtE,IAAI,EAAE,CAAA;aACV;YAAC,OAAO,KAAc,EAAE;gBACvB,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,KAAe,CAAC,OAAO,EAAE,CAAC,CAAA;aACnE;QACH,CAAC;KAAA;IAED,OAAO;QACL,SAAS;KACV,CAAA;AACH,CAAC;AAEQ,0CAAe"}
|
package/routes/routes.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { RouterConfig } from '../config';
|
|
2
|
-
declare function createResourceRouter(queries: any, routerConfig: RouterConfig): import("express-serve-static-core").Router;
|
|
3
|
-
declare const rootRouter: import("express-serve-static-core").Router;
|
|
4
|
-
declare function handleMethodNotAllowed(_: any, res: any): void;
|
|
5
|
-
declare function handleNotFound(_: any, res: any): void;
|
|
6
|
-
export { createResourceRouter, rootRouter, handleMethodNotAllowed, handleNotFound };
|
package/routes/routes.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.handleNotFound = exports.handleMethodNotAllowed = exports.rootRouter = exports.createResourceRouter = void 0;
|
|
16
|
-
const get_1 = require("./get");
|
|
17
|
-
const post_1 = require("./post");
|
|
18
|
-
const put_1 = require("./put");
|
|
19
|
-
const patch_1 = require("./patch");
|
|
20
|
-
const delete_1 = require("./delete");
|
|
21
|
-
const urlMiddleware_1 = require("../urls/urlMiddleware");
|
|
22
|
-
const express_1 = __importDefault(require("express"));
|
|
23
|
-
function createResourceRouter(queries, routerConfig) {
|
|
24
|
-
const { validateResources, resources, apiPrefix, cacheControl, requestBodyInterceptor, responseBodyInterceptor, returnNullFields, } = routerConfig;
|
|
25
|
-
const { handleGetResource } = (0, get_1.createGetRoutes)(queries, cacheControl, responseBodyInterceptor, returnNullFields);
|
|
26
|
-
const { handlePost } = (0, post_1.createPostRoutes)(queries, requestBodyInterceptor, returnNullFields);
|
|
27
|
-
const { handlePut } = (0, put_1.createPutRoutes)(queries, requestBodyInterceptor, returnNullFields);
|
|
28
|
-
const { handlePatch } = (0, patch_1.createPatchRoutes)(queries, requestBodyInterceptor, returnNullFields);
|
|
29
|
-
const { handleDelete } = (0, delete_1.createDeleteRoutes)(queries);
|
|
30
|
-
const validateResource = (0, urlMiddleware_1.createValidateResourceMiddleware)(validateResources, resources);
|
|
31
|
-
const getResourceAndId = (0, urlMiddleware_1.createResourceAndIdParser)(apiPrefix);
|
|
32
|
-
const resourceRouter = express_1.default.Router();
|
|
33
|
-
resourceRouter
|
|
34
|
-
// The router.get() function automatically handles HEAD requests as well, unless router.head is called first.
|
|
35
|
-
.get('*', getResourceAndId, validateResource, handleGetResource)
|
|
36
|
-
.post('*', getResourceAndId, validateResource, handlePost)
|
|
37
|
-
.put('*', getResourceAndId, validateResource, handlePut)
|
|
38
|
-
.patch('*', getResourceAndId, validateResource, handlePatch)
|
|
39
|
-
.delete('*', getResourceAndId, validateResource, handleDelete);
|
|
40
|
-
return resourceRouter;
|
|
41
|
-
}
|
|
42
|
-
exports.createResourceRouter = createResourceRouter;
|
|
43
|
-
// A GET to the root URL shows a default message.
|
|
44
|
-
const rootRouter = express_1.default.Router();
|
|
45
|
-
exports.rootRouter = rootRouter;
|
|
46
|
-
rootRouter.get('/', (_, res) => __awaiter(void 0, void 0, void 0, function* () {
|
|
47
|
-
return res.send('It works! ツ');
|
|
48
|
-
}));
|
|
49
|
-
// All other requests to the root URL are not allowed.
|
|
50
|
-
rootRouter.all('/', handleMethodNotAllowed);
|
|
51
|
-
// Route for handling not allowed methods.
|
|
52
|
-
function handleMethodNotAllowed(_, res) {
|
|
53
|
-
res.status(405).json({ message: 'Method Not Allowed' });
|
|
54
|
-
}
|
|
55
|
-
exports.handleMethodNotAllowed = handleMethodNotAllowed;
|
|
56
|
-
// Route for handling not found.
|
|
57
|
-
function handleNotFound(_, res) {
|
|
58
|
-
res.status(404).json({ message: 'Not Found' });
|
|
59
|
-
}
|
|
60
|
-
exports.handleNotFound = handleNotFound;
|
|
61
|
-
//# sourceMappingURL=routes.js.map
|
package/routes/routes.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes/routes.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+BAAuC;AACvC,iCAAyC;AACzC,+BAAuC;AACvC,mCAA2C;AAC3C,qCAA6C;AAC7C,yDAAmG;AAEnG,sDAA6B;AAG7B,SAAS,oBAAoB,CAAC,OAAO,EAAE,YAA0B;IAC/D,MAAM,EACJ,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,YAAY,EACZ,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,GACjB,GAAG,YAAY,CAAA;IAEhB,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAA,qBAAe,EAC3C,OAAO,EACP,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,CACjB,CAAA;IACD,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,uBAAgB,EAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;IAC1F,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,qBAAe,EAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;IACxF,MAAM,EAAE,WAAW,EAAE,GAAG,IAAA,yBAAiB,EAAC,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAA;IAC5F,MAAM,EAAE,YAAY,EAAE,GAAG,IAAA,2BAAkB,EAAC,OAAO,CAAC,CAAA;IAEpD,MAAM,gBAAgB,GAAG,IAAA,gDAAgC,EAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;IACvF,MAAM,gBAAgB,GAAG,IAAA,yCAAyB,EAAC,SAAS,CAAC,CAAA;IAE7D,MAAM,cAAc,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;IAEvC,cAAc;QACZ,6GAA6G;SAC5G,GAAG,CAAC,GAAG,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,iBAAiB,CAAC;SAC/D,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,MAAM,UAAU,GAAG,iBAAO,CAAC,MAAM,EAAE,CAAA;AAkBJ,gCAAU;AAjBzC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAO,CAAC,EAAE,GAAG,EAAE,EAAE;IACnC,OAAO,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;AAChC,CAAC,CAAA,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
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
type RequestInfo = {
|
|
2
|
-
resource: string;
|
|
3
|
-
body: unknown;
|
|
4
|
-
};
|
|
5
|
-
export type RequestBodyInterceptorCallback = (info: RequestInfo) => void | string | object;
|
|
6
|
-
export type RequestBodyInterceptor = {
|
|
7
|
-
post?: RequestBodyInterceptorCallback;
|
|
8
|
-
patch?: RequestBodyInterceptorCallback;
|
|
9
|
-
put?: RequestBodyInterceptorCallback;
|
|
10
|
-
};
|
|
11
|
-
type ResponseInfo = {
|
|
12
|
-
resource: string;
|
|
13
|
-
body: unknown;
|
|
14
|
-
id?: string;
|
|
15
|
-
};
|
|
16
|
-
export type ResponseBodyInterceptor = (info: ResponseInfo) => unknown;
|
|
17
|
-
export {};
|
package/routes/types.js
DELETED
package/routes/utils.d.ts
DELETED
package/routes/utils.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.removeNullFields = void 0;
|
|
4
|
-
const removeNullFields = (obj) => {
|
|
5
|
-
return Object.fromEntries(Object.entries(obj).filter(([_, value]) => value !== null));
|
|
6
|
-
};
|
|
7
|
-
exports.removeNullFields = removeNullFields;
|
|
8
|
-
//# sourceMappingURL=utils.js.map
|
package/routes/utils.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/routes/utils.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,CAAC,GAA4B,EAAE,EAAE;IAC/D,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAA;AACvF,CAAC,CAAA;AAFY,QAAA,gBAAgB,oBAE5B"}
|
package/urls/urlMiddleware.d.ts
DELETED
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
declare function createResourceAndIdParser(apiPrefix: any): (req: any, _: any, next: any) => any;
|
|
2
|
-
declare function createValidateResourceMiddleware(validateResources: any, resources: any): (req: any, res: any, next: any) => any;
|
|
3
|
-
export { createResourceAndIdParser, createValidateResourceMiddleware };
|
package/urls/urlMiddleware.js
DELETED
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createValidateResourceMiddleware = exports.createResourceAndIdParser = void 0;
|
|
4
|
-
const urlParser_1 = require("./urlParser");
|
|
5
|
-
function createResourceAndIdParser(apiPrefix) {
|
|
6
|
-
return function getResourceAndId(req, _, next) {
|
|
7
|
-
const url = req.baseUrl.replace(apiPrefix, '');
|
|
8
|
-
const urlInfo = (0, urlParser_1.parseUrl)(url);
|
|
9
|
-
req.requestInfo = Object.assign(Object.assign({}, req.requestInfo), urlInfo);
|
|
10
|
-
return next();
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
exports.createResourceAndIdParser = createResourceAndIdParser;
|
|
14
|
-
function createValidateResourceMiddleware(validateResources, resources) {
|
|
15
|
-
return function validateResource(req, res, next) {
|
|
16
|
-
if (!validateResources)
|
|
17
|
-
return next();
|
|
18
|
-
const { resource } = req.requestInfo;
|
|
19
|
-
if (!resource)
|
|
20
|
-
return next();
|
|
21
|
-
if (!resources.includes(resource.toLowerCase())) {
|
|
22
|
-
return res.status(404).json({
|
|
23
|
-
message: `'${resource}' is an unknown resource`,
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
return next();
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
exports.createValidateResourceMiddleware = createValidateResourceMiddleware;
|
|
30
|
-
//# sourceMappingURL=urlMiddleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"urlMiddleware.js","sourceRoot":"","sources":["../../src/urls/urlMiddleware.ts"],"names":[],"mappings":";;;AAAA,2CAAsC;AAEtC,SAAS,yBAAyB,CAAC,SAAS;IAC1C,OAAO,SAAS,gBAAgB,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI;QAC3C,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAC9C,MAAM,OAAO,GAAG,IAAA,oBAAQ,EAAC,GAAG,CAAC,CAAA;QAE7B,GAAG,CAAC,WAAW,mCAAQ,GAAG,CAAC,WAAW,GAAK,OAAO,CAAE,CAAA;QAEpD,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAoBQ,8DAAyB;AAlBlC,SAAS,gCAAgC,CAAC,iBAAiB,EAAE,SAAS;IACpE,OAAO,SAAS,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI;QAC7C,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,EAAE,CAAA;QAErC,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAC,WAAW,CAAA;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,IAAI,QAAQ,0BAA0B;aAChD,CAAC,CAAA;SACH;QAED,OAAO,IAAI,EAAE,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAEmC,4EAAgC"}
|
package/urls/urlParser.d.ts
DELETED
package/urls/urlParser.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseUrl = void 0;
|
|
4
|
-
function parseUrl(url) {
|
|
5
|
-
if (!url || (url && !url.trim()))
|
|
6
|
-
return { resource: null, id: null };
|
|
7
|
-
const urlSegments = url.split('/').filter((i) => i);
|
|
8
|
-
const resource = urlSegments.length > 0 ? urlSegments[0] : null;
|
|
9
|
-
const id = urlSegments.length > 1 ? urlSegments[1] : null;
|
|
10
|
-
return { resource, id };
|
|
11
|
-
}
|
|
12
|
-
exports.parseUrl = parseUrl;
|
|
13
|
-
//# sourceMappingURL=urlParser.js.map
|
package/urls/urlParser.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"urlParser.js","sourceRoot":"","sources":["../../src/urls/urlParser.ts"],"names":[],"mappings":";;;AAAA,SAAS,QAAQ,CAAC,GAAG;IACnB,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,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;IAEnD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC/D,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAEzD,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAA;AACzB,CAAC;AAEQ,4BAAQ"}
|