UNPKG

sequelize-admin-panel

Version:
78 lines (65 loc) 2.1 kB
/** @module sequelize-admin-panel */ /* eslint no-console: 0 */ const ModelAdmin = require('./ModelAdmin') const modelList = require('./controllers/models') const serveStatic = require('serve-static') const path = require('path') const { checkSession, login, logout } = require('./userSession') const cli = require('./cli') String.prototype.capitalize = function() { return this.charAt(0).toLocaleUpperCase() + this.slice(1) } /** * Creates middleware * @method sequelizeAdmin * @param {Express} express Express * @param {Sequelize.Instance} sequelizeInstance - db connection * @param {Object} [{ models, translation }] options * @returns {Function} sequelize-admin-panel middleware */ function sequelizeAdmin( express, sequelizeInstance, { models, translation = {}, formidableOpts = {} } = {} ) { const router = express.Router() router.use('/static', serveStatic(path.join(__dirname, 'static'))) router.use(require('./middleware/formidable-body-parser')(formidableOpts)) // auth session router.use(require('./middleware/session')) // keep useful parameters in request router.use( require('./middleware/extend-request')( sequelizeInstance, models, translation ) ) router.use(require('./middleware/through-params')) // use own render method for app engine sanity router.use(require('./middleware/pugrender')) // login router.all('/login', login) router.get('/logout', logout) router.use(checkSession) router.all('/entry/:model/:id', require('./controllers/entry')) router.all('/model/:model', require('./controllers/model')) router.get('/', modelList) router.use((req, res, next) => res.pugrender('404')) /* eslint no-unused-vars:0 */ router.use(function(error, req, res, next) { console.error(error) res.pugrender('error', { error }) }) return router } module.exports = { /** @prop {Function} sequelizeAdmin middleware builder*/ sequelizeAdmin, /** @prop {ModelAdmin} ModelAdmin - ModelAdmin base class*/ ModelAdmin, /** @prop {Function} cli - cli interface*/ cli }