<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ray Arayilakath</title>
    <description>The latest articles on DEV Community by Ray Arayilakath (@rayhanadev).</description>
    <link>https://dev.to/rayhanadev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F524924%2Fc03d5b90-ed56-4877-ad78-24b84b3f31dc.jpeg</url>
      <title>DEV Community: Ray Arayilakath</title>
      <link>https://dev.to/rayhanadev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/rayhanadev"/>
    <language>en</language>
    <item>
      <title>Depreciating My First Package</title>
      <dc:creator>Ray Arayilakath</dc:creator>
      <pubDate>Sun, 05 Sep 2021 19:50:56 +0000</pubDate>
      <link>https://dev.to/rayhanadev/depreciating-my-first-package-83g</link>
      <guid>https://dev.to/rayhanadev/depreciating-my-first-package-83g</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Update: The &lt;code&gt;replapi-it&lt;/code&gt; package has been passed on to a new owner! &lt;a href="https://replit.com/@PikachuB2005" rel="noopener noreferrer"&gt;@PikachuB2005&lt;/a&gt; now has &lt;a href="https://npmjs.com/package/replapi-it" rel="noopener noreferrer"&gt;their own package&lt;/a&gt; on the v3 line and chooses to maintain it. It is not related to the previous ReplAPI.it or the ReplAPI.it Project.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Some time ago, I created a post on Dev.to about creating my first package, a NodeJS API for the online IDE Replit. Over the years my skills increased, the knowledgebase increase, and ReplAPI.it got better. We shifted from adding every part of the APIs to creating a package that allows for users to get the data they need without struggling through documentation and ideologies. &lt;strong&gt;The package was depreciated.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why?
&lt;/h2&gt;

&lt;p&gt;The Replit API is crazy and constantly changing, and in our efforts to put every part of it at the disposal of our users we set ourselves up for failure. Every week there was some new error, some change to the site, some new query that threw a wrench in our plans. The situation was &lt;a href="https://gist.github.com/Rapptz/4a2f62751b9600a31a0d3c78100287f1" rel="noopener noreferrer"&gt;somewhat similar to that faced by the Discord.py devs&lt;/a&gt;. We were blind to everything unless someone asked on the &lt;a href="https://replit.com/discord" rel="noopener noreferrer"&gt;Discord Server&lt;/a&gt;. In fact our project was never sponsored (or acknowledged for that matter) by anyone on the Replit team. It became a bit of a pain to manage the package, and attempts to make the process easier and &lt;a href="https://en.wikipedia.org/wiki/Don%27t_repeat_yourself" rel="noopener noreferrer"&gt;DRY&lt;/a&gt;er only made the codebase shift more insane.&lt;/p&gt;

&lt;h2&gt;
  
  
  Now What?
&lt;/h2&gt;

&lt;p&gt;Well at the current state, the package is unusable and there are no plans by myself to update it. Some community members have used it as a base to create their own versions which I whole-heartedly support. I don't intend on passing the package itself on NPM over to just anyone, but if you update the package to work with the current problems faced by developers then feel free to shoot me an email.&lt;/p&gt;

&lt;p&gt;If you want to use the Replit API at it's current state there are a few hurdles. Firstly you need &lt;a href="https://github.com/RayhanADev/lightfetch" rel="noopener noreferrer"&gt;an HTTPS package&lt;/a&gt; because the staging domain that allowed HTTP is down and the main site requires HTTPS. The API endpoint is at &lt;code&gt;https://replit.com/graphql&lt;/code&gt;. Secondly, you need a schema. You can find some of it by look in DevTools in Network Requests, reverse-engineer the ReplAPI.it package, or obtain a copy of the schema from some benevolent member of the Replit Team (or Replit Mods). With these two in hand you can create your own projects with the API.&lt;/p&gt;

</description>
      <category>node</category>
      <category>packages</category>
      <category>depreciation</category>
      <category>replit</category>
    </item>
    <item>
      <title>Writing A Package</title>
      <dc:creator>Ray Arayilakath</dc:creator>
      <pubDate>Wed, 09 Dec 2020 18:59:10 +0000</pubDate>
      <link>https://dev.to/rayhanadev/writing-a-package-3cgm</link>
      <guid>https://dev.to/rayhanadev/writing-a-package-3cgm</guid>
      <description>&lt;h1&gt;
  
  
  &lt;strong&gt;Writing A Package&lt;/strong&gt;
&lt;/h1&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;By: Rayhan Arayilakath&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Recently I published version 1.0.3 of a small, yet fulfilling wrapper for the API of my favorite IDE and coding forum Repl.it. It was the first ever package that I wrote and personally I found it to be an interesting experience.&lt;/p&gt;

&lt;p&gt;I always thought people who made packages had a certain flair about them, and the rest of us using packages were indebted forever to their hours of laborious work so that we can pad our text in ASNI sequences or poop emojis!&lt;/p&gt;

&lt;p&gt;When I realized that NPM actually allowed user’s to submit packages for free, I knew I had to make one and coincidently I was also sick and tired of writing a node-fetch function each time I needed to query a person’s cycles (internet points, think reputation on StackOverFlow) on Repl.it. Putting two plus two together I realized this was the perfect idea for a package, so I set out on my quest!&lt;/p&gt;

&lt;p&gt;I studied a bit on package structure, increased my knowledge on module exports, and also found out all sorts of GraphQL Queries Repl.it uses so I Frankensteined a package together and published it to NPM.&lt;/p&gt;

&lt;p&gt;It was a mess.&lt;/p&gt;

&lt;p&gt;Half the time, I was returned an undefined value and I had so many functions attached to one singular variable I lost track of them! I had a sinking feeling in my gut that maybe package dev wasn’t for me, yet I still tried!&lt;/p&gt;

&lt;p&gt;I scratched the original package and I created a new idea that I didn’t see in many other packages that I used past, involving creating a class for each user, post, comment or any object I wanted data on. Sure enough, my tests ensured that it worked all the time and surprisingly it was awfully simple to use. Quite honestly, I became really proud of my first package.&lt;/p&gt;

&lt;p&gt;As I publish this, I am writing an official documentation for it before letting the public see it (however some fellow Repler’s have already  found it xD) and after that I have a short by sweet roadmap to follow, perhaps making my package one of the more complete Repl.it API packages available. Time will tell, but in the meantime &lt;a href="https://github.com/RayhanADev/REPLAPI.it" rel="noopener noreferrer"&gt;check it out&lt;/a&gt;. Happy coding and see you next time! ~ Ray&lt;/p&gt;

</description>
      <category>npm</category>
      <category>graphql</category>
      <category>replit</category>
      <category>node</category>
    </item>
  </channel>
</rss>
