/
dev.js
77 lines (65 loc) · 2.39 KB
/
dev.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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
// Serve Assets in Development
// ---------------------------
// Serves all code and other assets when you DON'T call ss.client.packAssets()
'use strict';
var url = require('url'),
qs = require('querystring'),
system = require('../system'),
utils = require('./utils');
// Expose asset server as the public API
//
module.exports = function (ss, router, options) {
// JAVASCRIPT
// Serve system libraries and modules
router.on('/_serveDev/system?*', function(request, response) {
var thisUrl = url.parse(request.url),
params = qs.parse(thisUrl.query),
moduleName = utils.parseUrl(request.url);
// no module name (probably ts=..)
if (moduleName.indexOf('=') >= 0) {
var loader = ss.bundler.get(params).asset.loader() || {},
namesComment = '/* ' + loader.names.join(',') + ' */';
utils.serve.js(namesComment+'\n'+loader.content || '', response);
}
// module
else {
var module = ss.bundler.get(params).asset.systemModule(moduleName) || {};
utils.serve.js(module.content || '', response);
}
});
//TODO bundler calculates entries. view builds according to entries. formatter is predetermined
// Listen for requests for application client code
router.on('/_serveDev/code?*', function(request, response) {
var thisUrl = url.parse(request.url),
params = qs.parse(thisUrl.query),
path = utils.parseUrl(request.url);
return ss.bundler.get(params).asset.js(path, {
//TODO formatter: params.formatter,
client: params.client,
clientId: params.ts,
pathPrefix: params.pathPrefix
}, function(output) {
return utils.serve.js(output, response);
});
});
router.on('/_serveDev/start?*', function(request, response) {
var thisUrl = url.parse(request.url),
params = qs.parse(thisUrl.query);
var start = ss.bundler.get(params).asset.start() || {};
return utils.serve.js(start.content || '', response);
});
// CSS
// Listen for requests for CSS files
return router.on('/_serveDev/css?*', function(request, response) {
var params, path, thisUrl;
thisUrl = url.parse(request.url);
params = qs.parse(thisUrl.query);
path = utils.parseUrl(request.url);
return ss.bundler.get(params).asset.css(path, {
client: params.client,
clientId: params.ts
}, function(output) {
return utils.serve.css(output, response);
});
});
};