| 
									
										
										
										
											2020-11-08 20:30:15 -07:00
										 |  |  | "use strict"; | 
					
						
							| 
									
										
										
										
											2015-01-13 04:22:20 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-08 20:30:15 -07:00
										 |  |  | var path = require("path"); | 
					
						
							| 
									
										
										
										
											2015-01-14 05:14:11 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | function create(options) { | 
					
						
							| 
									
										
										
										
											2020-11-08 20:30:15 -07:00
										 |  |  |   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); | 
					
						
							| 
									
										
										
										
											2015-01-13 14:50:17 -07:00
										 |  |  |   app | 
					
						
							|  |  |  |     .use(send.json()) | 
					
						
							|  |  |  |     .use(query()) | 
					
						
							|  |  |  |     .use(bodyParser.json({ limit: 10 * 1024 * 1024 })) // 10mb
 | 
					
						
							| 
									
										
										
										
											2020-11-08 20:30:15 -07:00
										 |  |  |     .use(require("compression")()); | 
					
						
							| 
									
										
										
										
											2015-01-13 14:50:17 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   //
 | 
					
						
							|  |  |  |   // Keeping the API *required* by desirae super minimal
 | 
					
						
							|  |  |  |   // so that it can be implemented easily in any language
 | 
					
						
							|  |  |  |   //
 | 
					
						
							|  |  |  |   app | 
					
						
							| 
									
										
										
										
											2020-11-08 20:30:15 -07:00
										 |  |  |     .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); | 
					
						
							| 
									
										
										
										
											2015-01-13 14:50:17 -07:00
										 |  |  |   // end Desirae API
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   if (options.tmpdir) { | 
					
						
							|  |  |  |     app.use(serveStatic(options.tmpdir)); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // this is used by DearDesi, but not required for desirae
 | 
					
						
							| 
									
										
										
										
											2020-11-08 20:30:15 -07:00
										 |  |  |   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; | 
					
						
							|  |  |  |   }); | 
					
						
							| 
									
										
										
										
											2015-01-13 14:50:17 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   app | 
					
						
							|  |  |  |     // the AngularJS App
 | 
					
						
							|  |  |  |     .use(serveStatic(__dirname)) | 
					
						
							|  |  |  |     // TODO change file requests to '/blog'
 | 
					
						
							|  |  |  |     //.use(serveStatic(options.blogdir))
 | 
					
						
							| 
									
										
										
										
											2020-11-08 20:30:15 -07:00
										 |  |  |     .use("/blog", serveStatic(options.blogdir)) | 
					
						
							|  |  |  |     .use( | 
					
						
							|  |  |  |       "/compiled_dev", | 
					
						
							|  |  |  |       serveStatic(path.join(options.blogdir, "/compiled_dev")) | 
					
						
							|  |  |  |     ) | 
					
						
							|  |  |  |     .use("/compiled", serveStatic(path.join(options.blogdir, "/compiled"))); | 
					
						
							| 
									
										
										
										
											2015-01-13 14:50:17 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |   return app; | 
					
						
							| 
									
										
										
										
											2015-01-14 05:14:11 -05:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-11-08 20:30:15 -07:00
										 |  |  | module.exports = create({ blogdir: path.join(__dirname, "blog") }); | 
					
						
							| 
									
										
										
										
											2015-01-14 05:14:11 -05:00
										 |  |  | module.exports.create = create; |