| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- "use strict";
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- };
- var __importDefault = (this && this.__importDefault) || function (mod) {
- return (mod && mod.__esModule) ? mod : { "default": mod };
- };
- Object.defineProperty(exports, "__esModule", { value: true });
- const axios_1 = __importDefault(require("axios"));
- const genbank_parser_1 = __importDefault(require("genbank-parser"));
- const fast_xml_parser_1 = require("fast-xml-parser");
- const jsonata_1 = __importDefault(require("jsonata"));
- const getEsearch = (params) => __awaiter(void 0, void 0, void 0, function* () {
- const endpoint = (params === null || params === void 0 ? void 0 : params.endpoint) ? params.endpoint : 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi';
- const query = (params === null || params === void 0 ? void 0 : params.query) || '';
- const allowedParams = ['id', 'db', 'retmode', 'rettype'];
- // console.log('query :', `${endpoint}?${Object.keys(params).flatMap(k => allowedParams.includes(k) ? k + '=' + params[k] : []).join('&')}`);
- const response = yield axios_1.default.get(`${endpoint}?${Object.keys(params).flatMap(k => allowedParams.includes(k) ? k + '=' + params[k] : []).join('&')}`);
- let results = Array.isArray(response.data) ? response.data.join('') : response.data;
- if (params === null || params === void 0 ? void 0 : params.retmode) {
- switch (params.retmode) {
- case 'xml':
- const parser = new fast_xml_parser_1.XMLParser({ ignoreAttributes: false, alwaysCreateTextNode: false, attributeNamePrefix: "attr-" });
- results = parser.parse(results);
- break;
- case 'gb':
- results = (0, genbank_parser_1.default)(results);
- break;
- default:
- break;
- }
- }
- if (query !== '')
- results = (0, jsonata_1.default)(query).evaluate(results);
- return results;
- });
- module.exports = (params) => __awaiter(void 0, void 0, void 0, function* () { return yield getEsearch(params); });
|