-
Notifications
You must be signed in to change notification settings - Fork 4
/
correct-default.js
35 lines (29 loc) · 970 Bytes
/
correct-default.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
const fs = require('fs');
const filePath = process.argv.slice(2)[0];
const template = require(filePath);
Object.keys(template.plugins).forEach(pluginKey => {
const plugin = template.plugins[pluginKey];
const entries = plugin.template.properties;
Object.keys(entries).forEach(entryKey => {
const entry = entries[entryKey];
let properties;
if (entry.dataSchema.items) {
properties = entry.dataSchema.items.properties;
} else {
properties = entry.dataSchema.properties;
entry.value = entry.value || { };
}
if (properties) {
Object.keys(properties).forEach(fieldKey => {
if (properties[fieldKey].default) {
// remove default values for arrays
if (entry.value) {
entry.value[fieldKey] = properties[fieldKey].default;
}
delete properties[fieldKey].default;
}
});
}
});
});
fs.writeFileSync(filePath, JSON.stringify(template, null, 2));