#420 — January 18, 2019

Read on the Web

JavaScript Weekly

Exploring JavaScript Modules: From IIFEs to CommonJS to ES6 Modules — A commonly 'under-learned' aspect of JavaScript is the module system, but given its unusual and varied history, that might not be a surprise. In this post (which also comes in video form), Tyler McGinnis provides a useful refresher of module approaches, both past and present.

Tyler McGinnis

Porting 30K Lines of Code From Flow to TypeScript — The story of how MemSQL ported 30 thousand lines of JavaScript from using the Flow static type checker to TypeScript. In related news, the Jest project (which is owned by Facebook, as is Flow) is also planning a switch to TypeScript.

David Gomes

Swift and Straightforward Bug Fixes for Your JavaScript Apps — Automatically detect & diagnose JavaScript errors impacting your users with Bugsnag. Get comprehensive diagnostic reports, know immediately which errors are worth fixing, & debug in a fraction of the time compared to traditional tools. Try it free.

Bugsnag sponsor

Why I've Stopped Exporting Defaults From My Modules — The creator of ESLint says that after years of fighting with default exports, he’s taking a different approach. He makes a compelling argument.

Nicholas C. Zakas

Animating URLs with JavaScript and Emojis — Half fantastic and half terrifying, this is a cute look at a technique to make your location bar a lot more memorable in a variety of ways..

Matthew Rayfield

💻 Jobs

UI Engineer, Design Systems (San Francisco) — As a UI Platform Engineer at Uber, you'll be building Base UI, Uber's design language for all web applications at Uber and beyond.


Senior Frontend Engineer - Redwood City, CA — Build the platform that empowers researchers to develop high-performance materials and chemicals faster than ever before.

Citrine Informatics

Find A Job Through Vettery — Vettery specializes in developer roles and is completely free for job seekers.


📘 Tutorials and Opinions

How to Start a Node Project — Short and sweet but there are a few neat tidbits here I wasn’t familiar with.

Phil Nash

Build an App with Everything New and Noteworthy in Angular 7

Matt Raible

Being Type Strict Without Writing TypeScript — Explains how you can write typed JSDoc annotations in comments and have type safety checked in the IDE. An interesting compromise that may suit some setups or if you want to 'try out' static typing without going all in.

Kevin Nuut

Handling Time Zones in JavaScript

Dong Woo Kim

State Management in Angular Using Firebase and RxJS — A rather extensive and practical tutorial.

Joaquin Cid

Blazing Fast GraphQL PIM & Ecommerce Service — GraphQL backend for your ecommerce with subscription management?

Crystallize sponsor

Reverse Engineering GoDaddy's Tracking Script — A developer found that GoDaddy was injecting JavaScript into sites hosted by them in order to collect metrics for performance reasons.

Joshua Small

Why GraphQL is Taking Over APIs — GraphQL continues to eat the world and is a key technology to watch in 2019.

Azat Mardan

🔧 Code and Tools

Code to Graph: Visualize JavaScript Code as a Network Diagram — Certainly an interesting idea and fun to play with. Source here.

Vincent Lecrubier

NS:IDE: A JS IDE for Accessing a Phone/Tablet's Native Runtime — Uses NativeScript’s bindings to access native functionality.

Jamie Birch

✅ ZingGrid: Web Component-Based JavaScript Data Grid & Table Library — Make responsive data grids and tables with CRUD functionality, built-in layout modes, column types and more with ZingGrid.

ZingGrid sponsor

wpk: A Friendly, Intuitive, and Unofficial CLI for webpack

Sam Gluck

jsdiff: A JavaScript Text Diffing Implementation — Can compare strings for differences in various ways including creating patches for such changes. The library is quite mature but just reached version 4.0.

Kevin Decker

AlaSQL: A JavaScript SQL Database for Browser and Node.js — Handles both traditional relational tables and nested JSON data (NoSQL). Export, store, and import data from localStorage, IndexedDB, or Excel.

Andrey Gershun

Build Enterprise-Grade Apps for Free with Ext JS Community Edition

Sencha, Inc. sponsor

Shiny: Shiny Reflections for Mobile Websites — Add shiny reflections to page elements on devices that support DeviceMotion.

Rik Schennink

SurveyJS: A JavaScript Survey and Form Builder — Can integrate with Angular, jQuery, Knockout, React and Vue.js. Live demo here.

Devsoft Baltic

Sockette: A Tiny WebSocket Wrapper — A 348 byte wrapper around WebSocket that auto reconnects when necessary.

Luke Edwards

P.S. Next Tuesday (22nd), a long-time reader and friend of JavaScript Weekly, Brian Rinaldi, is hosting two great talks in an online event called JavaScript for Enterprise Development. It's free and no strings attached so check it out.