UNPKG

2.69 kBJavaScriptView Raw
1// Generated by CoffeeScript 1.7.1
2(function() {
3 var collectCoffeeFiles, defaultLintOptions, findScript, glob, log, ninjaFactories, setLintOptions, _;
4
5 ninjaFactories = require('./ninjaFactories');
6
7 findScript = require('./ninjaCommands').findScript;
8
9 _ = require('lodash');
10
11 log = require('yadsil')('index');
12
13 glob = require('glob');
14
15 collectCoffeeFiles = function(_arg) {
16 var extensionMark, extensions, paths;
17 extensions = _arg.extensions, paths = _arg.paths;
18 log.info('looking for coffee script files..');
19 extensionMark = '$ext';
20 return _.chain(paths).map(function(path) {
21 return extensions.map(function(ext) {
22 return path.replace(extensionMark, ext);
23 });
24 }).flatten().map(function(path) {
25 return glob.sync(path);
26 }).flatten().value();
27 };
28
29 defaultLintOptions = {
30 extensions: ['coffee', '_coffee'],
31 paths: ['src/**/*.$ext', 'assets/js/**/*.$ext', 'bin/**/*.$ext', 'Gruntfile.$ext']
32 };
33
34 setLintOptions = null;
35
36 exports.configureCoffeelint = function(options) {
37 return setLintOptions = options;
38 };
39
40 exports.getCoffeelintPaths = function() {
41 return collectCoffeeFiles(setLintOptions != null ? setLintOptions : defaultLintOptions);
42 };
43
44 exports.defineFactory = ninjaFactories.defineFactory;
45
46 exports.defineBrowserifyFactory = function(name, sourceFile, targetFile, options) {
47 return exports.defineFactory("browserify-" + name, {
48 makeRules: function(ninja, config) {
49 return ['debug', 'release'].forEach(function(releaseType) {
50 var cli, rule;
51 cli = "$node " + (findScript('browserify-bundle.js'));
52 if (options.extensions) {
53 cli += " --extensions '" + (options.extensions.join(",")) + "'";
54 }
55 if (options.transforms) {
56 cli += " --transforms '" + (options.transforms.join(",")) + "'";
57 }
58 cli += " --out $out --i18n $out.i18n";
59 if (releaseType === 'debug') {
60 cli += " --deps $out.d --debug";
61 }
62 cli += " ./$in";
63 rule = ninja.rule("browserify-" + name + "-" + releaseType);
64 rule.run(cli);
65 if (releaseType === 'debug') {
66 rule.depfile('$out.d');
67 }
68 return rule.description("(" + releaseType + ") BROWSERIFY $in");
69 });
70 },
71 assetFiles: sourceFile,
72 makeAssetEdge: function(ninja, source, target, releaseType) {
73 target = "build/assets/" + releaseType + "/js/" + targetFile;
74 ninja.edge(target).from(source).using("browserify-" + name + "-" + releaseType);
75 return [target];
76 }
77 });
78 };
79
80}).call(this);
81
82//# sourceMappingURL=index.map