UNPKG

@akumzy/ogp-parser

Version:

This Package is Open Graph Parser.

56 lines (55 loc) 1.56 kB
"use strict"; 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;