Open daedalus28 opened 3 years ago
I've got a WIP wrapper on my branch that implements all of the features I'd like to see added to fast-csv. My wrapper probably doesn't quite work in the general case (which is why it's not a PR) since I was only concerned with my use case of arrays of objects, but it might be helpful to take a look a the file:
https://github.com/smartprocure/contexture-export/blob/refactoring/src/modern/fast-csv-wrapper.js
Parsing or Formatting?
Is your feature request related to a problem? Please describe. This library is excellent - but right now, there is no way to format the headers. If I have an object with camelCase keys but want them formatted in a more friendly way, I can't use
fast-csv
's header support directly.Describe the solution you'd like I've thought about this quite a bit, and I think the simplest example would be a
transformHeaders
function similar to thetransform
method used for data. It would take a header and return a new value for it. A great example use case is lodash's_.startCase
.Describe alternatives you've considered I have a wrapper around this library that I'd like to deprecate, but what I've done is implement
transformHeaders
which will write an object as the first "record", creating a mapping from the header strings to new values. My implementation basically takes['a', 'b']
and writes{a: transformHeader('a'), b: transformHeader('b') }
. This works but feels like something that should be handled natively byfast-csv
.Additional context As I mentioned in my other ticket, I'm trying to totally rip out all CSV stuff from
contexture-export
and replace it withfast-csv
. WithtransformHeaders
and an object array row type, we can make it happen!