63 lines
1.7 KiB
JavaScript
63 lines
1.7 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;
|