payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
71 lines (70 loc) • 8.41 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "default", {
enumerable: true,
get: function() {
return _default;
}
});
const _bodyparser = /*#__PURE__*/ _interop_require_default(require("body-parser"));
const _compression = /*#__PURE__*/ _interop_require_default(require("compression"));
const _express = /*#__PURE__*/ _interop_require_default(require("express"));
const _expressfileupload = /*#__PURE__*/ _interop_require_default(require("express-fileupload"));
const _expressratelimit = /*#__PURE__*/ _interop_require_default(require("express-rate-limit"));
const _methodoverride = /*#__PURE__*/ _interop_require_default(require("method-override"));
const _passport = /*#__PURE__*/ _interop_require_default(require("passport"));
const _qsmiddleware = /*#__PURE__*/ _interop_require_default(require("qs-middleware"));
const _middleware = /*#__PURE__*/ _interop_require_default(require("../../localization/middleware"));
const _authenticate = /*#__PURE__*/ _interop_require_default(require("./authenticate"));
const _convertPayload = /*#__PURE__*/ _interop_require_default(require("./convertPayload"));
const _corsHeaders = /*#__PURE__*/ _interop_require_default(require("./corsHeaders"));
const _defaultPayload = /*#__PURE__*/ _interop_require_default(require("./defaultPayload"));
const _i18n = require("./i18n");
const _identifyAPI = /*#__PURE__*/ _interop_require_default(require("./identifyAPI"));
function _interop_require_default(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
const middleware = (payload)=>{
const rateLimitOptions = {
max: payload.config.rateLimit.max,
windowMs: payload.config.rateLimit.window
};
if (typeof payload.config.rateLimit.skip === 'function') rateLimitOptions.skip = payload.config.rateLimit.skip;
if (payload.config.express.middleware?.length) {
payload.logger.warn('express.middleware is deprecated. Please migrate to express.postMiddleware.');
}
return [
_defaultPayload.default,
...payload.config.express.preMiddleware || [],
(0, _expressratelimit.default)(rateLimitOptions),
_passport.default.initialize(),
(0, _i18n.i18nMiddleware)(payload.config.i18n),
(0, _identifyAPI.default)('REST'),
(0, _methodoverride.default)('X-HTTP-Method-Override'),
(0, _qsmiddleware.default)({
arrayLimit: 1000,
depth: 10
}),
_bodyparser.default.urlencoded({
extended: true
}),
(0, _compression.default)(payload.config.express.compression),
_middleware.default,
_express.default.json(payload.config.express.json),
(0, _expressfileupload.default)({
parseNested: true,
...payload.config.upload
}),
_convertPayload.default,
(0, _authenticate.default)(payload.config),
(0, _corsHeaders.default)(payload.config),
...payload.config.express.middleware || [],
...payload.config.express.postMiddleware || []
];
};
const _default = middleware;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9leHByZXNzL21pZGRsZXdhcmUvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJvZHlQYXJzZXIgZnJvbSAnYm9keS1wYXJzZXInXG5pbXBvcnQgY29tcHJlc3Npb24gZnJvbSAnY29tcHJlc3Npb24nXG5pbXBvcnQgZXhwcmVzcyBmcm9tICdleHByZXNzJ1xuaW1wb3J0IGZpbGVVcGxvYWQgZnJvbSAnZXhwcmVzcy1maWxldXBsb2FkJ1xuaW1wb3J0IHJhdGVMaW1pdCBmcm9tICdleHByZXNzLXJhdGUtbGltaXQnXG5pbXBvcnQgbWV0aG9kT3ZlcnJpZGUgZnJvbSAnbWV0aG9kLW92ZXJyaWRlJ1xuaW1wb3J0IHBhc3Nwb3J0IGZyb20gJ3Bhc3Nwb3J0J1xuaW1wb3J0IHFzTWlkZGxld2FyZSBmcm9tICdxcy1taWRkbGV3YXJlJ1xuXG5pbXBvcnQgdHlwZSB7IFBheWxvYWQgfSBmcm9tICcuLi8uLi9wYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBQYXlsb2FkUmVxdWVzdCB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgbG9jYWxpemF0aW9uTWlkZGxld2FyZSBmcm9tICcuLi8uLi9sb2NhbGl6YXRpb24vbWlkZGxld2FyZSdcbmltcG9ydCBhdXRoZW50aWNhdGUgZnJvbSAnLi9hdXRoZW50aWNhdGUnXG5pbXBvcnQgY29udmVydFBheWxvYWQgZnJvbSAnLi9jb252ZXJ0UGF5bG9hZCdcbmltcG9ydCBjb3JzSGVhZGVycyBmcm9tICcuL2NvcnNIZWFkZXJzJ1xuaW1wb3J0IGRlZmF1bHRQYXlsb2FkIGZyb20gJy4vZGVmYXVsdFBheWxvYWQnXG5pbXBvcnQgeyBpMThuTWlkZGxld2FyZSB9IGZyb20gJy4vaTE4bidcbmltcG9ydCBpZGVudGlmeUFQSSBmcm9tICcuL2lkZW50aWZ5QVBJJ1xuXG5jb25zdCBtaWRkbGV3YXJlID0gKHBheWxvYWQ6IFBheWxvYWQpOiBhbnkgPT4ge1xuICBjb25zdCByYXRlTGltaXRPcHRpb25zOiB7XG4gICAgbWF4PzogbnVtYmVyXG4gICAgc2tpcD86IChyZXE6IFBheWxvYWRSZXF1ZXN0KSA9PiBib29sZWFuXG4gICAgd2luZG93TXM/OiBudW1iZXJcbiAgfSA9IHtcbiAgICBtYXg6IHBheWxvYWQuY29uZmlnLnJhdGVMaW1pdC5tYXgsXG4gICAgd2luZG93TXM6IHBheWxvYWQuY29uZmlnLnJhdGVMaW1pdC53aW5kb3csXG4gIH1cblxuICBpZiAodHlwZW9mIHBheWxvYWQuY29uZmlnLnJhdGVMaW1pdC5za2lwID09PSAnZnVuY3Rpb24nKVxuICAgIHJhdGVMaW1pdE9wdGlvbnMuc2tpcCA9IHBheWxvYWQuY29uZmlnLnJhdGVMaW1pdC5za2lwXG5cbiAgaWYgKHBheWxvYWQuY29uZmlnLmV4cHJlc3MubWlkZGxld2FyZT8ubGVuZ3RoKSB7XG4gICAgcGF5bG9hZC5sb2dnZXIud2FybihcbiAgICAgICdleHByZXNzLm1pZGRsZXdhcmUgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIG1pZ3JhdGUgdG8gZXhwcmVzcy5wb3N0TWlkZGxld2FyZS4nLFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBbXG4gICAgZGVmYXVsdFBheWxvYWQsXG4gICAgLi4uKHBheWxvYWQuY29uZmlnLmV4cHJlc3MucHJlTWlkZGxld2FyZSB8fCBbXSksXG4gICAgcmF0ZUxpbWl0KHJhdGVMaW1pdE9wdGlvbnMpLFxuICAgIHBhc3Nwb3J0LmluaXRpYWxpemUoKSxcbiAgICBpMThuTWlkZGxld2FyZShwYXlsb2FkLmNvbmZpZy5pMThuKSxcbiAgICBpZGVudGlmeUFQSSgnUkVTVCcpLFxuICAgIG1ldGhvZE92ZXJyaWRlKCdYLUhUVFAtTWV0aG9kLU92ZXJyaWRlJyksXG4gICAgcXNNaWRkbGV3YXJlKHsgYXJyYXlMaW1pdDogMTAwMCwgZGVwdGg6IDEwIH0pLFxuICAgIGJvZHlQYXJzZXIudXJsZW5jb2RlZCh7IGV4dGVuZGVkOiB0cnVlIH0pLFxuICAgIGNvbXByZXNzaW9uKHBheWxvYWQuY29uZmlnLmV4cHJlc3MuY29tcHJlc3Npb24pLFxuICAgIGxvY2FsaXphdGlvbk1pZGRsZXdhcmUsXG4gICAgZXhwcmVzcy5qc29uKHBheWxvYWQuY29uZmlnLmV4cHJlc3MuanNvbiksXG4gICAgZmlsZVVwbG9hZCh7XG4gICAgICBwYXJzZU5lc3RlZDogdHJ1ZSxcbiAgICAgIC4uLnBheWxvYWQuY29uZmlnLnVwbG9hZCxcbiAgICB9KSxcbiAgICBjb252ZXJ0UGF5bG9hZCxcbiAgICBhdXRoZW50aWNhdGUocGF5bG9hZC5jb25maWcpLFxuICAgIGNvcnNIZWFkZXJzKHBheWxvYWQuY29uZmlnKSxcbiAgICAuLi4ocGF5bG9hZC5jb25maWcuZXhwcmVzcy5taWRkbGV3YXJlIHx8IFtdKSxcbiAgICAuLi4ocGF5bG9hZC5jb25maWcuZXhwcmVzcy5wb3N0TWlkZGxld2FyZSB8fCBbXSksXG4gIF1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbWlkZGxld2FyZVxuIl0sIm5hbWVzIjpbIm1pZGRsZXdhcmUiLCJwYXlsb2FkIiwicmF0ZUxpbWl0T3B0aW9ucyIsIm1heCIsImNvbmZpZyIsInJhdGVMaW1pdCIsIndpbmRvd01zIiwid2luZG93Iiwic2tpcCIsImV4cHJlc3MiLCJsZW5ndGgiLCJsb2dnZXIiLCJ3YXJuIiwiZGVmYXVsdFBheWxvYWQiLCJwcmVNaWRkbGV3YXJlIiwicGFzc3BvcnQiLCJpbml0aWFsaXplIiwiaTE4bk1pZGRsZXdhcmUiLCJpMThuIiwiaWRlbnRpZnlBUEkiLCJtZXRob2RPdmVycmlkZSIsInFzTWlkZGxld2FyZSIsImFycmF5TGltaXQiLCJkZXB0aCIsImJvZHlQYXJzZXIiLCJ1cmxlbmNvZGVkIiwiZXh0ZW5kZWQiLCJjb21wcmVzc2lvbiIsImxvY2FsaXphdGlvbk1pZGRsZXdhcmUiLCJqc29uIiwiZmlsZVVwbG9hZCIsInBhcnNlTmVzdGVkIiwidXBsb2FkIiwiY29udmVydFBheWxvYWQiLCJhdXRoZW50aWNhdGUiLCJjb3JzSGVhZGVycyIsInBvc3RNaWRkbGV3YXJlIl0sIm1hcHBpbmdzIjoiOzs7OytCQWdFQTs7O2VBQUE7OzttRUFoRXVCO29FQUNDO2dFQUNKOzBFQUNHO3lFQUNEO3VFQUNLO2lFQUNOO3FFQUNJO21FQUtVO3FFQUNWO3VFQUNFO29FQUNIO3VFQUNHO3NCQUNJO29FQUNQOzs7Ozs7QUFFeEIsTUFBTUEsYUFBYSxDQUFDQztJQUNsQixNQUFNQyxtQkFJRjtRQUNGQyxLQUFLRixRQUFRRyxNQUFNLENBQUNDLFNBQVMsQ0FBQ0YsR0FBRztRQUNqQ0csVUFBVUwsUUFBUUcsTUFBTSxDQUFDQyxTQUFTLENBQUNFLE1BQU07SUFDM0M7SUFFQSxJQUFJLE9BQU9OLFFBQVFHLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDRyxJQUFJLEtBQUssWUFDM0NOLGlCQUFpQk0sSUFBSSxHQUFHUCxRQUFRRyxNQUFNLENBQUNDLFNBQVMsQ0FBQ0csSUFBSTtJQUV2RCxJQUFJUCxRQUFRRyxNQUFNLENBQUNLLE9BQU8sQ0FBQ1QsVUFBVSxFQUFFVSxRQUFRO1FBQzdDVCxRQUFRVSxNQUFNLENBQUNDLElBQUksQ0FDakI7SUFFSjtJQUVBLE9BQU87UUFDTEMsdUJBQWM7V0FDVlosUUFBUUcsTUFBTSxDQUFDSyxPQUFPLENBQUNLLGFBQWEsSUFBSSxFQUFFO1FBQzlDVCxJQUFBQSx5QkFBUyxFQUFDSDtRQUNWYSxpQkFBUSxDQUFDQyxVQUFVO1FBQ25CQyxJQUFBQSxvQkFBYyxFQUFDaEIsUUFBUUcsTUFBTSxDQUFDYyxJQUFJO1FBQ2xDQyxJQUFBQSxvQkFBVyxFQUFDO1FBQ1pDLElBQUFBLHVCQUFjLEVBQUM7UUFDZkMsSUFBQUEscUJBQVksRUFBQztZQUFFQyxZQUFZO1lBQU1DLE9BQU87UUFBRztRQUMzQ0MsbUJBQVUsQ0FBQ0MsVUFBVSxDQUFDO1lBQUVDLFVBQVU7UUFBSztRQUN2Q0MsSUFBQUEsb0JBQVcsRUFBQzFCLFFBQVFHLE1BQU0sQ0FBQ0ssT0FBTyxDQUFDa0IsV0FBVztRQUM5Q0MsbUJBQXNCO1FBQ3RCbkIsZ0JBQU8sQ0FBQ29CLElBQUksQ0FBQzVCLFFBQVFHLE1BQU0sQ0FBQ0ssT0FBTyxDQUFDb0IsSUFBSTtRQUN4Q0MsSUFBQUEsMEJBQVUsRUFBQztZQUNUQyxhQUFhO1lBQ2IsR0FBRzlCLFFBQVFHLE1BQU0sQ0FBQzRCLE1BQU07UUFDMUI7UUFDQUMsdUJBQWM7UUFDZEMsSUFBQUEscUJBQVksRUFBQ2pDLFFBQVFHLE1BQU07UUFDM0IrQixJQUFBQSxvQkFBVyxFQUFDbEMsUUFBUUcsTUFBTTtXQUN0QkgsUUFBUUcsTUFBTSxDQUFDSyxPQUFPLENBQUNULFVBQVUsSUFBSSxFQUFFO1dBQ3ZDQyxRQUFRRyxNQUFNLENBQUNLLE9BQU8sQ0FBQzJCLGNBQWMsSUFBSSxFQUFFO0tBQ2hEO0FBQ0g7TUFFQSxXQUFlcEMifQ==