This repository was archived by the owner on Feb 21, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.js
More file actions
47 lines (39 loc) · 1.34 KB
/
index.js
File metadata and controls
47 lines (39 loc) · 1.34 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
var merge = require('merge');
var parseArgs = require('minimist');
var template = require('lodash.template');
var defaults = {
export: 'ENV',
wrap: false,
namespace: '__cliFlags__'
};
var argv = parseArgs(process.argv.slice(2));
// Lodash templates
var tWrapper = '(function(window, undefined){\n<%= content %>\n})(window)';
var createProcessPreprocessor = function(args, logger) {
args = merge(defaults, args);
var log = logger.create('preprocessor.cli-flags');
return function(content, file, done) {
var prepend = '';
// Store exported var
var stored = 'var ' + args.namespace + ' = ' + defaults.export + ';\n';
prepend += stored;
// Inject cli flags
var flags = 'var ' + args.export + ' = ' + JSON.stringify(argv) + ';\n';
prepend += flags;
// Restore exported var
var restored = args.export + ' = ' + defaults.namespace + ';\n';
// Add vars
content = prepend + content + restored;
// Wrap content
if(args.wrap){
content = template(tWrapper)({content: content});
}
// Return wrapped content
done(content);
};
};
createProcessPreprocessor.$inject = ['config.cliFlags', 'logger'];
// PUBLISH DI MODULE
module.exports = {
'preprocessor:cli-flags': ['factory', createProcessPreprocessor]
};