dev-to-js
Version:
An universal client for the Dev.to API written in Typescript
3 lines (2 loc) • 3.11 kB
JavaScript
import e from"querystringify";import t from"isomorphic-unfetch";function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var s=arguments[t];for(var r in s)Object.prototype.hasOwnProperty.call(s,r)&&(e[r]=s[r])}return e}).apply(this,arguments)}class r{constructor(e){this.apiKey=e.apiKey,this.basePath=e.basePath||"https://dev.to/api/"}request(e,r){const i=this.basePath+e,n=s({},r,{headers:{"api-key":this.apiKey,"Content-type":"application/json"}});return t(i,n).then(e=>{if(e.ok)return e.json();throw new Error(e.statusText)})}}class i extends r{}var n;n=i,[class extends r{getArticles(t){let s="articles";return t&&(s+=e.stringify(t,"?")),this.request(s)}getArticle(e){return this.request(`articles/${e}`)}getArticleByPath(e,t){return this.request(`articles/${e}/${t}`)}getMyArticles(t){let s="articles/me";return t&&(s+=e.stringify(t,"?")),this.request(s)}getMyPublishedArticles(t){let s="articles/me/published";return t&&(s+=e.stringify(t,"?")),this.request(s)}getMyUnpublishedArticles(t){let s="articles/me/unpublished";return t&&(s+=e.stringify(t,"?")),this.request(s)}getMyAllArticles(t){let s="articles/me/all";return t&&(s+=e.stringify(t,"?")),this.request(s)}createArticle(e){return this.request("articles",{method:"POST",body:JSON.stringify({article:e})})}updateArticle(e,t){return this.request(`articles/${e}`,{method:"PUT",body:JSON.stringify({article:t})})}},class extends r{getComment(e){return this.request(`comments/${e}`)}getComments(e){return this.request(`comments?a_id=${e}`)}},class extends r{getCurrentUser(){return this.request("users/me")}getUser(e){return this.request(`users/${e}`)}getUserByUsername(e){return this.request(`users/by_username?url=${e}`)}},class extends r{getFollowers(t){let s="followers/users";return t&&(s+=e.stringify(t,"?")),this.request(s)}},class extends r{getListings(t){let s="listings";return t&&(s+=e.stringify(t,"?")),this.request(s)}getListingsByCategory(t,s){let r=`listings/category/${t}`;return s&&(r+=e.stringify(s,"?")),this.request(r)}getListing(e){return this.request(`listings/${e}`)}createListing(e){return this.request("listings",{method:"POST",body:JSON.stringify({classified_listing:e})})}updateListing(e,t){return this.request(`listings/${e}`,{method:"PUT",body:JSON.stringify({classified_listing:t})})}},class extends r{getPodcastEpisodes(t){let s="podcast_episodes";return t&&(s+=e.stringify(t,"?")),this.request(s)}},class extends r{getTags(t){let s="tags";return t&&(s+=e.stringify(t,"?")),this.request(s)}},class extends r{getVideos(t){let s="videos";return t&&(s+=e.stringify(t,"?")),this.request(s)}},class extends r{getWebhooks(){return this.request("webhooks")}getWebhook(e){return this.request(`webhooks/${e}`)}createWebhook(e){return this.request("webhooks",{method:"POST",body:JSON.stringify({webhook_endpoint:e})})}deleteWebhook(e){return this.request(`webhooks/${e}`,{method:"DELETE"})}}].forEach(e=>{Object.getOwnPropertyNames(e.prototype).forEach(t=>{Object.defineProperty(n.prototype,t,Object.getOwnPropertyDescriptor(e.prototype,t))})});export default i;
//# sourceMappingURL=index.modern.js.map