Promise returned by async functions

Posted on 2025-05-24 in Programmation • Tagged with JavaScript, TypeScript

Recently at work, I encountered a problem with a function that should have returned a custom promise subclass. The goal of this subclass is to be able to call a cancel method to cancel some pending action done within the promise and then reject it. It looks like this:

class …

Continue reading

Using JavaScript and TypeScript in jupyter notebook

Posted on 2025-05-23 in Trucs et astuces • Tagged with Python, JavaScript, TypeScript

While wandering how to run some tests with JavaScript, I discorvered that deno, a JavaScript runtime like NodeJS, has support for jupyter notebooks thanks to this article. It works perfectly. Install deno (probably available in your distribution repositories), run deno jupyter --install and you are good to go!

To get …


Continue reading

Offline support almost without Javascript

Posted on 2024-02-27 in Programmation • Tagged with PWA, HTML, Javascript

Recently I wandered wether I could build a website with offline support without building a full SPA. The answer is yes it’s doable: you only need Javascript for the service worker. Just for the fun, I also tried it with navigation done with HTMX and without much surprise it …


Continue reading

Writing RSS reading app with various frontend frameworks

Posted on 2023-09-09 in Programmation • Tagged with Web, Javascript, Typescript, React, Angular, Svelte, Vue

During the summer, I decided to test a few frontend framework to see what’s going on in this space and form a better opinions over alternatives to React. I tested Svelte because after hearing from it I felt attracted to it, Vue because it is popular, React to have …


Continue reading

React hook to load fonts

Posted on 2022-06-11 in Trucs et astuces • Tagged with JavaScript, React

If you need to load a specific font in a component, you can use this hook. It will return true when the fonts are loaded. It relies on the document.fonts API to load the fonts. If the fonts are already loaded, the promise will be fulfilled immediately and the …


Continue reading

Yarn workspaces and mono repos

Posted on 2022-02-06 in Programmation • Tagged with Devops, JavaScript

I currently work in a small startup with two other developers. We have three projects: an API written in Python with the Django web framework, a big React app and a website written with NextJS. All these project are in the same git repository. This allows us to easily share …


Continue reading

Testing the re-frame Clojure frontend framework

Posted on 2022-01-16 in Programmation • Tagged with JavaScript, Clojure

I wanted to test re-frame a Clojure framework for building user interfaces. It is built on top of Reagent a Clojure library to interface with React in ClojureScript. The main goal of this framework is to help you manage the state of your application. To do that, you need to …


Continue reading

Testing the Svelte JS framework

Posted on 2022-01-03 in Programmation • Tagged with JavaScript

After hearing good things about the Svelte JS framework, I decided to give it a try. To test it, I did something very original: the classic TODO app. You can see a picture of the end result on the screenshot below.

The styled app

Here are my impressions after this tests:

  • Despite using …

Continue reading

Generate PDF from React components

Posted on 2021-09-26 in Programmation • Tagged with JavaScript, React, Chrome, Puppeteer

How do you generate a PDF from any React components? I am not talking about just allowing your users to print a page into a PDF with their browser, I am talking about transforming a page as PDF programmatically and saving it server side. The idea is for our user …


Continue reading

Make JS code communicate with a ServiceWorker

Posted on 2020-08-18 in Programmation • Tagged with JavaScript, Web, ServiceWorker

If you need to send data from your JS code to your ServiceWorker, you can do it like this:

navigator.serviceWorker.register("./sw.js").then(registration => {
    registration.active.postMessage("Some message");
});

You can then rely on this code in the ServiceWorker to read the message:

self.addEventListener("message", event => {
    console …

Continue reading