<?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: Jack Ecuyer</title>
    <description>The latest articles on DEV Community by Jack Ecuyer (@jack_ecuyer).</description>
    <link>https://dev.to/jack_ecuyer</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%2F3140856%2F43dfb52d-7a19-4423-95b2-57dc49420e90.jpg</url>
      <title>DEV Community: Jack Ecuyer</title>
      <link>https://dev.to/jack_ecuyer</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jack_ecuyer"/>
    <language>en</language>
    <item>
      <title>🚀 𝗪𝗲𝗲𝗸𝗹𝘆 𝗗𝗲𝘃 𝗟𝗼𝗴 – 𝗪𝗲𝗲𝗸 𝟭</title>
      <dc:creator>Jack Ecuyer</dc:creator>
      <pubDate>Fri, 16 May 2025 13:51:15 +0000</pubDate>
      <link>https://dev.to/jack_ecuyer/--4768</link>
      <guid>https://dev.to/jack_ecuyer/--4768</guid>
      <description>&lt;p&gt;Hey everyone 👋&lt;/p&gt;

&lt;p&gt;Here’s my latest update on what I’ve been building, learning, and overcoming this past week as part of my journey as a software developer.&lt;/p&gt;

&lt;p&gt;💡 𝗣𝗿𝗼𝗷𝗲𝗰𝘁 𝗥𝗲𝗰𝗮𝗽 – 𝗛𝗲𝘃𝘆 𝗦𝗗𝗞 ( &lt;a href="https://github.com/JackEcuyer/hevy-sdk" rel="noopener noreferrer"&gt;https://github.com/JackEcuyer/hevy-sdk&lt;/a&gt; )&lt;br&gt;
I'm continuing to build out a TypeScript SDK for the Hevy API, aiming to support Node.js, browsers, and modern JavaScript frameworks. The goal is to improve the API ecosystem and gain hands-on experience with TypeScript tooling.&lt;/p&gt;

&lt;p&gt;✅ 𝗧𝗵𝗶𝘀 𝗪𝗲𝗲𝗸’𝘀 𝗛𝗶𝗴𝗵𝗹𝗶𝗴𝗵𝘁𝘀&lt;br&gt;
• Configured Prettier formatting &amp;amp; configured husky to run formatting on pre commit&lt;br&gt;
• Added JSDoc style comments across codebase &amp;amp; used the TypeDoc package to generate documentation for the SDK&lt;br&gt;
• Published the TypeDoc documentation to Github pages on the SDK repository.&lt;/p&gt;

&lt;p&gt;📚 𝗪𝗵𝗮𝘁 𝗜’𝘃𝗲 𝗟𝗲𝗮𝗿𝗻𝗲𝗱&lt;br&gt;
• That JSDoc is a commenting convention designed for raw JavaScript, and using the TypeDoc package means I don't have to add typing to my doc comments, because the package automatically interprets TypeScript.&lt;br&gt;
• The prettier VSCode plugin will automatically search for a Prettier configuration file in your project and format accordingly.&lt;br&gt;
• That Github deployment to Github pages is incredibly simple when using a basic HTML website document.&lt;/p&gt;

&lt;p&gt;⚠️ 𝗖𝗵𝗮𝗹𝗹𝗲𝗻𝗴𝗲𝘀&lt;br&gt;
• Determining which package to use to generate documentation files from JSDoc comments. There are many different packages for different formats (Markdown, HTML).&lt;/p&gt;

&lt;p&gt;🔜 𝗡𝗲𝘅𝘁 𝗦𝘁𝗲𝗽𝘀&lt;br&gt;
Next steps include stricter typing for responses received from API fetch requests, integrating mock fetch requests into jest, and expanding SDK functionality to include 'Routines' endpoints.&lt;/p&gt;

&lt;p&gt;If you’re into dev logs, personal projects, or learning in public - feel free to follow! I’d love to hear what others are building too.&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>buildinpublic</category>
      <category>indiedev</category>
      <category>typescript</category>
    </item>
    <item>
      <title>🚀 Building a TypeScript SDK for the Hevy API – Dev Log #1</title>
      <dc:creator>Jack Ecuyer</dc:creator>
      <pubDate>Fri, 09 May 2025 08:31:17 +0000</pubDate>
      <link>https://dev.to/jack_ecuyer/building-a-typescript-sdk-for-the-hevy-api-dev-log-1-457o</link>
      <guid>https://dev.to/jack_ecuyer/building-a-typescript-sdk-for-the-hevy-api-dev-log-1-457o</guid>
      <description>&lt;p&gt;Hey everyone 👋&lt;/p&gt;

&lt;p&gt;I've decided to start sharing weekly updates about what I’m building, &lt;br&gt;
learning, and overcoming as a software developer.&lt;/p&gt;

&lt;p&gt;𝗪𝗵𝘆?&lt;br&gt;
To track and share what I’m learning, stay consistent with my personal projects, and connect with others in the tech community.&lt;/p&gt;

&lt;p&gt;🛠 This first post covers the past couple of weeks as I’ve kicked off a new project:&lt;/p&gt;

&lt;p&gt;💡 𝗧𝗵𝗲 𝗣𝗿𝗼𝗷𝗲𝗰𝘁 - 𝗛𝗲𝘃𝘆 𝗦𝗗𝗞 (&lt;a href="https://github.com/JackEcuyer/hevy-sdk/" rel="noopener noreferrer"&gt;https://github.com/JackEcuyer/hevy-sdk/&lt;/a&gt;)&lt;br&gt;
I'm building a TypeScript SDK for the Hevy API, to be compatible with Node.js, JavaScript frameworks, and browsers. I chose to build this because of my love for the Hevy app, which I use to track all of my workouts (&lt;a href="https://www.hevyapp.com/" rel="noopener noreferrer"&gt;https://www.hevyapp.com/&lt;/a&gt;). I hope to expand the Hevy API ecosystem while improving my TypeScript skills.&lt;/p&gt;

&lt;p&gt;✅ 𝗛𝗶𝗴𝗵𝗹𝗶𝗴𝗵𝘁𝘀 𝗦𝗼 𝗙𝗮𝗿&lt;br&gt;
• Set up GitHub repository and version control&lt;br&gt;
• Configured TypeScript to build npm package for CommonJS &amp;amp; ES Modules&lt;br&gt;
• Developed HevyClient class for SDK interaction&lt;br&gt;
• Implemented API routines to retrieve &amp;amp; create workout data&lt;br&gt;
• Integrated Zod for schema validation when posting workouts&lt;br&gt;
• Setup Jest for SDK testing&lt;br&gt;
• Improved error handling with user-friendly API &amp;amp; validation error formatting&lt;br&gt;
• Installed and configured ESLint for code consistency&lt;br&gt;
• Set up Husky for pre-commit testing &amp;amp; linting&lt;/p&gt;

&lt;p&gt;📚 𝗪𝗵𝗮𝘁 𝗜’𝘃𝗲 𝗟𝗲𝗮𝗿𝗻𝗲𝗱&lt;br&gt;
• How to configure TypeScript for both CommonJS and ES Modules&lt;br&gt;
• Best practices for creating reusable and modular SDK classes (e.g. HevyClient)&lt;br&gt;
• Integrating Zod for data validation and ensuring strong API request handling&lt;br&gt;
• Writing effective tests for SDK functionality using Jest&lt;br&gt;
• Handling and presenting API and validation errors in a user-friendly way&lt;br&gt;
• Configuring ESLint to maintain consistent code quality and style&lt;br&gt;
• Using Husky for automating pre-commit checks to ensure clean code&lt;br&gt;
• Using the Git CLI to fix incorrect commits to Github&lt;/p&gt;

&lt;p&gt;⚠️ 𝗖𝗵𝗮𝗹𝗹𝗲𝗻𝗴𝗲𝘀&lt;br&gt;
• ESLint v9 configuration was tricky, as the new format required importing plugin modules. However, using the TypeScript ESLint package made this easier. &lt;br&gt;
• I made a couple of incorrect git commits that were pushed to the remote Github repository, meaning I had to learn to correctly use the Git CLI to fix the commit history.&lt;br&gt;
• While testing with ts-node, I ran into ESM syntax errors, which helped me understand the differences between ESM and CommonJS in Node.js.&lt;/p&gt;

&lt;p&gt;🔜 𝗡𝗲𝘅𝘁 𝗦𝘁𝗲𝗽𝘀&lt;br&gt;
Next steps include improving test coverage by integrating mock fetch requests into Jest, adding prettier and JSDoc, and refining type checking.&lt;/p&gt;

&lt;p&gt;If you’re into learning new technologies, building personal projects, or are passionate about software - follow along!&lt;/p&gt;

&lt;p&gt;I’ll be posting an update every week, within reason. Some weeks, circumstances may mean I can’t make a progress post, but I’ll keep it as consistent as I can. Happy to connect 👇&lt;/p&gt;

</description>
      <category>buildinpublic</category>
      <category>typescript</category>
      <category>opensource</category>
      <category>indiedev</category>
    </item>
  </channel>
</rss>
