NgRx Selector Performance

NgRx selectors promise performance gains via memoization. However, we must take care when defining...

— Feb 19 '20 84

Use npm pack to test your packages locally

When working with npm packages you often want to test your package without having to publish it to...

— Feb 18 '22 61

Understanding async tests in Angular

If you are testing an Angular application, then at some point, you will be required to test...

— Apr 25 '22 60

Change Detection: Getting in the (Angular) Zone!

Who knew an event binding in one component could cause a display bug in another? We will explain the...

— Jan 24 '20 54

Does Angular Support Generic Component Types?

You may be familiar with writing Typescript Generics like Grid<IRowData> but how does this work...

— Dec 20 '22 53

NgRx 9: Introducing strictActionWithinNgZone runtime check

NgRx 9 brings us a brand new runtime check: strictActionWithinNgZone. If enabled, this check will hig...

— Mar 10 '20 26

Introducing TestCases to Typescript

I want to test a Typescript function with lots of varied inputs to ensure good coverage. How do I go...

— Dec 17 '19 17

Regex search and replace with VS Code

I wanted to upgrade ag-grid across a number of apps. Standard search and replace did not work due to...

— Jun 23 '20 15

Generate array of all an interface's keys with Typescript

When working with a large and complex code base like AG Grid it is very easy to miss updating certain...

— Jul 24 '23 13

VS Code: It's taking a while to configure your breakpoints"

I love using VS Code to run and debug local scripts. However, I had noticed that starting up the task...

— May 12 '22 10

Test that every MutationObserver is disconnected to avoid memory leaks

MutationObserver is a useful mechanism to watch for changes in the DOM and respond to them. The...

— Aug 22 0

Supporting Circularly Referenced Mapped Types in Typescript

Recursive structures are very common across many applications but they can pose a big challenge to...

— Sep 22 '23 4

Code Refactoring with Regex Find and Replace

When faced with a major refactoring task across your codebase don't forget you can use Regexes to do...

— Oct 14 '22 1

Write Typescript in the browser with SystemJs

(This post is just a rough public note about a side effect of some of my work. May or may not be...

— Sep 13 '22 3

Use Arrow function, () => {}, to correctly bind this

As part of my role working for AG Grid I get to see a number of repeated issues. One such issue that...

— Apr 25 '22 7

Setting up a Certificate for localhost

(This post is mainly a public note for myself but maybe will help others too.) Self Signed...

— Jan 7 '22 6

Adding a layer of more explicit typings on top of 3rd party library interfaces

You may have noticed that the typing provided by 3rd party libraries often feels very loose. This sho...

— May 18 '21 1

ngTemplateOutlet: The secret to customisation

ngTemplateOutlet is a powerful tool for creating customisable components. It is used by many Angular...

— Dec 2 '20 8

Understanding ngrx/component-store debounceSync()

In the previous post we looked at the debounce option for @ngrx/component-store selectors and how it...

— Oct 12 '20 8

Understanding @ngrx/component-store Selector Debouncing

@ngrx/component-store selectors have a debounce option that lets the state settle before emitting....

— Oct 6 '20 6