Hi - I have been using this in production for a few months now, and haven’t experienced significant issues with debugging or troubleshooting.
It also helps that the library is type-safe - if we are overriding a function, we must comply with the signature of the original function for TS to pass.
Wrt. run time errors, the use of proxy does not interfere with good stack traces, if that is what you are worried about.
If we take the example in this gist where an overriden function throws an exception, we can see that the stack trace clearly shows the file (which overrides the hello function) where the exception is originating from.
In effect, the DX is not much different if you use any other mechanism for making some feature runtime configurable. In comparision to most traditional IoC/DI utilities I find the DX to actually be superior:
@Inject/@Provide
boilerplate. This is great if you are writing a library or a small utility and don’t want to enforce usage of a specific DI/IoC library for your consumers.What we don’t have (and likely will never) is support for things like request scoped DI or hierarchy of IoC containers. In mostly-functional TS code I have seldom missed those patterns.
Yes, that mode works pretty well. In my case I don’t really own the types (they come from a third party source) so being able to to auto generate validators from them is very convenient.
I use it in the code generator mode (https://typia.io/docs/setup/#generation) that doesn’t require the tsc plugin integration and works well with other build tools (in my case esbuild) and arbitrary testing/code-coverage libraries.
A big caveat looks to be that paid plan pricing is not disclosed. So likely geared towards enterprise customers.