feat: include attributes, innerHTML & outerHTML in elementInfo

This commit is contained in:
karishmas6
2024-10-04 21:50:37 +05:30
parent 8b6c807642
commit 87d52e4fd3

View File

@@ -81,10 +81,24 @@ export const getElementInformation = async (
innerText?: string; innerText?: string;
url?: string; url?: string;
imageUrl?: string; imageUrl?: string;
attributes?: Record<string, string>;
innerHTML?: string;
outerHTML?: string;
} = { } = {
tagName: element?.tagName ?? '', tagName: element?.tagName ?? '',
}; };
if (element) {
info.attributes = Array.from(element.attributes).reduce(
(acc, attr) => {
acc[attr.name] = attr.value;
return acc;
},
{} as Record<string, string>
);
}
// Gather specific information based on the tag
if (element?.tagName === 'A') { if (element?.tagName === 'A') {
info.url = (element as HTMLAnchorElement).href; info.url = (element as HTMLAnchorElement).href;
info.innerText = element.innerText ?? ''; info.innerText = element.innerText ?? '';
@@ -95,6 +109,9 @@ export const getElementInformation = async (
element?.innerText?.length > 0; element?.innerText?.length > 0;
info.innerText = element?.innerText ?? ''; info.innerText = element?.innerText ?? '';
} }
info.innerHTML = element.innerHTML;
info.outerHTML = element.outerHTML;
return info; return info;
} }