Wróć do strony głównej
Ostatnia aktualizacja:16 lip 2020

18. Asynchroniczny Schematic

Schematics mogą być również asynchroniczne. Wyobraźmy sobie scenariusz, że Schematic wykonuje call do REST API i na podstawie odpowiedzi z konkretną encją, tworzy jej typ jako interfejs. W takiej sytuacji, Schematic będzie asynchroniczny z powodu wykonania zapytania Http.

W trakcie tutoriala, pisaliśmy Rules, które zwracają Tree. W przypadku asynchronicznych Schematics, chcemy zwrócić Observable<Tree>. Należy pamiętać, że skrypt jest odpalony na platformie Node, zatem nie mamy dostępu chociażby do window.fetch(url). Zatem aby móc wykonać zapytanie HTTP,  instalujemy zależność node-fetch.

Jeśli umieścimy console.log z obiektem data, zobaczymy następujący log:

response

W środku then, możesz na przykład użyć biblioteki, która sprowadzi plain JS object do interfejsu TS, dzięki temu w bardzo prosty sposób uzyskujemy generator interfejsów na podstawie encji z BE. Taki obiekt z typami możemy wystawić sobie pod polem w options i wykorzytać go już w generowanym pliku.

Kod:

https://github.com/tomasznastaly/angular-schematics-tutorial/pull/12/files