temba 0.8.1 → 0.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -29
- package/package.json +22 -13
- package/dist/config/index.js +0 -78
- package/dist/delay/middleware.js +0 -16
- package/dist/errors/index.js +0 -21
- package/dist/errors/middleware.js +0 -14
- package/dist/logging/index.js +0 -38
- package/dist/queries/in-memory.js +0 -96
- package/dist/queries/index.js +0 -21
- package/dist/queries/mongo.js +0 -291
- package/dist/routes/delete.js +0 -82
- package/dist/routes/get.js +0 -83
- package/dist/routes/index.js +0 -95
- package/dist/routes/post.js +0 -64
- package/dist/routes/put.js +0 -90
- package/dist/routes/validator.js +0 -21
- package/dist/server.js +0 -80
- package/dist/urls/middleware.js +0 -42
- package/dist/urls/urlParser.js +0 -22
package/dist/routes/validator.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.validateRequestBody = validateRequestBody;
|
|
7
|
-
|
|
8
|
-
var _errors = require("../errors");
|
|
9
|
-
|
|
10
|
-
function validateRequestBody(validator, resourceName, requestBody) {
|
|
11
|
-
var validationResult = validator(resourceName, requestBody);
|
|
12
|
-
if (!validationResult) return requestBody;
|
|
13
|
-
|
|
14
|
-
if (typeof validationResult === 'string') {
|
|
15
|
-
throw (0, _errors.new400BadRequestError)(validationResult);
|
|
16
|
-
} // The requestBody was replaced by something else.
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (validationResult) requestBody = validationResult;
|
|
20
|
-
return requestBody;
|
|
21
|
-
}
|
package/dist/server.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", {
|
|
8
|
-
value: true
|
|
9
|
-
});
|
|
10
|
-
exports.create = create;
|
|
11
|
-
|
|
12
|
-
var _express = _interopRequireWildcard(require("express"));
|
|
13
|
-
|
|
14
|
-
var _morgan = _interopRequireDefault(require("morgan"));
|
|
15
|
-
|
|
16
|
-
var _middleware = require("./errors/middleware");
|
|
17
|
-
|
|
18
|
-
var _routes = require("./routes");
|
|
19
|
-
|
|
20
|
-
var _queries = require("./queries");
|
|
21
|
-
|
|
22
|
-
var _config = require("./config");
|
|
23
|
-
|
|
24
|
-
var _cors = _interopRequireDefault(require("cors"));
|
|
25
|
-
|
|
26
|
-
var _middleware2 = require("./delay/middleware");
|
|
27
|
-
|
|
28
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
29
|
-
|
|
30
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
31
|
-
|
|
32
|
-
function createServer(userConfig) {
|
|
33
|
-
var config = (0, _config.initConfig)(userConfig);
|
|
34
|
-
var queries = (0, _queries.createQueries)(config.connectionString);
|
|
35
|
-
var app = (0, _express["default"])();
|
|
36
|
-
app.use((0, _express.json)()); // Add HTTP request logging.
|
|
37
|
-
|
|
38
|
-
app.use((0, _morgan["default"])('tiny')); // Enable CORS for all requests.
|
|
39
|
-
|
|
40
|
-
app.use((0, _cors["default"])({
|
|
41
|
-
origin: true,
|
|
42
|
-
credentials: true
|
|
43
|
-
}));
|
|
44
|
-
|
|
45
|
-
if (config.delay > 0) {
|
|
46
|
-
var delayMiddleware = (0, _middleware2.createDelayMiddleware)(config.delay);
|
|
47
|
-
app.use(delayMiddleware);
|
|
48
|
-
} // Serve a static folder, if configured.
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (config.staticFolder) {
|
|
52
|
-
app.use(_express["default"]["static"](config.staticFolder));
|
|
53
|
-
} // On the root URL (with apiPrefix if applicable) only a GET is allowed.
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
var rootPath = config.apiPrefix ? "".concat(config.apiPrefix) : '/';
|
|
57
|
-
app.use(rootPath, _routes.rootRouter); // For all other URLs, only GET, POST, PUT and DELETE are allowed and handled.
|
|
58
|
-
|
|
59
|
-
var resourceRouter = (0, _routes.createResourceRouter)(queries, config);
|
|
60
|
-
var resourcePath = config.apiPrefix ? "".concat(config.apiPrefix, "*") : '*';
|
|
61
|
-
app.use(resourcePath, resourceRouter); // In case of an API prefix, GET, POST, PUT and DELETE requests to all other URLs return a 404 Not Found.
|
|
62
|
-
|
|
63
|
-
if (config.apiPrefix) {
|
|
64
|
-
app.get('*', _routes.handleNotFound);
|
|
65
|
-
app.post('*', _routes.handleNotFound);
|
|
66
|
-
app.put('*', _routes.handleNotFound);
|
|
67
|
-
app["delete"]('*', _routes.handleNotFound);
|
|
68
|
-
} // All other methods to any URL are not allowed.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
app.all('*', _routes.handleMethodNotAllowed);
|
|
72
|
-
if (config.apiPrefix) app.all("".concat(config.apiPrefix, "*"), _routes.handleMethodNotAllowed); // Error middleware.
|
|
73
|
-
|
|
74
|
-
app.use(_middleware.errorHandler);
|
|
75
|
-
return app;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
function create(userConfig) {
|
|
79
|
-
return createServer(userConfig);
|
|
80
|
-
}
|
package/dist/urls/middleware.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
Object.defineProperty(exports, "__esModule", {
|
|
6
|
-
value: true
|
|
7
|
-
});
|
|
8
|
-
exports.createResourceAndIdParser = createResourceAndIdParser;
|
|
9
|
-
exports.createValidateResourceMiddleware = createValidateResourceMiddleware;
|
|
10
|
-
|
|
11
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
|
-
|
|
13
|
-
var _urlParser = require("./urlParser");
|
|
14
|
-
|
|
15
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
16
|
-
|
|
17
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
18
|
-
|
|
19
|
-
function createResourceAndIdParser(apiPrefix) {
|
|
20
|
-
return function getResourceAndId(req, _, next) {
|
|
21
|
-
var url = req.baseUrl.replace(apiPrefix, '');
|
|
22
|
-
var urlInfo = (0, _urlParser.parseUrl)(url);
|
|
23
|
-
req.requestInfo = _objectSpread(_objectSpread({}, req.requestInfo), urlInfo);
|
|
24
|
-
return next();
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
function createValidateResourceMiddleware(validateResources, resourceNames) {
|
|
29
|
-
return function validateResource(req, _, next) {
|
|
30
|
-
if (!validateResources) return next();
|
|
31
|
-
var resourceName = req.requestInfo.resourceName;
|
|
32
|
-
if (!resourceName) return next();
|
|
33
|
-
|
|
34
|
-
if (!resourceNames.includes(resourceName.toLowerCase())) {
|
|
35
|
-
var error = new Error("'".concat(resourceName, "' is an unknown resource"));
|
|
36
|
-
error.status = 404;
|
|
37
|
-
return next(error);
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return next();
|
|
41
|
-
};
|
|
42
|
-
}
|
package/dist/urls/urlParser.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.parseUrl = parseUrl;
|
|
7
|
-
|
|
8
|
-
function parseUrl(url) {
|
|
9
|
-
if (!url || url && !url.trim()) return {
|
|
10
|
-
resourceName: null,
|
|
11
|
-
id: null
|
|
12
|
-
};
|
|
13
|
-
var urlSegments = url.split('/').filter(function (i) {
|
|
14
|
-
return i;
|
|
15
|
-
});
|
|
16
|
-
var resourceName = urlSegments.length > 0 ? urlSegments[0] : null;
|
|
17
|
-
var id = urlSegments.length > 1 ? urlSegments[1] : null;
|
|
18
|
-
return {
|
|
19
|
-
resourceName: resourceName,
|
|
20
|
-
id: id
|
|
21
|
-
};
|
|
22
|
-
}
|