UNPKG

blockchain-rates

Version:

A tiny Node.js wrapper for the Blockchain Exchange Rates API

1 lines 1.34 kB
"use strict";var __importDefault=(this&&this.__importDefault)||function(mod){return(mod&&mod.__esModule)?mod:{"default":mod};};Object.defineProperty(exports,"__esModule",{value:true});exports.get=void 0;const https_1=__importDefault(require("https"));const DEFAULT_CODE='all';const defaultOptions={host:'blockchain.info',path:'/ticker?cors=true',headers:{},agent:false,};const returnPromise=(code,options)=>{return new Promise((resolve,reject)=>{returnCallback(code,options,(err,data)=>{if(err)return reject(err);return resolve(data);});});};const returnCallback=(code,options,callback)=>{https_1.default.get(options,(res)=>{let dataBuffer='';res.on('data',(chunk)=>{dataBuffer+=chunk.toString('utf8');});res.on('end',()=>{try{let data=JSON.parse(dataBuffer);if(code!==DEFAULT_CODE){data=data[code.toUpperCase()];if(!data)throw new Error(`code"${code}"not found.`);}return callback(null,data);}catch(err){return callback(err);}});}).on('error',(err)=>{return callback(err);});};const get=(code,callback)=>{const options={...defaultOptions};if(typeof code==='function'){return returnCallback(DEFAULT_CODE,options,code);}else if(typeof code==='string'){if(callback)return returnCallback(code,options,callback);return returnPromise(code,options);}else{return returnPromise(DEFAULT_CODE,options);}};exports.get=get;exports.default={get:exports.get};