MCPcopy Index your code
hub / github.com/danmactough/node-feedparser / resolveLevel

Function resolveLevel

lib/utils.js:165–207  ·  view source on GitHub ↗
(level)

Source from the content-addressed store, hash-verified

163 }
164
165 function resolveLevel (level) {
166 var els = Object.keys(level);
167 els.forEach(function (el) {
168 if (Array.isArray(level[el])) {
169 // The shape of the array of element items is different than if the element is not an array.
170 // We need it to be the same shape to enable using the same function for recursion.
171 var levelFromArray = {};
172 level[el].forEach(function (attrs) {
173 levelFromArray[el] = attrs;
174 resolveLevel(levelFromArray);
175 });
176 } else {
177 if (level[el].constructor.name === 'Object') {
178 if (el == 'logo' || el == 'icon' || el == 'link') {
179 if ('#' in level[el]) {
180 level[el]['#'] = resolve(baseurl, level[el]['#']);
181 }
182 } else if (el == 'image') {
183 if ('url' in level[el] && level[el]['url'].constructor.name === 'Object' && '#' in level[el]['url']) {
184 level[el]['url']['#'] = resolve(baseurl, level[el]['url']['#']);
185 }
186 if ('link' in level[el] && level[el]['link'].constructor.name === 'Object' && '#' in level[el]['link']) {
187 level[el]['link']['#'] = resolve(baseurl, level[el]['link']['#']);
188 }
189 }
190 if ('@' in level[el]) {
191 var attrs = Object.keys(level[el]['@']);
192 attrs.forEach(function (name) {
193 if (HTML_URI_ATTRS.has(name)) {
194 if ('string' === typeof level[el]['@'][name]) {
195 level[el]['@'][name] = resolveHtmlAttributeValue(baseurl, name, level[el]['@'][name]);
196 }
197 }
198 });
199 }
200 if (mayHaveEmbeddedHtml(el, level[el])) {
201 level[el]['#'] = resolveHtmlUris(level[el]['#'], baseurl);
202 }
203 }
204 }
205 });
206 return level;
207 }
208
209 return resolveLevel(node);
210}

Callers 1

reresolveFunction · 0.85

Calls 4

resolveFunction · 0.85
mayHaveEmbeddedHtmlFunction · 0.85
resolveHtmlUrisFunction · 0.85

Tested by

no test coverage detected