n8n-nodes-crawl4ai
Version:
n8n nodes for Crawl4AI web crawler and data extraction
80 lines • 2.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatCrawlResult = formatCrawlResult;
exports.parseExtractedJson = parseExtractedJson;
exports.formatExtractionResult = formatExtractionResult;
function formatCrawlResult(result, includeMedia = false, verboseResponse = false) {
const formattedResult = {
url: result.url,
success: result.success,
title: result.title || '',
content: result.markdown || '',
text: result.text || '',
};
if (!result.success && result.error_message) {
formattedResult.error = result.error_message;
}
if (result.extracted_content) {
try {
formattedResult.extractedContent = JSON.parse(result.extracted_content);
}
catch (e) {
formattedResult.extractedContent = result.extracted_content;
}
}
if (result.links) {
formattedResult.links = {
internal: result.links.internal,
external: result.links.external,
};
}
if (includeMedia && result.media) {
formattedResult.media = {
images: result.media.images,
videos: result.media.videos,
};
}
if (verboseResponse) {
formattedResult.html = result.html || '';
formattedResult.cleanedHtml = result.cleaned_html || '';
formattedResult.statusCode = result.statusCode;
formattedResult.crawlTime = result.crawl_time;
formattedResult.metadata = result.metadata || {};
}
return formattedResult;
}
function parseExtractedJson(result) {
if (!result.extracted_content) {
return null;
}
try {
return JSON.parse(result.extracted_content);
}
catch (error) {
return null;
}
}
function formatExtractionResult(result, extractedData, includeFullText = false) {
const formattedResult = {
url: result.url,
success: result.success,
};
if (!result.success && result.error_message) {
formattedResult.error = result.error_message;
return formattedResult;
}
if (extractedData) {
Object.entries(extractedData).forEach(([key, value]) => {
formattedResult[key] = value;
});
}
else {
formattedResult.extractionFailed = true;
}
if (includeFullText) {
formattedResult.originalText = result.text || '';
formattedResult.title = result.title || '';
}
return formattedResult;
}
//# sourceMappingURL=formatters.js.map