Mocking with Jest

Jest provides several different ways to mock out things. Here's an effort to list out the most useful ones in a short post. Manual Mocks The most basic kind of mocking is by providing a __mocks__ directory next to the module you want to mock and provide a mock implementation…

Multiple html pages with create-react-app app

create-react-app provides a great starting point to start a new react app fully configured with webpack, live reloading, etc. But, sadly, it doesn't provide a way to provide different index files with a different set of entry points. This might not be an issue for many since it is supposed…

Stimulus: A modest JS framework

Introduction When I first came across Stimulus, I was excited. The premise is great, especially when coupling with a rails app. Convention over configuration, right? No more jQuery code sprinkled around throughout the page and watching for load/change events to perform changes. Not to mention the quirks that come…

Adding static methods to existing modules using Declaration Merging in TypeScript

Introduction The main selling point of TypeScript is the ability to describe the shapes of JavaSCript objects at the type level. One example that is unique to TypeScript is Declaration Merging. Declaration Merging At the simplest level, declaration merging looks like this: interface Box { height: number; width: number; } interface Box…

Unknown is coming to TypeScript 3.0

If you use typescript, you must have come across the all-powerful any type. While it can encompass all possible types, it also makes TypeScript skip any type checking on it. This is great for some use cases where you are not sure about the structure of the object but want…

Displaying an encoded Polyline on Google Maps

To draw a line on Google map, we use a polyline. The Polyline class defines a linear overlay of connected line segments on the map. A Polyline object consists of an array of LatLng locations and creates a series of line segments that connect those locations in an ordered sequence.…