Cześć,
słowem wstępu. Mam API w C#, gdzie dla wielu usług mam bardziej lub mniej skomplikowane modele danych wejściowych/wyjściowych. Druga strona to front w js/ts, który z tych usług korzysta.
Napisałem już program, który przeczesuje modele w API i tworzy typowane obiekty w js/ts. To się w ogólności sprawdza.
Jednak. API ciągle jest poszerzane o nowe usługi, gdzie w konsekwencji uwspólniam kod, pojawia się sporo generyków, abstrakcji, dziedziczenia itd. Wcześniej kiedy miałem prostszy model w C# z prostym dziedziczeniem to konwertowany model do js/ts był tym ostatecznym, złożonym w runtime.
Teraz kiedy zachodzi potrzeba używać w js/ts klas pośrednich, wielo-generyków itd. zachodzi potrzeba przepisania programu do konwersji.
Aktualnie otrzymuję z takiego kodu C#
class A {
string name
}
class B: A {
string surname
}
class C: B {
int age
}
taki obiekt js/ts
interface C {
name: string
surname: string
age: number
}
Przeszukałem trochę neta, przeanalizowałem pracochłonność zmiany. Pytanie brzmi czy jest jakieś oprogramowanie by z dowolnego obiektu C# stworzyć jako tako 1:1 obiekty js/ts z dziedziczeniem, by uzyskać coś w kierunku:
interface A {
name: string
}
interface B implements A {
surname: string
}
interface C implements B {
age: number
}
Link, nazwa, będę wdzięczny.