UNPKG

kurlar

Version:

Türkiye Cumhuriyet Merkez Bankası (TCMB) tarafından yayınlanan döviz kurlarını kolayca çekmenizi sağlayan kütüphane.

3 lines 1.67 kB
import {XMLValidator,XMLParser}from'fast-xml-parser';import T from'axios';var l=(e,o,r)=>new Promise((n,a)=>{var s=t=>{try{i(r.next(t));}catch(c){a(c);}},u=t=>{try{i(r.throw(t));}catch(c){a(c);}},i=t=>t.done?n(t.value):Promise.resolve(t.value).then(s,u);i((r=r.apply(e,o)).next());});function g({date:e}){let o=new Date(2016,8,8);return new Date(e.getFullYear(),e.getMonth(),e.getDate())>=o?"UTF-8":"ISO-8859-9"}function p(e){return e<10?`0${e}`:`${e}`}function y({date:e}){let o="https://www.tcmb.gov.tr/kurlar/today.xml",r="UTF-8";if(e){let n=new Date;if(n.setHours(0,0,0,0),new Date(e.getFullYear(),e.getMonth(),e.getDate())<=n){let s=e.getFullYear(),u=p(e.getMonth()),i=p(e.getDate());o=`https://www.tcmb.gov.tr/kurlar/${s}${u}/${i}${u}${s}.xml`,r=g({date:e});}}return {url:o,encoding:r}}function D(e){return l(this,null,function*(){let o=y({date:e}),r=[];try{let n=yield T.get(o.url);if(XMLValidator.validate(n.data)!==!0)throw new Error("Invalid XML response");let s={ignoreAttributes:!1,allowBooleanAttributes:!0,ignoreDeclaration:!0,attributeNamePrefix:"@_",trimValues:!0},i=new XMLParser(s).parse(n.data);for(let t of i.Tarih_Date.Currency)r.push({Unit:t.Unit,CurrencyName:t.CurrencyName,CurrencyCode:t["@_CurrencyCode"],ForexBuying:t.ForexBuying,ForexSelling:t.ForexSelling,BanknoteBuying:t.BanknoteBuying,BanknoteSelling:t.BanknoteSelling});return r.length>0?r:null}catch(n){return Promise.reject(n)}})}function x(r){return l(this,arguments,function*({currency:e,date:o}){let n=yield D(o);return n&&n.find(s=>s.CurrencyCode===e)||null})} export{D as fetchAllCurrencies,x as fetchCurrency};//# sourceMappingURL=index.mjs.map //# sourceMappingURL=index.mjs.map