auth-center
Version:
auth center with TOTP
100 lines (71 loc) • 2.65 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
var _koa = _interopRequireDefault(require("koa"));
var _koaView = _interopRequireDefault(require("koa-view"));
var _koaBodyparser = _interopRequireDefault(require("koa-bodyparser"));
var _koaSession = _interopRequireDefault(require("koa-session"));
var _koaLogger = _interopRequireDefault(require("koa-logger"));
var _koaStatic = _interopRequireDefault(require("koa-static"));
var _koaOrm = _interopRequireDefault(require("koa-orm"));
var _i18n = _interopRequireDefault(require("./i18n"));
var _config = _interopRequireDefault(require("./config"));
var _routes = _interopRequireDefault(require("./routes"));
var _error = _interopRequireDefault(require("./middlewares/error"));
var _flash = _interopRequireDefault(require("./middlewares/flash"));
var _mail = _interopRequireDefault(require("./middlewares/mail"));
var _log = _interopRequireDefault(require("./middlewares/log"));
var _util = require("./util");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _default(options) {
const cfg = (0, _config.default)(options);
const app = new _koa.default(); // Has reversed by proxy
app.proxy = cfg.proxy === true;
const {
staticPath
} = cfg;
app.use(async function injectConfig(ctx, next) {
ctx.__defineGetter__('config', _config.default);
ctx._routes = cfg.routes;
ctx.state._routes = cfg.routes;
ctx.state.logo = cfg.logo;
ctx.state.terms = cfg.terms;
ctx.state.favicon = cfg.favicon;
ctx.state.staticRoot = (0, _util.isURL)(staticPath) ? staticPath : '';
await next();
});
/** Set public path, for css/js/images **/
if (!(0, _util.isURL)(staticPath)) {
app.use((0, _koaStatic.default)(cfg.staticPath, {
maxage: cfg.debug ? 0 : 60 * 60 * 24 * 7
}));
}
app.use((0, _koaBodyparser.default)());
app.use((0, _koaLogger.default)());
/** Sessions **/
app.keys = cfg.keys;
app.use((0, _koaSession.default)(cfg.session, app));
/** I18n **/
app.use((0, _i18n.default)(_config.default.messages));
/** View & i18n **/
app.use((0, _koaView.default)(cfg.viewPath, {
noCache: cfg.debug,
globals: {
pagination: _util.pagination
}
}));
/** ORM **/
app.orm = (0, _koaOrm.default)(cfg.orm);
app.use(app.orm.middleware);
/** Middlewares **/
(0, _error.default)(app);
(0, _flash.default)(app);
(0, _log.default)(app);
(0, _mail.default)(app, cfg.mail);
/** Router **/
(0, _routes.default)(app, cfg);
return app;
}
module.exports = exports.default;