tulios / mappersmith

is a lightweight rest client for node.js and the browser
https://www.npmjs.com/package/mappersmith
MIT License
335 stars 72 forks source link

[idea] support major datatype/schema validation tools like ZOD/JOI/IO-TS/etc #456

Open OleksandrKucherenko opened 8 months ago

OleksandrKucherenko commented 8 months ago

Refs:

provide a set of good examples that demonstrate usage of those libraries and how developer can auto-generate code with them

klippx commented 8 months ago

We use mappersmith with Zod in our projects, and in my view this is orthogonal to the request cycle imo, since it is completely optional to validate input data and output data. So request/response = mappersmith, validating can be done before or after != not mappersmith.

That said, if you want to blur the line a bit and you decide you want to do this in e.g. a middleware, then that is completely possible! But it is up to the consumer code in userland to figure out how to use any arbitrary foreign library with mappersmith, including Zod.

Zod has their own documentation on how to use it and how to auto generate code / types, and to my knowledge there is no missing overlap between Zod and Mappersmith that we might be interested in adding.

If I am missing a perspective (possibly due to lack of imagination on my part) I would of course be happy to see an example repo pointing out the missing pieces.

OleksandrKucherenko commented 8 months ago

Providing examples and modifying mappersmit - two different kind of tasks.

Provide examples solves problems:

I understand that you want to stay conservative on mappersmith updates, but it does not mean that you should not demonstrate to others how mappersmith integrated into modern TS libs stream.

klippx commented 7 months ago

I think it is a nice idea, we do not have advanced documentation (just a big readme) to accommodate jumping and navigating between sections, so I think that would be nice to have first. But then we can definitely add integrations to other libraries in a discoverable and digestible way.