Slack for JS 10.x! ๐Ÿ”ฅ

Brian Lerouxโ€™s avatar

by Brian Leroux

Slack Logo

Slack for JS is a super tiny Slack Web API client for NodeJS and the browser.

With it, you can make use of the entirety of Slackโ€™s 130+ methods from a single, lightweight library. (Itโ€™s also what we use at Begin!)

Way back in September we shipped Slack 9.x which enjoyed many enhancements under a theme of performance. We managed to get the browser payload down to blazing fast 7KB while retaining backwards compatibility for the core API surface.

Along the way, JavaScript has advanced as a language, and so we were also able to offer shiny new API surface for the class and async/await constructs. ๐ŸŽ‰

Whats New in 10.x! โœจ

Since the 9.x release weโ€™ve seen a boost in community interaction and Iโ€™m really happy to share a bunch of nice improvements:

  • TypeScript typedefs based on the generated source
  • Steno is now supported by using an environment variable STENO_URL
  • Native support for Electron networking layer which allows for better network authentication proxy support
  • Code coverage reporting for the test suite

Extra special thanks to Dan Prince and Charlie Hess for helping on this release; we got here with your help!

Notable Fixes ๐Ÿž

We had a long undiscovered bug in slack.files.upload wherein we were sending the payload encoded as application/x-www-form-urlencoded instead of multipart/form-data. It surprised us we hadnโ€™t seen this one! We managed to fix it while retraining a small payload and backwards compatibility. ๐Ÿ˜…

Long ago, when denoting rate limiting, Slack used to send a HTTP body: You are sending too many requests. Please relax. (Which the author thought was awesome btw.) At some point that changed to HTTP statusCode 429, which we now handle as a proper native Error. Since this was technically a breaking change we decided to bump the semver major to 10.x.

Also notable in 10.x we managed to triage our way to zero GitHub issues! ๐Ÿ™€

Whats Next? ๐Ÿš€

You tell us! We value quality, speed, and a stable, always backwards compatible API surface. If you think something is broken, missing or even if you just have a rad idea please donโ€™t hesitate to let us know by filing an issue on GitHub!