| Tan Li Hau's Blog
Parse and derive types from string literal types in TypeScript using the Template Literal Types, turning `'/purchase/[shopid]/[itemid]/args/[...args]'` into `{ shopid: number, itemid: number, args: string[] }`| Tan Li Hau's Blog
| Tan Li Hau's Blog
| Tan Li Hau's Blog
| Tan Li Hau's Blog
I am going to share an anecdote on how I implemented {#key} logic block in Svelte| Tan Li Hau's Blog
| Tan Li Hau's Blog
| Tan Li Hau's Blog
| Tan Li Hau's Blog
| Tan Li Hau's Blog
Svelte issue #5012 - Slot containing only {@html value} renders in wrong place on update| Tan Li Hau's Blog
How to retry asynchronous function using the callback pattern, promise chain and async await. Mental model for asynchronous JavaScript.| Tan Li Hau's Blog
I am going to tell you an anecdote on how I investigated and fixed a bug in Svelte. I documented down my train of thoughts as detailed as possible. I hope this gives anyone who is reading, a glimpse on how to work on the Svelte source code.| Tan Li Hau's Blog
| Tan Li Hau's Blog
The Svelte compilation process can be broken down into 4-steps, 1) parsing source code into AST, 2) tracking references and dependencies, 3) creating code blocks and fragments, and 4) generate code.| Tan Li Hau's Blog
| Tan Li Hau's Blog
| Tan Li Hau's Blog
| Tan Li Hau's Blog
| Tan Li Hau's Blog
In this talk, I will be exploring how you can develop your Chrome extension, and how you can use it to improve your development workflow| Tan Li Hau's Blog
| Tan Li Hau's Blog
It all started with an error message during the build: 'ERROR in bundle.xxx.js from Terser'.| Tan Li Hau's Blog
Reactivity is the ability of a web framework to update your view whenever the application state has changed. How do web frameworks achieve reactivity?| Tan Li Hau's Blog
A quick walkthrough on how I created my pet in the browser for the Super Silly Hackathon 2019.| Tan Li Hau's Blog
Step-by-step guide on implementing a JSON parser| Tan Li Hau's Blog
A thought experiment on how you can pause and resume the execution of a JavaScript function| Tan Li Hau's Blog
Short stories while working on Svelte, and some personal takeaway.| Tan Li Hau's Blog
Why would I install a package with so many files and dependencies, just to do a something simple that can be done in 12 lines of code?| Tan Li Hau's Blog
Manipulating AST is not that hard anyway| Tan Li Hau's Blog
We've built a simple bundler to bundle javascript code. Let's add CSS, HTML and serve it in the browser!| Tan Li Hau's Blog
Forking babel parser and creating your custom JavaScript syntax isn't as hard as you think.| Tan Li Hau's Blog
In my previous article, I explained how module bundler works. In this article, I am going to show you how I wrote my module bundler...| Tan Li Hau's Blog
...said me to my colleague, "If I could come up with a program to solve this, I would stop playing it"| Tan Li Hau's Blog
Writing your first babel plugin| Tan Li Hau's Blog
What happened when you do a rebase| Tan Li Hau's Blog
understand how module bundler works| Tan Li Hau's Blog
| Tan Li Hau's Blog
Starting my notes| Tan Li Hau's Blog
| Tan Li Hau's Blog
...for Chrome, Firefox and Safari| Tan Li Hau's Blog
😱| Tan Li Hau's Blog
and how we solved them| Tan Li Hau's Blog
| Tan Li Hau's Blog
The motivation of CSS splitting arises when we try to split our CSS styles and lazily load the styles only when we actually need them. CSS code splitting is one of our many efforts where we constantly improve the performance of the application.| Tan Li Hau's Blog
How to know when object property get accessed or modified| Tan Li Hau's Blog
About the tools frontend developer used in 2019| Tan Li Hau's Blog
A template which I used| Tan Li Hau's Blog
and how I figured out why.| Tan Li Hau's Blog
that get my emoji showing in my chrome extension| Tan Li Hau's Blog
How to hint uglify-js that your function is pure| Tan Li Hau's Blog
...and this is what I've learned| Tan Li Hau's Blog
How to inject reducer asynchronously| Tan Li Hau's Blog
I opened up my browser’s developer console for no reason, and I found this| Tan Li Hau's Blog
Setting up Travis CI for your NodeJS Github repo!| Tan Li Hau's Blog
Background5 years ago, I wrote Compile Svelte in your head. That was written for Svelte 3.But now, almost 1 year into Svelte 5 release, which introduce tons of new features, such as runes, fine-grained reactivity, and more, ...| lihautan.com