mholt/PapaParse
43.9
Weak · 1 October 2026
4.1k
lines of production code
JavaScript
primary language
2
measurements over time
What this system is
Papa Parse is a JavaScript library for parsing and generating CSV data in both browser and Node.js environments. It supports streaming, chunking, and worker threads for handling large files, along with features like pausing/resume and skipping initial lines. The system also includes an unparse function to convert data back to CSV format and provides a demo interface for testing various parsing configurations.
Features
Initial release of Papa Parse v5.7.0
This change introduces the initial commit for version 5.7.0 of Papa Parse, establishing the core library files (papaparse.js, papaparse.min.js) and build infrastructure (Gruntfile.js, .eslintrc.js, bower.json). It adds the \downloadTimeout\ configuration option to abort slow remote requests, implements \skipFirstNLines\ to skip initial lines before parsing, and exposes \renamedHeaders\ in the parse result metadata to track duplicate header mappings. The release also removes the optional jQuery plugin integration, strips the UTF-8 Byte Order Mark (BOM) from header column names, and corrects the quoting and escaping of custom quote characters during unparsing.
(repo-wide) · high confidence
New Papa Parse Player demo page with pause/resume and unparse support
The player directory now includes a complete demo interface (HTML, CSS, and JavaScript) for testing Papa Parse. This page allows users to configure parsing options such as streaming, chunking, worker threads, and fast mode. It introduces new capabilities including the ability to pause and resume parsing via the step and chunk callbacks, support for skipping the first N lines, and a new 'Unparse' button that converts data back to CSV format. The demo also integrates jQuery 3.5.1 and provides visual controls for delimiters, line endings, and file uploads.
player · high confidence
Test coverage
Initial test suite and Node.js support
Added a comprehensive test suite for PapaParse, including Node.js-specific tests (node-tests.js) and browser tests (tests.html with Mocha/Chai). The suite covers core parsing, streaming, pause/resume functionality, and error reporting, supported by sample CSV files (long-sample.csv, verylong-sample.csv, etc.) and an ESLint configuration for the tests directory.
tests · high confidence
Dependencies
Initial package.json for PapaParse v5.7.0
This change introduces the package.json manifest for PapaParse version 5.7.0, establishing the project's npm configuration. It defines the library as a CSV parser with a main entry point of papaparse.js and a browser-specific build of papaparse.min.js. The manifest includes a set of development dependencies required for the build and test process, specifically chai, connect, eslint, grunt, grunt-contrib-uglify, mocha, mocha-headless-chrome, open, and serve-static. It also configures npm scripts for linting, building, and running tests in both Node.js and headless Chrome environments.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 46 → 44 (-2.3)
- Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.
Lenses
- Code Health 35 → 30 (-4.8)
- Architecture 90 → 96 (+5.5)
- Maturity 49 → 48 (-1.3)
- Readiness 56 → 57 (+1.2)
- Security 86 → 86 (+0.0)
- Accessibility 53 → 53 (+0.0)
New (30)
- FileTooLong: js/papaparse.js (docs/resources/js/papaparse.js)
- FileTooLong: papaparse.js (papaparse.js)
- FunctionTooLong: papaparse.JsonToCsv (docs/resources/js/papaparse.js)
- FunctionTooLong: papaparse.JsonToCsv (papaparse.js)
- FunctionTooLong: papaparse.Parser (docs/resources/js/papaparse.js)
- FunctionTooLong: papaparse.Parser (papaparse.js)
- FunctionTooLong: papaparse.ParserHandle (docs/resources/js/papaparse.js)
- FunctionTooLong: papaparse.ParserHandle (papaparse.js)
- papaparse.ChunkStreamer (cognitive 18) (docs/resources/js/papaparse.js)
- papaparse.ChunkStreamer (cognitive 18) (papaparse.js)
- papaparse.ChunkStreamer (cyclomatic 36) (docs/resources/js/papaparse.js)
- papaparse.ChunkStreamer (cyclomatic 36) (papaparse.js)
- papaparse.CsvToJson (cognitive 16) (docs/resources/js/papaparse.js)
- papaparse.CsvToJson (cognitive 19) (papaparse.js)
- papaparse.CsvToJson (cyclomatic 17) (docs/resources/js/papaparse.js)
- papaparse.CsvToJson (cyclomatic 19) (papaparse.js)
- papaparse.JsonToCsv (cognitive 103) (docs/resources/js/papaparse.js)
- papaparse.JsonToCsv (cognitive 109) (papaparse.js)
- papaparse.JsonToCsv (cyclomatic 75) (docs/resources/js/papaparse.js)
- papaparse.JsonToCsv (cyclomatic 86) (papaparse.js)
- …and 10 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
mholt/PapaParse was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 1 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 4843fc2021bbe04bdc176e71f4c9f8f8388af7bc — the exact code this score is about.
- Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.