plywood-proxy
Version:
A Plywood proxy
93 lines (92 loc) • 2.92 kB
JavaScript
'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;