-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathBrocfile.js
More file actions
112 lines (87 loc) · 2.84 KB
/
Brocfile.js
File metadata and controls
112 lines (87 loc) · 2.84 KB
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
106
107
108
109
110
111
112
var pickFiles = require('broccoli-static-compiler');
var concatFiles = require('broccoli-concat');
var mergeTrees = require('broccoli-merge-trees');
var moveFile = require('broccoli-file-mover');
var replace = require('broccoli-replace');
var transpileES6 = require('broccoli-es6-module-transpiler');
var jsHint = require('broccoli-jshint');
var esNext = require('broccoli-esnext');
var wrapFiles = require('broccoli-wrap');
var packages = require('./packages');
function getPackageTrees(packageName) {
// Lib
var libRoot = 'packages/' + packageName + '/lib';
var transpiledLibCJS = moveFile(pickFiles(esNext(transpileES6(libRoot, { moduleName: true, type: 'cjs' })), {
srcDir: '/',
destDir: '/cjs/handlebars-serializer'
}), {
srcFile: '/cjs/' + packageName + '/main.js',
destFile: '/cjs/' + packageName + '.js'
});
var lib = moveFile(pickFiles(libRoot, {
srcDir: '/',
destDir: '/' + packageName
}), {
srcFile: packageName + '/main.js',
destFile: '/' + packageName + '.js'
});
var transpiledLibAMD = esNext(transpileES6(lib, { moduleName: true }));
var concatenatedLib = concatFiles(transpiledLibAMD, {
inputFiles: ['**/*.js'],
outputFile: '/amd/' + packageName + '.js'
});
// Tests
var testSupports = pickFiles('test/support', {
srcDir: '/',
destDir: '/test/support'
});
var tests = pickFiles('packages/' + packageName + '/tests', {
srcDir: '/',
destDir: '/' + packageName + '-tests'
});
var jsHintLib = jsHint(lib, { destFile: '/' + packageName + '-jshint/lib.js' });
var jsHintTests = jsHint(tests, { destFile: '/' + packageName + '-jshint/tests.js' });
var allTests = mergeTrees([testSupports, tests, jsHintLib, jsHintTests]);
var transpiledTests = esNext(transpileES6(allTests, { moduleName: true }));
var concatenatedTests = concatFiles(transpiledTests, {
inputFiles: ['**/*.js'],
outputFile: '/test/' + packageName + '-tests.amd.js'
});
return [concatenatedLib, concatenatedTests, transpiledLibCJS];
}
// Vendored assets
var bower = 'bower_components';
var handlebars = pickFiles(bower, {
srcDir: '/handlebars',
files: [ 'handlebars.amd.js' ],
destDir: '/vendor'
});
// Test Assets
var test = pickFiles('test', {
srcDir: '/',
files: [ 'index.html', 'packages-config.js' ],
destDir: '/test'
});
test = replace(test, {
files: [ 'test/packages-config.js' ],
patterns: [{
match: /\{\{PACKAGES_CONFIG\}\}/g,
replacement: JSON.stringify(packages, null, 2)
},
]
});
var loader = pickFiles(bower, {
srcDir: '/loader',
files: [ 'loader.js' ],
destDir: '/test'
});
var qunit = pickFiles(bower, {
srcDir: '/qunit/qunit',
destDir: '/test'
});
// Export trees
var trees = [handlebars, test, loader, qunit];
for (var packageName in packages.dependencies) {
trees = trees.concat(getPackageTrees(packageName));
}
module.exports = mergeTrees(trees);