@bible-api/bible-api
Version:
A simple API for the Bible
79 lines • 2.55 kB
JavaScript
;
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