-
-
Notifications
You must be signed in to change notification settings - Fork 684
Formidable monorepo and v4 perp #997
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
Signed-off-by: tunnckoCore <[email protected]>
Signed-off-by: tunnckoCore <[email protected]>
Signed-off-by: tunnckoCore <[email protected]>
Signed-off-by: tunnckoCore <[email protected]>
Signed-off-by: tunnckoCore <[email protected]>
Published v4 RC on What's cool is the |
Signed-off-by: tunnckoCore <[email protected]>
Signed-off-by: tunnckoCore <[email protected]>
Moving to a monorepo and TypeScript.
There will be couple of benefits with that like we can have v1, v2, v3 and others as separate directories and not separate branches. We can make CI builds based on that too.
I played with a lot of variants, so there will be:
packages/v1
(or similar), v2, v3,@mjackson/multipart-parser
forkWhat i just started realizing is that the HTTP Multipart is pretty bad, and there might be an alternative way to handle all that a lot better, like..
What if on the backend user defines
formidable(req, options)
but on his frontend he also get theformidableClient(e.target, options)
, the client side part will basically get theFileList
and send in parallel eachFile
to a server endpoint that is handled by theformidable(req)
and just does the validation and checking on the server.That way we can accept multiple requests at the same time and validate and stream to a third-party like S3 or the disk. Usually what happens is, no matter how many files and fields there are, on the server end we (any body parser) get just one stream that we gotta process "synchronously", there's no other way - but that's the nature of streams.
eg. in frontend
and then, on the endpoint backend, you just get the requests, validate it and send it wherever you want (disk or S3).