Get Root $index Value From Within Nested Aurelia Repeaters

Recently in an Aurelia project, I was working with nested repeaters (3 levels deep). The problem was I needed to get the $index from the top level repeater (so, level one). Instinctively, I presumed that you could do this: $parent.$parent.$parent.$index This does not work. The $parent variable only extends to the parent and cannot be … 

 

Aurelia Routing + Switching Root Using setRoot

In your Aurelia applications, you might have two or more roots defining different entry points into your application. I personally create a public facing root which has public routes and an auth protected shell which has routes for logged in users only. Let’s say for this example you have two roots: publicRoot and privateRoot. Your … 

 

Module ES2015 and TypeScript 2.4 Dynamic Imports

Introduced in TypeScript 2.4 is support for the ECMAScript dynamic imports feature. If you didn’t see the announcement or read it properly, you’re probably here because you’re getting the following error. In my case I use Webpack and I was trying to add in some dynamic import goodness and getting this error: Dynamic import cannot … 

 

Exciting New Firebase Features Announced at Google IO 2017

Admittedly, Google’s developer event IO has grown to be quite interesting the last couple of years. This year (2017) I was excited to see what would be announced in the world of Firebase. I’ve been using Firebase on and off for the last couple of years. Recently, I’ve found a renewed sense of excitement in … 

 

Auth Protected Routes in Aurelia With Firebase

sing both Aurelia and firebase together is exceptionally convenient for my workflow. When it comes to authentication, I have certain routes I want to protect. The best way to add in authentication checks for routes in Aurelia is to create a router pipeline step. Specifically, an authorise pipeline step. Because of the way Firebase uses … 

 

I Like Competitions

Kind of a strange post from what I usually post, but the last few months I have been addicted to entering online competitions. The fact I have won a few great prizes in just a few months probably helps. I won a runner up prize which was an LG television and then I won a … 

 

Enabling CORS Middleware In Firebase Cloud Functions

Firebase Cloud Functions are great, but there might come a time where you need CORS support. This can be enabled easily by using the CORS middleware. The documentation does detail part of the process, but it doesn’t mention you need to install the cors package and also specify origin: true as a configuration option. If … 

 

Convert A Firebase Database Snapshot/Collection To An Array In Javascript

Because Firebase is a NoSQL JSON data store, you might have noticed that when you get some data from Firebase that it is an object. If the title wasn’t obvious enough, we are talking about using Firebase Realtime Database in a web application. Take the following example: firebase.database().ref(‘/posts’).on(‘value’, function(snapshot) { console.log(snapshot.val()); }); Let’s imagine that … 

 

Aurelia Dynamic Compose + Webpack = Module ID Not Found

If you’re using the latest and greatest Webpack plugin for Aurelia, there is a possibility if you use the <compose> element to dynamically render UI you will run into an issue where Webpack doesn’t know about the dynamic imports. Specifically, I am talking about usage of <compose> that might look like the following: <template> <compose … 

 

Aurelia Dynamic Views From Strings Using InlineViewStrategy

The flexibility of Aurelia means there are many ways to achieve a task. The default convention of view/view-model will meet your needs a lot of the time, but sometimes you might need a little more power. You might already know of the ability to define views inline (inside of your view-models) using the inlineView decorator, …