UNPKG

semantic-analysis

Version:

Extensible semantic Structured Data analysis library for Microdata and JSON-LD

57 lines 2.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.prepareExport = void 0; var tslib_1 = require("tslib"); var fs_1 = tslib_1.__importDefault(require("fs")); var path_1 = tslib_1.__importDefault(require("path")); var item_1 = require("../structured-data/item"); exports.prepareExport = function (result) { var _a; return ({ results: item_1.toSerializable(result), url: (_a = result.document) === null || _a === void 0 ? void 0 : _a.url, }); }; var Exporter = /** @class */ (function () { /* Initialization */ function Exporter(extractionDirectory) { this.extractionDirectory = path_1.default.resolve(extractionDirectory); if (!fs_1.default.existsSync(this.extractionDirectory)) { console.debug("Creating directory " + this.extractionDirectory); fs_1.default.mkdirSync(this.extractionDirectory); } } /* API */ Exporter.prototype.export = function (results) { return tslib_1.__awaiter(this, void 0, void 0, function () { var timestamp, safeUrl, url, urlFormat, base, source, json, html, jsonWriting, htmlWriting, exported; return tslib_1.__generator(this, function (_a) { timestamp = Date.now(); try { url = new URL(results.document.url); urlFormat = url.host + "/" + url.pathname + url.search; safeUrl = urlFormat.replace(/[^a-z0-9]/gi, '_').toLowerCase(); } catch (_b) { safeUrl = ''; } base = timestamp + "_" + safeUrl; source = results.document.source; json = base + ".json"; html = base + ".html"; jsonWriting = fs_1.default.promises.writeFile(path_1.default.join(this.extractionDirectory, json), JSON.stringify(exports.prepareExport(results)), 'utf8'); htmlWriting = source ? fs_1.default.promises.writeFile(path_1.default.join(this.extractionDirectory, html), source, 'utf8') : Promise.resolve(); exported = tslib_1.__assign(tslib_1.__assign({}, exports.prepareExport(results)), { paths: { json: json, html: html } }); return [2 /*return*/, Promise.all([jsonWriting, htmlWriting]) .then(function () { return exported; }) .catch(function (reason) { throw tslib_1.__assign({ error: reason }, exported); })]; }); }); }; return Exporter; }()); exports.default = Exporter; //# sourceMappingURL=Exporter.js.map