What is the output?
Anonymous Quiz
32%
loop1 0, loop1 1, loop2 0, loop2 1
35%
loop1 0, loop1 1
11%
loop1 0, loop1 1, loop2 1
21%
loop1 1, loop1 2, loop2 1, loop2 2
π11
π Issue 11 / 06.06.2023
πqnm: A CLI Tool to Look Into `node_modules`
If youβve been into a
RAN YITZHAKI
π‘ Don't forget about the always handy NPKILL for if you actually want to clear away those
π Hands On with Node's Built-In Test Runner
The built-in test runner became stable with the release of Node 20 and a lot of folks are now figuring out how to use it in their workflows. Phil walks through it with an easily understood and complete example here.
PHIL NASH
π It must be the week for testing, as endpts has shared a thorough built-in test runner primer too, and NearForm's RΓ΄mulo Vitoi takes it a step further by showing us how to build a custom test reporter.
Β©οΈJS WEEKLY
πqnm: A CLI Tool to Look Into `node_modules`
If youβve been into a
node_modules
folder and been overwhelmed, this tool lets you dig around with extra guidance as to what is what. You can use fuzzy search to find specific things, and also see which modules are using the most space (you could try that right now with `npx qnm doctor`).RAN YITZHAKI
π‘ Don't forget about the always handy NPKILL for if you actually want to clear away those
node_modules
nightmares.. ππ Hands On with Node's Built-In Test Runner
The built-in test runner became stable with the release of Node 20 and a lot of folks are now figuring out how to use it in their workflows. Phil walks through it with an easily understood and complete example here.
PHIL NASH
π It must be the week for testing, as endpts has shared a thorough built-in test runner primer too, and NearForm's RΓ΄mulo Vitoi takes it a step further by showing us how to build a custom test reporter.
Β©οΈJS WEEKLY
π3β€2
IN BRIEF
πSomehow we missed it, but Node.js recently turned 14 years old with the initial release being on May 27, 2009.
πAs of June 1, Node.js 19 is now 'end of life' and will not receive further updates.
πOhm, Pohl and Boes published an academic paper titled You Can Run But You Can't Hide: Runtime Protection Against Malicious Package Updates for Node.js. They approached the long-standing issue around supply chain security with a technique to automatically limit the capability of packages at runtime with 90% success and little overhead.
πAlternative server-side JavaScript runtime Bun has added an interesting 'macro' feature to its new bundler. This might catch on.
MDN's reference pages on regular expressions in JavaScript have been substantially improved.
πSomehow we missed it, but Node.js recently turned 14 years old with the initial release being on May 27, 2009.
πAs of June 1, Node.js 19 is now 'end of life' and will not receive further updates.
πOhm, Pohl and Boes published an academic paper titled You Can Run But You Can't Hide: Runtime Protection Against Malicious Package Updates for Node.js. They approached the long-standing issue around supply chain security with a technique to automatically limit the capability of packages at runtime with 90% success and little overhead.
πAlternative server-side JavaScript runtime Bun has added an interesting 'macro' feature to its new bundler. This might catch on.
MDN's reference pages on regular expressions in JavaScript have been substantially improved.
π2
π Code & Tools
π© bundlejs: npm Package Bundle Size Checker
A browser-based tool that can treeshake, bundle, minify, and compress (`gzip` and `brotli`) packages to show you what their weight impact is. It runs entirely in the browser, too, using the WebAssembly build of esbuild.
OKIKI OJO
π© Prisma-Lint: A Linter for Prisma Schema Files
The team behind this tool has dozens of schema files to stay on top of, so they built this to maintain a consistent style and ensure they have the proper indices in place.
LOOP PAYMENTS
π© copy-paste: Cross-Platform Clipboard Copy/Paste
Wraps around different utilities for each operating system (macOS, Linux, BSD, and Windows).
XAVI
π© DOT Classes: TypeScript Library to Model Data Transfer Objects
Designed to model data transfer objects in HTTP JSON APIs using class-based schemas that serialize/deserialize, static types by default, custom validation support, and an API that may feel familiar if you use OpenAPI and JSON Schema.
ROBERT SINGER
π© bundlejs: npm Package Bundle Size Checker
A browser-based tool that can treeshake, bundle, minify, and compress (`gzip` and `brotli`) packages to show you what their weight impact is. It runs entirely in the browser, too, using the WebAssembly build of esbuild.
OKIKI OJO
π© Prisma-Lint: A Linter for Prisma Schema Files
The team behind this tool has dozens of schema files to stay on top of, so they built this to maintain a consistent style and ensure they have the proper indices in place.
LOOP PAYMENTS
π© copy-paste: Cross-Platform Clipboard Copy/Paste
Wraps around different utilities for each operating system (macOS, Linux, BSD, and Windows).
XAVI
π© DOT Classes: TypeScript Library to Model Data Transfer Objects
Designed to model data transfer objects in HTTP JSON APIs using class-based schemas that serialize/deserialize, static types by default, custom validation support, and an API that may feel familiar if you use OpenAPI and JSON Schema.
ROBERT SINGER
π4
β€9π€£7
π₯7β€3
π Issue 12 / 08.06.2023
π Polywasm: A Polyfill to Run WASM in JS Environments
The creator of esbuild is back with something fresh: a polyfill that uses live translation to be able to run
EVAN WALLACE
π Announcing TypeScript 5.1
This release of the statically typed JavaScript superset is a gentle 'quality of life' step forward rather than a featureful extravaganza, but we get support for linked editing of JSX tag names, namespaced JSX attributes, the ability to have unrelated types for getters and setters, and
DANIEL ROSENWASSER (MICROSOFT)
Β©οΈJS WEEKLY
π Polywasm: A Polyfill to Run WASM in JS Environments
The creator of esbuild is back with something fresh: a polyfill that uses live translation to be able to run
.wasm
files in JS environments that either lack a WebAssembly implementation or have it disabled. You can see how it performs in this special version of the esbuild playground.EVAN WALLACE
π Announcing TypeScript 5.1
This release of the statically typed JavaScript superset is a gentle 'quality of life' step forward rather than a featureful extravaganza, but we get support for linked editing of JSX tag names, namespaced JSX attributes, the ability to have unrelated types for getters and setters, and
undefined`-returning functions no longer need an explicit `return
.DANIEL ROSENWASSER (MICROSOFT)
Β©οΈJS WEEKLY
β€8
β‘οΈ IN BRIEF
π Douglas Crockford, of JS: The Good Parts fame, π¬ is back pointing out JavaScript is a 'smelly' language and 'it's time for the next thing.' π¬ βοΈ
π MDN's reference pages on regular expressions in JavaScript have been substantially improved.
π From Apple's WWDC this week comes π¬ a handy presentation on Safari's DevTools, plus a barrage of news about Safari enhancements around the 'spatial web', JPEG XL support, the popover API, offscreen canvas support, local storage policies, extra JS regex features, and more.
π Emma Twersky shares everything Angular related from the recent Google I/O 2023 event.
π Douglas Crockford, of JS: The Good Parts fame, π¬ is back pointing out JavaScript is a 'smelly' language and 'it's time for the next thing.' π¬ βοΈ
π MDN's reference pages on regular expressions in JavaScript have been substantially improved.
π From Apple's WWDC this week comes π¬ a handy presentation on Safari's DevTools, plus a barrage of news about Safari enhancements around the 'spatial web', JPEG XL support, the popover API, offscreen canvas support, local storage policies, extra JS regex features, and more.
π Emma Twersky shares everything Angular related from the recent Google I/O 2023 event.
π₯3
ARTICLES & TUTORIALS
π Why (and How) You Should Write Your WebAssembly in TypeScript
Performance is the main argument made by the author who shows off Wasmati, a library for creating WebAssembly modules by writing TypeScript using an API that corresponds to WASM operations. It works in modern browsers, Node, and Deno.
GREGOR MITSCHA-BAUDE
π Backtick Strings are Likely the Wrong Tool for Your Job
Itβs too common to try to put together query strings using JavaScriptβs template strings, says Mattie, and this leads to potential injection problems. Luckily, thereβs an alternative way..
MATTIE BEHRENS
π Is React Having an 'Angular.js Moment'?
The author puts forward an argument comparing the discontinuity from AngularJS to Angular 2 in 2014 with current shifts in the React ecosystem.
FRANΓOIS ZANINOTTO
π Why (and How) You Should Write Your WebAssembly in TypeScript
Performance is the main argument made by the author who shows off Wasmati, a library for creating WebAssembly modules by writing TypeScript using an API that corresponds to WASM operations. It works in modern browsers, Node, and Deno.
GREGOR MITSCHA-BAUDE
π Backtick Strings are Likely the Wrong Tool for Your Job
Itβs too common to try to put together query strings using JavaScriptβs template strings, says Mattie, and this leads to potential injection problems. Luckily, thereβs an alternative way..
MATTIE BEHRENS
π Is React Having an 'Angular.js Moment'?
The author puts forward an argument comparing the discontinuity from AngularJS to Angular 2 in 2014 with current shifts in the React ecosystem.
FRANΓOIS ZANINOTTO
π₯6π2
π6β€5