/
cassette.js
105 lines (56 loc) · 1.54 KB
/
cassette.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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
var base = require('base-framework'),
_ = require('underscore'),
Manifest = require('./manifest.js');
// some defaults for an Express environment.
var assetsPath = './public/javascripts/';
var nodeModulesPath = './node_modules';
var outputPath = '/javascripts';
var nodeModules = '/node_modules';
var buildPath = './public/javascripts/cassette';
var cassette = base.createChild().addInstanceMethods({
init : function( config ){
if(config){
if(config.assetsPath){
assetsPath = config.assetsPath;
}
if(config.outputPath){
outputPath = config.outputPath;
}
if(config.buildPath){
buildPath = config.buildPath;
}
if(config.mode){
this.mode = config.mode === 'development' ? 'debug' : config.mode;
}
if(config.nodeModules){
nodeModules = config.nodeModules;
}
if(config.scanNodeModules){
this.scanNodeModules = config.scanNodeModules;
} else {
this.scanNodeModules = false;
}
} else {
this.mode = 'debug';
this.scanNodeModules = false;
}
this.manifest = Manifest(assetsPath, outputPath, nodeModules, this.scanNodeModules);
this.assemblies = {};
return this;
},
middleware : function(){
var self = this;
return {
useAsset : function( asset ){
var str;
if(self.mode==='debug'){
str = self.manifest.getAssembly( asset, 'forceCheck' ).getDebugTags( outputPath );
} else {
str = self.manifest.getAssembly( asset ).getTag( outputPath );
}
return str;
}
};
}
});
exports = module.exports = cassette;