longshotlabs / simpl-schema

A JavaScript schema validation package that supports direct validation of MongoDB update modifier objects
https://www.npmjs.com/package/simpl-schema
MIT License
560 stars 114 forks source link

Cleaning returns instance instead of pure object #409

Closed mariusrak closed 8 months ago

mariusrak commented 4 years ago

When I run schemaInstance.clean() with object of some class. I receive object of that class again. Problem is, that when the class adds some properties, they are in "cleaned" object again. So the object is polluted by the properties. Is this behavior expected and wanted or is it a bug? Can it be somehow prevented? For example by some option of clean()? Thanks

github-actions[bot] commented 4 years ago

Thank you for submitting an issue!

If this is a bug report, please be sure to include, at minimum, example code showing a small schema and any necessary calls with all their arguments, which will reproduce the issue. Even better, you can link to a saved online code editor example, where anyone can immediately run the code and see the issue.

If you are requesting a feature, include a code example of how you imagine it working if it were implemented.

If you need to edit your issue description, click the [...] and choose Edit.

Be patient. This is a free and freely licensed package that I maintain in my spare time. You may get a response in a day, but it could also take a month. If you benefit from this package and would like to see more of my time devoted to it, you can help by sponsoring.

aldeed commented 4 years ago

@mariusrak Clean is mostly intended / tested for simple objects. Have you tried setting mutate: true option (assuming that mutating the original instance would be okay)?

If you think it should be fixed, you'll need to post some simple reproduction code to better show the exact problem.

mariusrak commented 4 years ago

Since mutate is set to false, the object should be copied. Hence, I'd expect that it would copy only data and not instantiate same class.

aldeed commented 8 months ago

Closing since there is no reproduction to look at