UNPKG

2.99 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7exports.default = function (options) {
8 const config = (0, _config2.default)(options);
9 const app = (0, _koa2.default)();
10
11 app.use(function* injectConfig(next) {
12 this.__defineGetter__('config', () => {
13 return (0, _config2.default)();
14 });
15 yield* next;
16 });
17
18 app.use((0, _koaBodyparser2.default)());
19 app.use((0, _koaLogger2.default)());
20
21 /** Set public path, for css/js/images **/
22 app.use((0, _koaStatic2.default)(config.staticPath, {
23 maxage: config.debug ? 0 : 60 * 60 * 24 * 7
24 }));
25
26 /** Sessions **/
27 app.keys = config.keys;
28 app.use((0, _koaGenericSession2.default)(config.session, app));
29
30 /** I18n **/
31 const i18n = new _i18n2.default(config.messages);
32
33 app.use(function* injectI18n(next) {
34 if (this.query.locale) {
35 this.session.locale = this.query.locale;
36 }
37 i18n.setLocale(this.session.locale);
38 yield* next;
39 });
40
41 /** View & i18n **/
42 app.use((0, _koaView2.default)(config.viewPath, {
43 noCache: config.debug,
44 globals: {
45 pagination: _util.pagination,
46 __: function __(key) {
47 return i18n.message(key);
48 }
49 }
50 }));
51
52 /** ORM **/
53 app.orm = (0, _koaOrm2.default)(config.orm);
54 app.use(app.orm.middleware);
55
56 /** CSRF */
57 (0, _koaCsrf2.default)(app);
58
59 /** Middlewares **/
60 (0, _error2.default)(app);
61 (0, _flash2.default)(app);
62 (0, _mail2.default)(app, config.mail);
63
64 /** Router **/
65 (0, _routes2.default)(app, config);
66
67 return app;
68};
69
70var _koa = require('koa');
71
72var _koa2 = _interopRequireDefault(_koa);
73
74var _koaView = require('koa-view');
75
76var _koaView2 = _interopRequireDefault(_koaView);
77
78var _koaBodyparser = require('koa-bodyparser');
79
80var _koaBodyparser2 = _interopRequireDefault(_koaBodyparser);
81
82var _koaGenericSession = require('koa-generic-session');
83
84var _koaGenericSession2 = _interopRequireDefault(_koaGenericSession);
85
86var _koaLogger = require('koa-logger');
87
88var _koaLogger2 = _interopRequireDefault(_koaLogger);
89
90var _koaStatic = require('koa-static');
91
92var _koaStatic2 = _interopRequireDefault(_koaStatic);
93
94var _koaCsrf = require('koa-csrf');
95
96var _koaCsrf2 = _interopRequireDefault(_koaCsrf);
97
98var _koaOrm = require('koa-orm');
99
100var _koaOrm2 = _interopRequireDefault(_koaOrm);
101
102var _i18n = require('./i18n');
103
104var _i18n2 = _interopRequireDefault(_i18n);
105
106var _config = require('./config');
107
108var _config2 = _interopRequireDefault(_config);
109
110var _routes = require('./routes');
111
112var _routes2 = _interopRequireDefault(_routes);
113
114var _error = require('./middlewares/error');
115
116var _error2 = _interopRequireDefault(_error);
117
118var _flash = require('./middlewares/flash');
119
120var _flash2 = _interopRequireDefault(_flash);
121
122var _mail = require('./middlewares/mail');
123
124var _mail2 = _interopRequireDefault(_mail);
125
126var _util = require('./util');
127
128function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
129
130module.exports = exports['default'];
\No newline at end of file