fast-check icon indicating copy to clipboard operation
fast-check copied to clipboard

Consider separating the arbitrary system to a separate package so we can use it just for data generation

Open CMCDragonkai opened this issue 3 years ago • 3 comments

💡 Idea

I'm thinking of using the arbitrary system as a very powerful fake data generator for some database work. But it doesn't involve any js based testing.

Motivation

Would be nice to just import the code necessary for arbitraries instead of bringing all the other utilities for testing.

Example

import arbitraries from 'fast-check-arbitraries`

CMCDragonkai avatar Dec 29 '22 12:12 CMCDragonkai

Splitting fast-check into sub-packages was initially the motivation guiding us to adopt a monorepo approach but it came with an extra maintenance cost:

  • more release notes to write
  • harder to make sure versions are compatible together
  • higher risks of duplicated packages on client's side with high risk for symbols and co (used internally for various stuff)

But benefits are low. Actually, basic tree shaking already offers such capabilities without the overhead on package side. Only requirement on fast-check's side being to be tree shakeable (not yet the case). But if we start being tree shakeable it should solve most of the issues.

dubzzz avatar Jan 01 '23 01:01 dubzzz

To make my answer clearer: tree shaking will probably be a first step, then split will probably happen but the exact split will require a deep thinking given the possible additional costs it might bring

dubzzz avatar Jan 01 '23 02:01 dubzzz