@akumzy/ogp-parser
Version:
This Package is Open Graph Parser.
56 lines (55 loc) • 1.56 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const cheerio_1 = __importDefault(require("cheerio"));
function extractData($meta, propKey, contentKey) {
let prop = $meta.attr(propKey);
let content = $meta.attr(contentKey);
if (!prop || !content) {
return null;
}
else {
return {
prop: prop,
content: content
};
}
}
function parseHtml(html) {
const $ = cheerio_1.default.load(html);
const $metas = $('head meta');
const title = $('head title').text();
let ogpSet = {};
let seoSet = {};
$metas.each((index, value) => {
const ogp = extractData($(value), 'property', 'content');
const seo = extractData($(value), 'name', 'content');
let target = {};
let prop, content;
if (ogp !== null) {
target = ogpSet;
prop = ogp.prop;
content = ogp.content;
}
else if (seo !== null) {
target = seoSet;
prop = seo.prop;
content = seo.content;
}
else {
return;
}
if (!target[prop]) {
target[prop] = [];
}
target[prop].push(content);
});
return {
title: title,
ogp: ogpSet,
seo: seoSet
};
}
exports.default = parseHtml;