UNPKG

pubchem

Version:

pubchem simplifies the data retrieval from the PubChem API.

44 lines 1.89 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.extractExperimentalData = extractExperimentalData; exports.getExperimentalDataSection = getExperimentalDataSection; const jsonpath_1 = __importDefault(require("jsonpath")); const getReferences_1 = require("../getReferences"); function extractExperimentalData(data, sectionName, options = {}) { const { parser } = options; const references = (0, getReferences_1.getReferences)(data); const experimentalSection = getExperimentalDataSection(data); const results = []; if (!experimentalSection || experimentalSection.length === 0) { return results; } jsonpath_1.default.query(experimentalSection[0], `$.Section[?(@.TOCHeading==="${sectionName}")].Information[*]`).forEach((entry) => { jsonpath_1.default.query(entry, '$.Value.StringWithMarkup[*].String').forEach((original) => { const result = { reference: references[entry.ReferenceNumber], data: { original }, }; if (parser) { try { result.data.parsed = parser(original, options); } catch (error) { result.data.parsed = { error: error.toString(), }; } } results.push(result); }); }); return results; } function getExperimentalDataSection(data) { const experimentalData = jsonpath_1.default.query(data, '$.Section[?(@.TOCHeading==="Chemical and Physical Properties")]' + '.Section[?(@.TOCHeading==="Experimental Properties")]'); return experimentalData; } //# sourceMappingURL=extractExperimentalData.js.map