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

Won't build with Webpack 5 #455

Closed eric-burel closed 6 months ago

eric-burel commented 2 years ago

Hi, I got this message when trying to deploy the latest version ( Found "simpl-schema@1.12.0" ) to Vercel:

BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.
--
20:00:50.184 | This is no longer the case. Verify if you need this module and configure a polyfill for it.
20:00:50.184 |  
20:00:50.185 | - add a fallback 'resolve.fallback: { "buffer": require.resolve("buffer/") }'
20:00:50.185 | - install 'buffer'
20:00:50.185 | If you don't want to include a polyfill, you can use an empty module like this:
20:00:50.185 |  
20:00:50.185 | Import trace for requested module:
20:00:50.185 | ./node_modules/simpl-schema/dist/SimpleSchema.js
20:00:50.185 | ./node_modules/simpl-schema/dist/main.js
20:00:50.185 | ./src/models/user.ts
20:00:50.185 | ./src/pages/admin/crud/VulcanUser.tsx

Do I actually need to polyfill "buffer" client-side?

The quickfix is:

  // Fix issue with simpl-schema importing buffer
  config.resolve.fallback = {
    ...(config.resolve.fallback || {}),
    buffer: false,
  };

But usually this issue is the smell of a leak of server-side code within the client

github-actions[bot] commented 2 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 6 months ago

This was fixed back in 1.6.2 but I neglected to close this