70 lines
1.8 KiB
JavaScript
70 lines
1.8 KiB
JavaScript
'use strict';
|
|
|
|
var path = require('path');
|
|
|
|
function create(options) {
|
|
var connect = require('connect')
|
|
, query = require('connect-query')
|
|
, bodyParser = require('body-parser')
|
|
, serveStatic = require('serve-static')
|
|
, send = require('connect-send-json')
|
|
|
|
, app = connect()
|
|
, restful = require('./desirae-http-api').create(options)
|
|
;
|
|
|
|
app
|
|
.use(send.json())
|
|
.use(query())
|
|
.use(bodyParser.json({ limit: 10 * 1024 * 1024 })) // 10mb
|
|
.use(require('compression')())
|
|
;
|
|
|
|
//
|
|
// Keeping the API *required* by desirae super minimal
|
|
// so that it can be implemented easily in any language
|
|
//
|
|
app
|
|
.use('/api/fs/static', serveStatic(options.blogdir))
|
|
.use('/api/fs/walk', restful.walk)
|
|
.use('/api/fs/files', restful.getFiles)
|
|
.use('/api/fs/files', restful.putFiles)
|
|
.use('/api/fs/copy', restful.copy)
|
|
;
|
|
// end Desirae API
|
|
|
|
if (options.tmpdir) {
|
|
app.use(serveStatic(options.tmpdir));
|
|
}
|
|
|
|
// this is used by DearDesi, but not required for desirae
|
|
app
|
|
.use('/api/fs/rootdir', function (req, res) {
|
|
var pathname = path.resolve(options.blogdir)
|
|
;
|
|
|
|
res.send({
|
|
path: pathname
|
|
, name: path.basename(pathname)
|
|
, relativePath: path.dirname(pathname)
|
|
});
|
|
return;
|
|
})
|
|
;
|
|
|
|
app
|
|
// the AngularJS App
|
|
.use(serveStatic(__dirname))
|
|
// TODO change file requests to '/blog'
|
|
//.use(serveStatic(options.blogdir))
|
|
.use('/blog', serveStatic(options.blogdir))
|
|
.use('/compiled_dev', serveStatic(path.join(options.blogdir, '/compiled_dev')))
|
|
.use('/compiled', serveStatic(path.join(options.blogdir, '/compiled')))
|
|
;
|
|
|
|
return app;
|
|
}
|
|
|
|
module.exports = create({ blogdir: path.join(__dirname, 'blog') });
|
|
module.exports.create = create;
|