"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;