/
util.js
139 lines (137 loc) · 4.3 KB
/
util.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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
var ConfigReplace = require('broccoli-config-replace');
function injectVars(str, config) {
return str.replace(/\{\{(.*?)\}\}/g, function(i, match) {
return config[match];
});
}
module.exports = {
injectConfig(tree, config, configPath, files) {
// TODO: metaprogram all settings
return new ConfigReplace(tree, config, {
configPath,
files,
patterns: [
{
match: /\{\{CONFIG\}\}/g,
replacement: config => JSON.stringify(config)
},
{
match: /\_\_CONFIG\_\_/g,
replacement: config => JSON.stringify(config)
},
{
match: /\{\{id\}\}/g,
replacement: config => config.settings.id
},
{
match: /\{\{name\}\}/g,
replacement: config => config.settings.name
},
{
match: /\{\{codeVersion\}\}/g,
replacement: config => config.EXTENSION_VERSION
},
{
match: /\{\{rdfUpdateURL\}\}/g,
replacement: config => {
if (config.settings.updateURL) {
var url = config.settings.updateURL;
url = injectVars(url, config);
return [
"<em:updateURL>",
url,
"</em:updateURL>",
].join("");
} else {
return "";
}
}
},
{
match: /\{\{rdfUpdateURLbeta\}\}/g,
replacement: config => {
if (config.settings.updateURLbeta) {
var url = config.settings.updateURLbeta;
url = injectVars(url, config);
return [
"<em:updateURL>",
url,
"</em:updateURL>",
].join("");
} else {
return "";
}
}
},
{
match: /\{\{rdfHomepageURL\}\}/g,
replacement: config => config.settings.homepageURL || ''
},
{
match: /\{\{ENDPOINT_BLIND_SIGNER\}\}/g,
replacement: config => config.settings.ENDPOINT_BLIND_SIGNER || ''
},
{
match: /\{\{ENDPOINT_USER_REG\}\}/g,
replacement: config => config.settings.ENDPOINT_USER_REG || ''
},
{
match: /\{\{ENDPOINT_SOURCE_MAP_PROVIDER\}\}/g,
replacement: config => config.settings.ENDPOINT_SOURCE_MAP_PROVIDER || ''
},
{
match: /\{\{ENDPOINT_LOOKUP_TABLE_PROVIDER\}\}/g,
replacement: config => config.settings.ENDPOINT_LOOKUP_TABLE_PROVIDER || ''
},
{
match: /\{\{ENDPOINT_KEYS_PROVIDER\}\}/g,
replacement: config => config.settings.ENDPOINT_KEYS_PROVIDER || ''
},
{
match: /\{\{ENDPOINT_PROXY_LIST_PROVIDER\}\}/g,
replacement: config => config.settings.ENDPOINT_PROXY_LIST_PROVIDER || ''
},
{
match: /\{\{ENDPOINT_PATTERNSURL\}\}/g,
replacement: config => config.settings.ENDPOINT_PATTERNSURL || ''
},
{
match: /\{\{ENDPOINT_ANONPATTERNSURL\}\}/g,
replacement: config => config.settings.ENDPOINT_ANONPATTERNSURL || ''
},
{
match: /\{\{ENDPOINT_CONFIGURL\}\}/g,
replacement: config => config.settings.ENDPOINT_CONFIGURL || ''
},
{
match: /\{\{ENDPOINT_SAFE_QUORUM_ENDPOINT\}\}/g,
replacement: config => config.settings.ENDPOINT_SAFE_QUORUM_ENDPOINT || ''
},
{
match: /\{\{ENDPOINT_SAFE_QUORUM_PROVIDER\}\}/g,
replacement: config => config.settings.ENDPOINT_SAFE_QUORUM_PROVIDER || ''
},
{
match: /\{\{MSGCHANNEL\}\}/g,
replacement: config => config.settings.MSGCHANNEL || ''
},
{
match: /\{\{KEY_DS_PUBKEY\}\}/g,
replacement: config => config.settings.KEY_DS_PUBKEY || ''
},
{
match: /\{\{KEY_SECURE_LOGGER_PUBKEY\}\}/g,
replacement: config => config.settings.KEY_SECURE_LOGGER_PUBKEY || ''
},
{
match: /\{\{HW_CHANNEL\}\}/g,
replacement: config => config.settings.HW_CHANNEL || ''
},
{
match: /\{\{CONFIG_PROVIDER\}\}/g,
replacement: config => config.settings.CONFIG_PROVIDER || ''
}
]
});
}
};