pubchem
Version:
pubchem simplifies the data retrieval from the PubChem API.
44 lines • 1.89 kB
JavaScript
;
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