unassert-js / unassert

Encourages programming with assertions by providing tools to compile them away.
MIT License
192 stars 13 forks source link

Q: Is there interest in adding more assertion libraries? #22

Open wooorm opened 3 years ago

wooorm commented 3 years ago

Background

I’m using assertions in micromark. It’s a complex parser using state machines. It’s also extendable with plugins. So assertions makes it much easier to reason about.

I’m using an export map to differentiate between code that does have assertions, and code that doesn’t: https://github.com/micromark/micromark/blob/a03a08ce677b91a2960be2f4fcaacd64b3b8ec18/packages/micromark/package.json#L55-L58. Most people will get unasserted files. With node --conditions development, code with assertions is loaded. This is very useful when making plugins.

Problem

Solution

I can do the work on adding one.

/cc @twada

Related-to: micromark/micromark#87, micromark/micromark#95.

falsandtru commented 3 years ago

Have you tried to change the options?

https://github.com/unassert-js/unassert#options

wooorm commented 3 years ago

Ah. Thanks and sorry.

My question is most specifically about https://github.com/unassert-js/babel-plugin-unassert/blob/210a5c6e45c0c3d6d963f6f21efcf9d0094f177e/index.js#L29, because I’m using that, and I don’t think it has such an option. I posted it here as this was more a question for the whole unassert org

wooorm commented 3 years ago

But if there’s an option here already, then there could perhaps also be an option there to allow other values than ['assert', 'node:assert', 'power-assert']?

twada commented 3 years ago

Hello @wooorm, and thanks to @falsandtru. That's a nice suggestion and relatively easy add some import/require options to babel-plugin-unassert. I'll work on it.

falsandtru commented 3 years ago

Can you support options also with gulp-unassert?

twada commented 3 years ago

@falsandtru Yes. I'll support it. (maybe after #21 or before it since #21 is a little difficult one)

falsandtru commented 3 years ago

Thanks.

wooorm commented 3 years ago

This is a very pressing issue for me btw, so I can do the work to support it in the babel plugin if that means it can then be released soonish?

twada commented 3 years ago

@wooorm I mean adding options to babel-plugin-unassert is reatively easy, so it will be released soon. Adding options to gulp-unassert is slightly difficult (due to the blocking issue).

wooorm commented 3 years ago

ah okay, thanks <3

twada commented 3 years ago

@wooorm babel-plugin-unassert v3.2.0 is out. Thank you for your suggestion!

Release v3.2.0: customization options (2021-10-09)

wooorm commented 3 years ago

That's awesome! Thank you! 🌸