I've just tagged a new release of Crell/Serde, version 1.2.
This release includes support for Unix timestamps, makes TypeFields more flexible and customizable, and fixes an issue with handling null values. Note that the latter fix has a very small BC break that only impacts a select number of custom Importers, so odds are you won't notice.
I think in English when you write formal text you spell the numbers until 10. From there on you just write the number. #Laravel can help with that using the 'Number::spell' helper.
TIL that #Statamic ships with the 'isCpRoute()' function, which allowed me to make my code a little more compact. The function will check if the current route is a control panel route or not. Here's the old and new code. Feels refreshing 😁
I just started a plain typescript project, and was too lazy for a docker setup so I just installed Node with apt and went on my way.
I installed Typescript, that went fine, but when trying to use it it gave a vague error.
Quick search fixed it, but... I'm amazed by the cause: Typescript didn't support the version of Node I had installed, which sure.. That's okay. But why didn't NPM tell me this? NPM does not have node version constraints?!?
@thomastospace every time I try another language, I feel blessed that I'm able to work with the most powerful and reliable package manager of the world. Nothing beats #composer
@jaapio While composer is useful, it's not always the bee's knees, especially during major updates involving multiple packages.
Some of the error messages are completely useless and I have spent hours trying to find the problem. I have often wished I could switch to another language because I was stuck in composer update hell.
For example, I have fewer problems with Go modules and rust dependencies via rusts cargo. Both update more smoothly.
I've just seen a #programming pattern in #PHP where a method could return two lists of things. Instead of doing that, it takes as a parameter a callable, and passes the two lists to the callable. Instead of:
[$a, $b] = getLists($param);
// Act on both lists.
we have:
$callable = function($a, $b) {
// Act on both lists
}
actOnLists($param, $callable);