UNPKG

plywood-proxy

Version:
93 lines (92 loc) 2.92 kB
'use strict'; var express = require('express'); var path = require('path'); var logger = require('morgan'); var bodyParser = require('body-parser'); var compress = require('compression'); var cors = require('cors'); var handlebars = require('express-handlebars'); var chronoshift_1 = require('chronoshift'); // Init chronoshift if (!chronoshift_1.WallTime.rules) { var tzData = require("chronoshift/lib/walltime/walltime-data.js"); chronoshift_1.WallTime.init(tzData.rules, tzData.zones); } var config_1 = require('./config'); var plywoodRoutes = require('./routes/plywood/plywood'); var app = express(); app.disable('x-powered-by'); // view engine setup var viewsDir = path.join(__dirname, '../../src/views'); app.engine('.hbs', handlebars({ defaultLayout: 'main', extname: '.hbs', layoutsDir: path.join(viewsDir, 'layouts'), partialsDir: path.join(viewsDir, 'partials') })); app.set('views', viewsDir); app.set('view engine', '.hbs'); app.use(compress()); app.use(logger('dev')); app.use(cors()); //app.use(express.static(path.join(__dirname, '../../build/public'))); app.use(express.static(path.join(__dirname, '../../assets'))); app.use(bodyParser.json()); app.get('/datasources', function (req, res, next) { config_1.DATA_SOURCE_MANAGER.getQueryableDataSources().then(function (dataSources) { res.json(dataSources.map(function (ds) { return ds.toClientDataSource(); })); }); }); app.use('/plywood', plywoodRoutes); //app.get('/datasources', (req: Request, res: Response, next: Function) => { // DATA_SOURCE_MANAGER.getQueryableDataSources().then((dataSources) => { // if (dataSources.length) { // res.render('pivot', { // version: VERSION, // config: JSON.stringify({ // version: VERSION, // dataSources: dataSources.map((ds) => ds.toClientDataSource()) // //homeLink: '/' // }), // title: 'Pivot' // }); // } else { // res.render('no-data-sources', { // version: VERSION, // title: 'No Data Sources' // }); // } // }).done(); //}); //catch 404 and forward to error handler app.use(function (req, res, next) { var err = new Error('Not Found'); err['status'] = 404; next(err); }); // error handlers // development error handler // will print stacktrace if (app.get('env') === 'development') { app.use(function (err, req, res, next) { res.status(err['status'] || 500); res.render('error', { message: err.message, error: err, version: config_1.VERSION, title: 'Error' }); }); } // production error handler // no stacktraces leaked to user app.use(function (err, req, res, next) { res.status(err.status || 500); res.render('error', { message: err.message, error: {}, version: config_1.VERSION, title: 'Error' }); }); module.exports = app;