-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.js
54 lines (45 loc) · 1.29 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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
const fs = require('fs');
const path = require('path');
const wpThemeJsonPath = path.resolve('./theme.json');
let exportObj = {};
try{
// Synchronously read the file
const data = fs.readFileSync(wpThemeJsonPath, 'utf8');
// Parse the JSON data
const wpThemeJson = JSON.parse(data);
const customWPColors = wpThemeJson?.settings?.custom?.colors;
const wpColorPalleteThemeJson = wpThemeJson?.settings?.color?.palette;
const wpFontFamilyThemeJson = wpThemeJson?.settings?.typography?.fontFamilies;
const wpFontSizeThemeJson = wpThemeJson?.settings?.typography?.fontSizes;
/**
* Colors
*/
const formattedWpColorPalette = wpColorPalleteThemeJson?.reduce((acc, curr) => {
acc[curr.slug] = curr.color;
return acc;
}, {});
exportObj.wpColors = {
inherit: 'inherit',
current: 'currentColor',
transparent: 'transparent',
...customWPColors,
...formattedWpColorPalette,
};
/**
* Font Family
*/
exportObj.wpFontFamily = wpFontFamilyThemeJson?.reduce((acc, curr) => {
acc[curr.slug] = curr.fontFamily;
return acc;
}, {});
/**
* Font Size
*/
exportObj.wpFontSize = wpFontSizeThemeJson?.reduce((acc, curr) => {
acc[curr.slug] = curr.size;
return acc;
}, {});
} catch (err) {
console.error(`Error reading or parsing ${wpThemeJsonPath}: ${err}`);
}
module.exports = exportObj;