---
title: "Faster deployment of Node.js serverless functions"
publication: "Node Weekly"
issue: 378
published_at: "2021-03-04"
canonical_url: "https://nodeweekly.com/issues/378"
---

Plus an interview with the creator of a SOAP library for Node. |        

#378 — March 4, 2021 

[Read on the Web](https://nodeweekly.com/issues/378)    

👋 To help with the _'no big news in the Node world this week'_ problem we're encountering sometimes, we're interviewing maintainers of different Node projects so you can get a look behind the scenes of their work. This week we have an interview with the maintainer of a Node SOAP library and you can find it at the very end of the issue :-)
__
_Peter Cooper, your editor_  

![](https://res.cloudinary.com/cpress/image/upload/e_grayscale,w_150,h_170,c_pad,g_south/xrupigpv8kyjqotfdgy8.jpg)   

Node Weekly  

[Serverless UI: A Command-Line Tool for Deploying Serverless Apps to AWS](https://github.com/JakePartusch/serverlessui) — If you’d like to deploy functions in a simple, Netlify-style fashion with the Lambda and API Gateway setup handled for you, check this out. It uses AWS CDK under the hood and is a bit more ‘zero-config’ than something like Serverless Framework, say. _“Write your serverless functions in JavaScript or TypeScript. Either way, they’ll be bundled down extremely quickly and deployed as Node.js 14 lambdas.”_ [Architect](https://arc.codes/docs/en/guides/get-started/quickstart) is another tool worth exploring in this space. 

Jake Partusch   

[Node v15.11.0 (Current) Released](https://nodejs.org/en/blog/release/v15.11.0/) — Another week, another release, but this is a _very_ minor one (unless you’re running into a bug it’s fixed, of course!) One change of note is that the Node team now [consider source maps to be stable](https://github.com/nodejs/node/pull/37362) and no longer experimental. 

Node.js Project   [![\](https://copm.s3.amazonaws.com/8241e9d0.png)](https://get.mux.com/3kTeOP8) 

[Video for Your Node App That Streams Beautifully, Everywhere](https://get.mux.com/3kTeOP8) — Automatically deliver the best user experience for every combination of device, browser, location, and bandwidth with Mux's video API. Get started with a $20 credit. 

Mux sponsor   

[PSA: `fs.promises.readFile` is 40% Slower Than `fs.readFile`](https://github.com/nodejs/node/issues/37583) — You’re probably not going to care unless you’re doing a lot of file heavy lifting (or are writing a library you want others to depend on for performance) but it’s worth keeping in mind. 

Node.js Repository   

[Deno 1.8 Released](https://deno.land/posts/v1.8) — Node’s friendly cousin takes another step forward with, perhaps most notably, experimental support for WebGPU which will open up some interesting use cases for GPU-based computation. → [_Via our Deno newsletter_](https://denoweekly.com). 

Bartek Iwańczuk, Luca Casonato, and Ryan Dahl  

💻 **Jobs**  

[Node.js Developer at X-Team (Remote)](https://x-team.com/remote-nodejs-developer-jobs/?utm_source=cooperpress&utm_medium=email-ad&utm_campaign=node) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more. 

X-Team   

[Find Your Next Job Through Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-nodeweekly%29&utm_content=find-your-next-job) — Create a profile on Hired to connect with hiring managers at growing startups and Fortune 500 companies. It's free for job-seekers. 

Hired  

📗 **Tutorials and Stories**  

[Building a Discord Bot Using Discord.js](https://www.smashingmagazine.com/2021/02/building-discord-bot-discordjs/) — Node is ideal for building chat bots and here’s a complete walkthrough of using the [Discord.js](https://discord.js.org/#/) library to do this on the Discord chat system to create a joke posting bot. 

Subha Chanda   

▶[Computerphile Covers Node.js](https://www.youtube.com/watch?v=whwa7ua_RbA) — [Computerphile](https://www.youtube.com/channel/UC9-y-6csu5WGm29I7JiwpnA) is a wildly popular YouTube channel that covers computer science and software engineering generally in an accessible way (highlights include Tom Scott talking about [timezones](https://www.youtube.com/watch?v=-5wpm-gesOY) and [how floating point numbers work](https://www.youtube.com/watch?v=PZRI1IfStY0).) This isn’t an advanced video by any means but helps put Node into context within the broader computing ecosystem. 

Computerphile   

[An Engineering Leader’s Guide to OpenTelemetry](https://go.lightstep.com/register-engineering-leaders-guide-to-opentelemetry-co21.html?utm_campaign=node&utm_source=cooper&utm_medium=Email) 

Lightstep sponsor   

[Unzip Large Files in AWS S3 using Lambda and Node.js](https://dev.to/nerychucuy/unzip-large-files-in-aws-using-lambda-and-node-js-cpp) — [Unzipper](https://www.npmjs.com/package/unzipper) is a helpful package here as its streaming approach promises a low memory footprint even when decompressing large files. 

Nery Chucuy   

[Securing Node Services using Client Authenticated TLS with CATKeys](https://itnext.io/securing-node-services-using-client-authenticated-tls-with-catkeys-938709726fbc) 

Pommy Mac     

🛠 Code and Tools      

[Agenda 4.1: Lightweight Job Scheduling for Node](https://github.com/agenda/agenda) — Uses a MongoDB-backed persistence layer and offers rate limiting, pause/resume, repeatable jobs, and even [a UI/dashboard](https://github.com/agenda/agendash) if you need it. 

Ryan Schmukler   

[array-union 3.0: Create An Array of Unique Values, In Order, From Input Arrays](https://github.com/sindresorhus/array-union) — A project with 21 million npm downloads per week and 33 GitHub stars is quite the thing :-) This new 3.0 version is now a [pure ESM package](https://gist.github.com/sindresorhus/a39789f98801d908bbc7ff3ecc99d99c). 

Sindre Sorhus   

[Get Your Free SPOTcon 2021 Tickets Today](https://ter.li/d77n72) — Join us March 26 for Scout APM's digital event on performance & observability. Speaker lineup and agenda now available. 

SPOTcon by Scout APM sponsor   

[Chevrotain 8.0: A Parser Building Toolkit](https://chevrotain.io/docs/) — The [tutorial](https://chevrotain.io/docs/tutorial/step0_introduction.html#installation) walks through building a simple parser for an SQL-esque language. Basically if you need to turn some sort of code into a usable AST, this is worth a look. 

SAP   

[walk-back 5.0: Walk Up The Directory Tree Until a Specified Path/File is Found](https://github.com/75lb/walk-back) 

Lloyd Brookes   

[haxec 2.0: Wrap `spawn()` or `exec()` with Before/After Handlers](https://github.com/grantila/haxec) — Designed for executing other Node programs as before and after handlers get injected. 

Gustaf Räntilä   

[address-rfc2822: RFC 2822 & 5322 (Header) Email Address Parser](https://www.npmjs.com/package/address-rfc2822) 

Sergeant, Simerson, et al.        ![Caleb Lemoine](https://res.cloudinary.com/cpress/image/upload/v1614789062/uameef7v6t9gzr8obmcf.jpg) 

💬 A Q&A with…
Caleb Lemoine
Software engineer and creator of the easy-soap-request library  

[SOAP](https://en.wikipedia.org/wiki/SOAP) began life as XML-RPC over twenty years ago and is an XML based remote procedure call system that's reasonably common in large, enterprise APIs and was a defacto standard prior to REST and JSON. [easy-soap-request](https://github.com/circa10a/easy-soap-request/) is a library that makes it easier to perform SOAP calls from Node, and we caught up with its creator to ask a few questions: 

Why did you create easy-soap-request rather than use an existing library? 

I was working on a project at a large insurance company and needed to stitch together some legacy APIs for automated testing, but all I could find were implementations in Java. At the time, my team was using Node.js more so I wanted to build this new automation with more modern tech, but what I found is that there isn't really a lot of documentation around using SOAP with modern solutions. The library really took off when [I wrote a Medium article explaining how to use SOAP APIs](https://betterprogramming.pub/how-to-perform-soap-requests-with-node-js-4a9627070eb6). 

There are several existing SOAP clients, but they were difficult to use and the documentation was very verbose. At the end of the day, I just wanted to send a POST request and thought _"it shouldn't be this hard"._ 

In what sort of places is SOAP still used? 

SOAP really became a thing in the early 2000s, so many companies who have been around since then (especially larger ones) will most likely still have some APIs based on SOAP. Companies in industries such as finance, banking, insurance, government agencies etc. are most likely to still have SOAP-based APIs. Just like how those same companies still have mainframes. 

How did you find the process of supporting Node, Deno and the browser all in one library? 

That's an interesting question because I never actually intended for that. Each sector of the JS ecosystem has its own convention which helped a lot. The project originally started as a simple Node library so I naturally published it to npm. Then I saw several browser use-cases and integrated webpack into the build process which published the bundle in a `dist/` path in the node module. 

npm already did the heavy lifting by pushing it to a CDN for me, so the browser library was just accessible via `dist/` instead of the root path. Once Deno was inching closer to 1.0, a user opened an issue asking for support. I thought it was a reasonable ask so I figured why not. Deno modules allow you to access modules by any individual file name over HTTPS so I chose `index.d.js` which I think makes sense. 

Most tooling today will allow enough customization for you to solve these types of problems easily, but the trick is to making consumption very clear to the user. That means implementing standarized conventions that developers are already using and good documentation. If you don't have some quick copy/pasta usage in your README, developers are much less likely to use what you've built.   

_You can find out more about Caleb and his work [here](https://caleblemoine.dev)_.     

**Got a new email?** You can [change your address here](https://nodeweekly.com/edit_subscription/*|UID|*). 

--- 

**Bored of us?** [Click here to stop getting Node Weekly](https://nodeweekly.com/leave/*|UID|*). 

--- 

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. Thanks! 

--- 

**Want to sponsor?** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Stop getting this newsletter.](https://nodeweekly.com/leave/*|UID|*)
