UNPKG

wiki-entity

Version:
77 lines (76 loc) 2.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.simplifySitelinks = exports.simplifyLabels = exports.simplifyDescriptions = exports.simplifyAliases = exports.simplifyEntity = void 0; const simplify_claims_1 = require("./simplify_claims"); function simplifyEntity(lang, data, options = {}) { const entity = { id: data.id }; if (data.pageid) entity.pageid = data.pageid; if (data.redirectsToId) entity.redirectsToId = data.redirectsToId; if (data.redirectsFromId) entity.redirectsFromId = data.redirectsFromId; if (options.labels !== false && data.labels) { entity.labels = simplifyLabels(data.labels); entity.label = entity.labels[lang]; } if (options.descriptions !== false && data.descriptions) { entity.description = simplifyDescriptions(data.descriptions)[lang]; if (!entity.description) delete entity.description; } if (options.aliases !== false && data.aliases) { entity.aliases = simplifyAliases(data.aliases)[lang]; if (!entity.aliases) delete entity.aliases; } if (options.sitelinks !== false && data.sitelinks) entity.sitelinks = simplifySitelinks(data.sitelinks); if (options.claims !== false && data.claims) entity.claims = (0, simplify_claims_1.simplifyClaims)(data.claims); return entity; } exports.simplifyEntity = simplifyEntity; function simplifyAliases(data) { return getManyLangValue(data); } exports.simplifyAliases = simplifyAliases; function simplifyDescriptions(data) { return getLangValue(data); } exports.simplifyDescriptions = simplifyDescriptions; function simplifyLabels(data) { return getLangValue(data); } exports.simplifyLabels = simplifyLabels; function simplifySitelinks(data) { if (data) { const result = {}; Object.keys(data).forEach((site) => { result[site.replace(/wiki$/, "")] = data[site].title; }); return result; } return null; } exports.simplifySitelinks = simplifySitelinks; function getLangValue(data) { if (data) { const result = {}; Object.keys(data).forEach((lang) => { result[lang] = data[lang].value; }); return result; } return null; } function getManyLangValue(data) { if (data) { const result = {}; Object.keys(data).forEach((lang) => { result[lang] = data[lang].map((item) => item.value); }); return result; } return null; }