/
index.js
37 lines (30 loc) · 1.12 KB
/
index.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
// Generated by CoffeeScript 1.7.1
var compile, compileAll, falafel, isMagicIdentifier, isMagicMember, isMagicProperty;
falafel = require('falafel');
compile = require('./compile');
compileAll = function(source) {
return falafel(source, function(node) {
if (node.type === 'Literal') {
return node.update(compile(node.source()));
}
});
};
isMagicProperty = function(node, magicWord) {
return node.type === 'Property' && node.key.name === magicWord;
};
isMagicMember = function(node, magicWord) {
return node.type === 'AssignmentExpression' && node.left.type === 'MemberExpression' && node.left.property.name === magicWord;
};
isMagicIdentifier = function(node, magicWord) {
return node.type === 'AssignmentExpression' && node.left.type === 'Identifier' && node.left.name === magicWord;
};
module.exports = function(src, magicWord) {
if (magicWord == null) {
magicWord = 'pistachio';
}
return falafel(src, function(node) {
if (isMagicProperty(node, magicWord) || isMagicMember(node, magicWord) || isMagicIdentifier(node, magicWord)) {
return node.update(compileAll(node.source()));
}
});
};