UNPKG

@bible-api/bible-api

Version:
79 lines 2.55 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.requestPassage = exports.requestVerse = void 0; const https_1 = __importDefault(require("https")); const remoteUrl = 'https://api.bible-api.io/'; let agent; function request(options) { if (!agent) { agent = new https_1.default.Agent({ keepAlive: true, maxSockets: 1 }); } return new Promise((resolve, reject) => { let responseBody = ''; const request = https_1.default.request(remoteUrl, { agent, method: 'POST', headers: { 'Content-Type': 'application/json', accept: 'application/json' } }, response => { response.on('error', reject); response.on('data', chunk => { responseBody += chunk; }); response.on('end', () => { try { resolve(JSON.parse(responseBody)); } catch (error) { reject(error); } }); }); request.write(JSON.stringify(options.body)); request.end(); }); } function requestVerse(options) { const { version, bookId, chapterNumber, verseNumber } = options; return request({ headers: { 'Content-Type': 'application/json', accept: 'application/json' }, body: { version, getVerseOptions: { bookId, chapterNumber, verseNumber } } }); } exports.requestVerse = requestVerse; function requestPassage(options) { const { version, bookId, start, end } = options; let endVerseNumber = end.verseNumber; if (endVerseNumber === Infinity) { // JSON does not support Infinity, so we use a large number instead, which // will be capped to the maximum verse number in the chapter server-side. endVerseNumber = 1000; } return request({ headers: { 'Content-Type': 'application/json', accept: 'application/json' }, body: { version, getPassageOptions: { bookId, start, end: { chapterNumber: end.chapterNumber, verseNumber: endVerseNumber } } } }); } exports.requestPassage = requestPassage; //# sourceMappingURL=remote.js.map