1 | 'use strict';
|
2 |
|
3 | module.exports = generateManifestFromConfiguration;
|
4 |
|
5 | var hasTarget = require('./has-target');
|
6 | var objectAssign = require('object-assign');
|
7 |
|
8 | function generateManifestFromConfiguration(configuration) {
|
9 | var manifest = {};
|
10 |
|
11 | for(var attribute in configuration) {
|
12 | if (attribute !== 'apple' && attribute !== 'ms') {
|
13 | if (attribute === 'icons') {
|
14 | manifest[attribute] = copyIcons(configuration[attribute]);
|
15 | } else {
|
16 | manifest[attribute] = configuration[attribute];
|
17 | }
|
18 | }
|
19 | }
|
20 |
|
21 | return manifest;
|
22 | }
|
23 |
|
24 | function copyIcons(iconsDefinition) {
|
25 | var icons, copy;
|
26 |
|
27 | icons = [];
|
28 |
|
29 | for(var icon of iconsDefinition) {
|
30 | if (!icon.targets || hasTarget(icon, 'manifest')) {
|
31 | copy = objectAssign({}, icon);
|
32 | delete copy.targets;
|
33 |
|
34 | icons.push(copy);
|
35 | }
|
36 | }
|
37 |
|
38 | return icons;
|
39 | }
|