-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
/
Copy pathfind-common-css-vars.js
85 lines (75 loc) · 2.44 KB
/
find-common-css-vars.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
/* eslint-disable prefer-template */
const fs = require('fs');
let output = '';
fs.readdirSync('./src/core/components').forEach((component) => {
if (component.indexOf('.') === 0) return;
if (!fs.existsSync(`./src/core/components/${component}/${component}-vars.less`)) return;
const content = fs.readFileSync(
`./src/core/components/${component}/${component}-vars.less`,
'utf8',
);
const iosVars = {};
const iosDarkVars = {};
const mdVars = {};
const mdDarkVars = {};
let iosBegan;
let mdBegan;
let iosDarkBegan;
let mdDarkBegan;
content
.split('\n')
.map((l) => l.trim())
.forEach((line) => {
if (line.indexOf('.ios') >= 0) iosBegan = true;
if (line.indexOf('.md') >= 0) mdBegan = true;
if (line.indexOf('.dark-vars') >= 0) {
if (mdBegan) mdDarkBegan = true;
else if (iosBegan) iosDarkBegan = true;
}
let varName = line.match(/--f7-[^:]*/);
if (!varName) return;
varName = varName[0];
let varValue = line.split(`${varName}:`)[1];
if (!varValue) return;
varValue = varValue.replace(';', '').trim();
if (mdBegan) {
if (mdDarkBegan) mdDarkVars[varName] = varValue;
else mdVars[varName] = varValue;
} else if (iosBegan) {
if (iosDarkBegan) iosDarkVars[varName] = varValue;
else iosVars[varName] = varValue;
}
});
const commonVars = {};
Object.keys(iosVars).forEach((varName) => {
const varValue = iosVars[varName];
if (mdVars[varName] === iosVars[varName]) {
commonVars[varName] = varValue;
delete iosVars[varName];
delete mdVars[varName];
}
});
const commonDarkVars = {};
Object.keys(iosDarkVars).forEach((varName) => {
const varValue = iosDarkVars[varName];
if (mdDarkVars[varName] === iosDarkVars[varName]) {
commonDarkVars[varName] = varValue;
delete iosDarkVars[varName];
delete mdDarkVars[varName];
}
});
if (Object.keys(commonVars).length || Object.keys(commonDarkVars).length) {
// prettier-ignore
output += '\n===\n' + `
${Object.keys(commonVars).length ? `
${component} common vars:
${Object.keys(commonVars).map(v => `${v}: ${commonVars[v]};`).join('\n')}
`.trim() : ''}
${Object.keys(commonDarkVars).length ? `
${component} common dark vars:
${Object.keys(commonDarkVars).map(v => `${v}: ${commonDarkVars[v]};`).join('\n')}
`.trim() : ''}
`.trim();
}
});
fs.writeFileSync('./build/common-css-vars-data.md', output);