Roadmap #58
Replies: 7 comments 18 replies
-
Hi @avin-kavish, glad to hear it, unfortunately idk if I can make it in 2-3 months. I'm working on the new version with rewritten core, cuz this core has some issues in specific areas. I've split this lib into more packages, changed the configuration and a few things in the runtime package (eg. names of some classes Property -> PropertyInfo; some properties into methods and so on) to standardize the interface and make it stable. Workflow remains the same. Current version is IMHO stable JUST for some specific use cases. Nobody has used this lib in a big project on complex types yet. The runtime has tests so the runtime is quite well covered but TypeScript allows a lot of stuff to do with the types and the transformer do not cover it all. It is possible to update current runtime to match new interface from the new version, so it will break now, not later. Regarding your points:
|
Beta Was this translation helpful? Give feedback.
-
yes. Typescript compiler is quite slow already (compared to transpilers like swc). I wouldn't want it to process my npm packages again and again. I'll just test the current implementation as is and let you know if further improvents are desirable. Regarding complex types, I'm just happy if it fails silently and returns
One stability issue I ran into was duplicate type information with different I don't think I'm in a rush to get your updated logic. I have all the features I need with the current version. So just with ES module support, it'd be good to go for me. |
Beta Was this translation helpful? Give feedback.
-
Okay, so I'll tweak the transformer a little. 🙂 There were an old The # number is ID of the type generated by the TypeScript compiler itself. (negative numbers are generated by this lib in case the type has no ID) There should be no difference in IDs for the same type. Well, maybe it can be caused by type aliases. I'll write some tests. |
Beta Was this translation helpful? Give feedback.
-
Found it! interface Foo {}
interface Bar {}
interface Logger<T> {}
console.log(getType<Logger<Foo>>().fullName) // Logger#95
console.log(getType<Logger<Bar>>().fullName) // Logger#98 Maybe it's unpacking generics like c#, by creating two versions behind the scenes. |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Ran into another case of |
Beta Was this translation helpful? Give feedback.
-
Got another case of the same type having two type ids, not even a generic this time. |
Beta Was this translation helpful? Give feedback.
-
Hey @Hookyns, I'm using
tst-reflect
in a pretty serious open-source project. I'm looking to have a stable but beta release of it in 2-3 months. There are a few things I need on this end to support that. So I'm wondering what are your plans and commitment to this library?Namely I need,
Beta Was this translation helpful? Give feedback.
All reactions