danfojs icon indicating copy to clipboard operation
danfojs copied to clipboard

The @types/papaparse package should be a dependency, not a devDependency

Open doomlaur opened this issue 3 years ago • 0 comments

Describe the bug When calling readCSV() with special options passed to CsvInputOptionsBrowser, TypeScript can't find the types because @types/papaparse is part of the devDependencies and not of the dependencies, resulting in the following error: Argument of type '{ skipEmptyLines: boolean; }' is not assignable to parameter of type 'CsvInputOptionsBrowser'. Object literal may only specify known properties, and 'skipEmptyLines' does not exist in type 'CsvInputOptionsBrowser'.ts(2345)

To Reproduce Write the following code while using TypeScript:

let data = await readCSV(fileNameWithoutExtension + ".csv", {skipEmptyLines: true});

Expected behavior The types should be included as dependency (not as devDependency) so that they are known to developers that use special options for papaparse together with danfo.js. I did not check yet whether it may also make sense for any of the other type packages.

I think your general approach to only include "types" packages as devDependencies makes perfect sense, but such special cases require a different approach. See this StackOverflow discussion.

doomlaur avatar Aug 18 '22 10:08 doomlaur