-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathupdate-defaults.js
40 lines (28 loc) · 955 Bytes
/
update-defaults.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
var fs = require('fs');
var cldr = require('cldr-core/supplemental/likelySubtags.json');
var likelySubtags = cldr.supplemental.likelySubtags;
var defaultsCode = 'var defaults = {\n';
Object.keys(likelySubtags).forEach(key => {
if (key.indexOf('und-') === 0 || (/-[A-Z]{2}$/g).test(key)) {
return;
}
var locale = likelySubtags[key];
var split = locale.toUpperCase().split(/-|_/);
if (split.length < 2) {
return;
}
var code = split.pop();
if (!code || code === 'ZZ' || !/^[A-Z]{2}$/.test(code)) {
return;
}
if (key.indexOf('-') !== -1) {
key = `'${key}'`;
}
defaultsCode += ` ${key}: '${code}',\n`;
});
defaultsCode += '};\n';
let path = `${__dirname}/index.js`;
let content = fs.readFileSync(path, 'utf-8')
.replace(/\/\/ --- DEFAULTS START ---\n((.|\n)+)\/\/ --- DEFAULTS END ---/gm,
`// --- DEFAULTS START ---\n${defaultsCode}// --- DEFAULTS END ---`);
fs.writeFileSync(path, content, 'utf-8');