-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathfunction-fontawesome.js
More file actions
51 lines (44 loc) · 1.47 KB
/
function-fontawesome.js
File metadata and controls
51 lines (44 loc) · 1.47 KB
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
var path = require('path');
var fs = require('fs');
var yaml = require('./module-js-yaml.min.js');
var fa_categories = yaml.load(fs.readFileSync( path.join(__dirname,"./srcs/block-paragraph/fontawesome/metadata/categories.yml") , 'utf8'));
var fa_icons = yaml.load(fs.readFileSync( path.join(__dirname,"./srcs/block-paragraph/fontawesome/metadata/icons.yml") , 'utf8'));
var fa_categories_modify = {};
Object.keys(fa_categories).forEach(key=>{
fa_categories_modify[ fa_categories[key].label ] = fa_categories[key].icons;
})
var query_icons = (keyword, categories = [] ) => {
if (categories.length) {
var icons = [];
categories.forEach(category_name=>{
if (fa_categories_modify[category_name]) {
icons = [...icons, ...fa_categories_modify[category_name]]
}
})
} else {
var icons = Object.keys(fa_icons);
}
var queried_icons = {};
keyword = keyword.toLowerCase();
icons.forEach(icon_name=>{
if (icon_name.includes(keyword)) {
queried_icons[icon_name] = fa_icons[icon_name].styles;
}
})
return queried_icons;
}
// console.log(query_icons('bell',['Education','Alert']))
register_rest_route('nirvana','get-fontawesome-infos',{
methods: 'post',
callback(data,req) {
var all_icons = {};
Object.keys(fa_icons).forEach(icon_name=>{
all_icons[icon_name] = fa_icons[icon_name].styles;
})
return {
icons: all_icons,
categories: fa_categories_modify,
};
},
permission_callback: power=>power >= 6,
});