-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathserve.js
41 lines (37 loc) · 1.17 KB
/
serve.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
var resolve = require("resolve")
var path = require("path")
var url = require("url")
var CompiledFiles = require("compiled-files")
var less = require("./less")
// /css/:appName
module.exports = CompiledFiles({
compile: function (location, opts, callback) {
resolve(location, {
extensions: [".less"]
}, function (err, fileUri) {
if (err) {
return callback(err)
}
less(fileUri, function (err, payload) {
if (err) {
return callback(err)
}
try {
callback(null, payload.toCSS())
} catch (error) {
callback(error)
}
})
})
},
sendError: function sendError(req, res, err) {
return res.end("body:before{ color: red; content: " +
JSON.stringify(JSON.stringify(err)) + "; }")
},
contentType: "text/css",
findResource: function findResource(req, res, opts) {
var pathname = url.parse(req.url).pathname
var parts = pathname.split("/")
return path.join(opts.root, parts[parts.length - 1])
}
})