Comics: I am your father!

Opublikowano: 31.10.2022 - tagi: Podsumowanie Październik 2022 Blog
W październiku opublikowałem 7 wpisów:
RxJS:
JavaScript:
Narysowałem dwa komiksy:
Przeczytałem trzy książki:
Przesłuchałem dwa audiobooki:
Opublikowano: 27.10.2022 - tagi: JavaScript RxJS Operator
Operator concatMap służy do pobrania danych ze źródła typu Observable.
Działa w taki sposób, że czeka, aż zakończy się aktualne wywołanie z podanego źródła i wywołuje ewentualnie następną emisję danych.
Jeśli zależy Ci na kolejności wywołań z danego źródła użyj concatMap.
import { fromEvent, of } from 'rxjs';
import { concatMap, delay, map } from 'rxjs/operators';
const click$ = fromEvent(document, 'click');
click$.pipe(
concatMap((event) => of(event).pipe(
map(event => ({
x: event.clientX,
y: event.clientY
})),
delay(1000)
)),
).subscribe(console.log)
Kliknij gdziekolwiek na stronie dwa razy. Co sekundę będą wyświetlane koordynaty poszczególnego kliknięcia. W podanej kolejności: pierwsze kliknięcie, drugie itd.
Opublikowano: 25.10.2022 - tagi: JavaScript Tablica
W jednym z poprzednich wpisów poruszałem temat: jak umieścić element w konkretnym miejscu w tablicy. W tym opiszę, jak dodać wiele elementów do tablicy, w określonym miejscu.
Mamy dwie tablice:
const tab1 = [1, 2, 3];
const tab2 = [6, 5, 4];
I chcemy dodać elementy tablicy tab2 do tab1. Na przykład tak:
[1, 2, 6, 5, 4, 3]
Możemy to zrobić za pomocą funkcji splice z klasy Array:
const tab1 = [1, 2, 3];
const tab2 = [6, 5, 4];
tab1.splice(2, 0, ...tab2);
console.log(tab1); // [1, 2, 6, 5, 4, 3]
W pierwszym parametrze informujemy splice, w którym miejscu chcemy dodać nowe elementy. W drugim podajemy 0, ponieważ nie chcemy nic kasować z tablicy. I w końcu w ostatnim parametrze podajemy listę elementów, które chcemy dodać.
splice modyfikuje tablicę, na której została ta funkcja wywołana.
Opublikowano: 22.10.2022 - tagi: Jest JavaScript TypeScript Konfiguracja Testowanie
W tym wpisie podam jak skonfigurować Jest w dwóch wersjach: dla JavaScript i TypeScript.
Wywołaj komendę:
npm install --save-dev jest
Stwórz plik o nazwie: jest.config.json i dodaj taką zawartość:
{
"testRegex": "((\\.|/*.)(spec))\\.js?$"
}
Taka konfiguracja informuje Jest, że ma uruchamiać testy, które znajdują się w plikach z rozszerzeniem: .spec.js.
npm i --save-dev ts-jest @types/jest
Stwórz plik o nazwie: jest.config.json i dodaj taką zawartość:
{
"preset": "ts-jest",
"testEnvironment": "node",
"testRegex": "((\\.|/*.)(spec))\\.ts?$"
}
W wersji dla TypeScript, Jest będzie szukać plików z rozszerzeniem: .spec.ts.
Mamy skonfigurowane środowisko. Czas sprawdzić, czy to działa.
Dodajmy jeszcze takie wpisy do pliku package.json w sekcji: scripts:
{
"scripts": {
"test": "jest --config ./jest.config.json",
"test:watch": "npm run test -- --watch"
},
}
Pierwszy skrypt uruchomi nam raz testy, bazując na naszym pliku konfiguracyjnym. Drugi skrypt zrobi to samo, ale dodatkowo będzie nasłuchiwać na ewentualne zmiany.
Stwórz plik z rozszerzeniem: .spec.js lub .spec.ts i dodaj zawartość do pliku:
test('First test', () => {
expect('Foo').toEqual('Foo');
});
Na koniec wywołaj jeden ze skryptów:
npm run test
lub:
npm run test:watch