UNPKG

auth-center

Version:
100 lines (71 loc) 2.65 kB
'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;