-
Notifications
You must be signed in to change notification settings - Fork 0
Pull from upstream #7
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: dev
Are you sure you want to change the base?
Changes from all commits
5e92fca
113d561
eaeb01a
0f75aeb
a6fdfcb
23e1b47
26a86fd
1f2c733
997c692
ec36ab2
e420595
6bb7c33
8dba33e
4132d81
a93c5c9
e11ee26
bb1ca4e
c19cd2d
0772457
bf19955
bde83f5
c1cbe16
aa00468
db230fc
970c1db
824bbd9
e728bfe
3e7c4bc
1f6cc9c
3a32901
e14a838
30bab45
713f7d8
b536555
841e1d4
f1d10ee
e2d570e
fbaeca2
a67ed3f
a39383e
016effe
a116779
cf4bded
4af6882
f490abb
338af86
4dca570
9c42a1e
d206124
d0f58aa
954c2a5
44c5686
c7e8321
e3c7b26
0eb59a0
a4f8b0f
08265f1
530357f
58bcb73
8ecc42d
565d821
b10b87e
cc8c801
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,58 @@ | ||
| # Changelog | ||
|
|
||
| ## 5.5.3 | ||
|
|
||
| ### Bug Fixes | ||
|
|
||
| - Avoid infinite loop with duplicate header counting (#1095) | ||
|
|
||
| ## 5.5.2 | ||
|
|
||
| ### Bug Fixes | ||
|
|
||
| - Only attempt to parse headers once, fixing performance issue (#1086) | ||
|
|
||
| ### Maintenance | ||
|
|
||
| - Do not run headless tests on CI (#1087) | ||
| - Fix package URL in package.json | ||
|
|
||
| ## 5.5.1 | ||
|
|
||
| ### Maintenance | ||
|
|
||
| - Revert "Remove ES6 features to allow minifying papaparse file" — updated `grunt-contrib-uglify` instead to support ES6+ | ||
| - Update grunt-contrib-uglify version | ||
| - Run build script in CI | ||
|
|
||
| ## 5.5.0 | ||
|
|
||
| ### Features | ||
|
|
||
| - Add `skipFirstNLines` option to skip first N lines before parsing (#1021, #738) | ||
| - Add `renamedHeaders` to parse result meta, reporting original-to-renamed header mappings (#990) | ||
|
|
||
| ### Bug Fixes | ||
|
|
||
| - Fix `escapeFormulae` option to handle boolean values correctly (#1025) | ||
| - Fix cursor position when encountering duplicated headers (#997) | ||
| - Only skip first N lines in the first chunk and don't incorrectly consume the header line (#1045, #1046) | ||
| - Refactor header renaming logic to correctly handle duplicates (#1058, #1052, #1007) | ||
|
|
||
| ### Performance | ||
|
|
||
| - Faster duplicate header detection using a header map (#991) | ||
| - Use `for` loop instead of `for...in` for header parsing to only iterate over array elements (#987) | ||
|
|
||
| ### Maintenance | ||
|
|
||
| - Update minimum ES version to 6 | ||
| - Documentation and README improvements (#1002, #1034, #1041, #1044, #1060) | ||
|
|
||
| ## 5.4.1 | ||
|
|
||
| ### Bug Fixes | ||
|
|
||
| - Remove jsperf.com links from README.md. (#986) | ||
| - Only test duplicate headers on first row | ||
| - Rename duplicated headers |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -303,7 +303,7 @@ <h5>Unparse Config Options</h5> | |
| <code>delimiter</code> | ||
| </td> | ||
| <td> | ||
| The delimiting character. It must not be found in <a href="#readonly">Papa.BAD_DELIMITERS</a>. | ||
| The delimiting character. Multi-character delimiters are supported. It must not be found in <a href="#readonly">Papa.BAD_DELIMITERS</a>. | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
|
|
@@ -343,7 +343,7 @@ <h5>Unparse Config Options</h5> | |
| <code>escapeFormulae</code> | ||
| </td> | ||
| <td> | ||
| If <code>true</code>, field values that begin with <code>=</code>, <code>+</code>, <code>-</code>, or <code>@</code>, will be prepended with a <code>'</code> to defend against <a href="https://www.contextis.com/en/blog/comma-separated-vulnerabilities" target="_blank" rel="noopener">injection attacks</a>, because Excel and LibreOffice will automatically parse such cells as formulae. | ||
| If <code>true</code>, field values that begin with <code>=</code>, <code>+</code>, <code>-</code>, <code>@</code>, <code>\t</code>, or <code>\r</code>, will be prepended with a <code>'</code> to defend against <a href="https://owasp.org/www-community/attacks/CSV_Injection" target="_blank" rel="noopener">injection attacks</a>, because Excel and LibreOffice will automatically parse such cells as formulae. You can override those values by setting this option to a regular expression | ||
| </td> | ||
| </tr> | ||
| </table> | ||
|
|
@@ -450,7 +450,8 @@ <h5 id="config-default">Default Config With All Options</h5> | |
| beforeFirstChunk: undefined, | ||
| withCredentials: undefined, | ||
| transform: undefined, | ||
| delimitersToGuess: [',', '\t', '|', ';', <a href="#readonly">Papa.RECORD_SEP</a>, <a href="#readonly">Papa.UNIT_SEP</a>] | ||
| delimitersToGuess: [',', '\t', '|', ';', <a href="#readonly">Papa.RECORD_SEP</a>, <a href="#readonly">Papa.UNIT_SEP</a>], | ||
| skipFirstNLines: 0 | ||
| }</code></pre> | ||
| </div> | ||
| <div class="clear"></div> | ||
|
|
@@ -470,7 +471,7 @@ <h5 id="config-details">Config Options</h5> | |
| <code>delimiter</code> | ||
| </td> | ||
| <td> | ||
| The delimiting character. Leave blank to auto-detect from a list of most common delimiters, or any values passed in through <code>delimitersToGuess</code>. It can be a string or a function. If string, it must be one of length 1. If a function, it must accept the input as first parameter and it must return a string which will be used as delimiter. In both cases it cannot be found in <a href="#readonly">Papa.BAD_DELIMITERS</a>. | ||
| The delimiting character. Leave blank to auto-detect from a list of most common delimiters, or any values passed in through <code>delimitersToGuess</code>. It can be a string or a function. If a string, it can be of any length (so multi-character delimiters are supported). If a function, it must accept the input as first parameter and it must return a string which will be used as delimiter. In both cases it cannot be found in <a href="#readonly">Papa.BAD_DELIMITERS</a>. | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
|
|
@@ -502,7 +503,8 @@ <h5 id="config-details">Config Options</h5> | |
| <code>header</code> | ||
| </td> | ||
| <td> | ||
| If true, the first row of parsed data will be interpreted as field names. An array of field names will be returned in <a href="#meta">meta</a>, and each row of data will be an object of values keyed by field name instead of a simple array. Rows with a different number of fields from the header row will produce an error. Warning: Duplicate field names will overwrite values in previous fields having the same name. | ||
| If true, the first row of parsed data will be interpreted as field names. An array of field names will be returned in <a href="#meta">meta</a>, and each row of data will be an object of values keyed by field name instead of a simple array. Rows with a different number of fields from the header row will produce an error. | ||
| Warning: Duplicated field names will be automatically renamed to avoid values in previous fields having the same name to be overwritten. Renamed fields with original (or transformed by <code>transformHeader</code>) are stored in <code>ParseResult.meta.renamedHeaders</code> | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
|
|
@@ -519,7 +521,7 @@ <h5 id="config-details">Config Options</h5> | |
| <code>dynamicTyping</code> | ||
| </td> | ||
| <td> | ||
| If true, numeric and boolean data will be converted to their type instead of remaining strings. Numeric data must conform to the definition of a decimal literal. Numerical values greater than <code>2^53</code> or less than <code>-2^53</code> will not be converted to numbers to preserve precision. European-formatted numbers must have commas and dots swapped. If also accepts an object or a function. If object it's values should be a boolean to indicate if dynamic typing should be applied for each column number (or header name if using headers). If it's a function, it should return a boolean value for each field number (or name if using headers) which will be passed as first argument. | ||
| If true, numeric and boolean data will be converted to their type instead of remaining strings. Numeric data must conform to the definition of a decimal literal. Numerical values greater than <code>2^53</code> or less than <code>-2^53</code> will not be converted to numbers to preserve precision. European-formatted numbers must have commas and dots swapped. It also accepts an object or a function. If it's an object, its values should be a boolean to indicate if dynamic typing should be applied for each column number (or header name if using headers). If it's a function, it should return a boolean value for each field number (or name if using headers) which will be passed as first argument. | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
|
|
@@ -681,6 +683,14 @@ <h5 id="config-details">Config Options</h5> | |
| An array of delimiters to guess from if the <code>delimiter</code> option is not set. | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <td> | ||
| <code>skipFirstNLines</code> | ||
| </td> | ||
| <td> | ||
| To skip first N number of lines when converting a CSV file to JSON | ||
| </td> | ||
| </tr> | ||
| </table> | ||
| </div> | ||
| </div> | ||
|
|
@@ -759,11 +769,13 @@ <h5 id="data">Data</h5> | |
| [ | ||
| { | ||
| "Column 1": "foo", | ||
| "Column 2": "bar" | ||
| "Column 2": "bar", | ||
| "Column 1": "foo1", | ||
| }, | ||
| { | ||
| "Column 1": "abc", | ||
| "Column 2": "def" | ||
| "Column 2": "def", | ||
| "Column 1": "abc1", | ||
| } | ||
|
Comment on lines
771
to
779
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Rename the duplicated property in the example object. A JavaScript object literal cannot preserve two 📝 Suggested doc fix [
{
"Column 1": "foo",
"Column 2": "bar",
- "Column 1": "foo1",
+ "Column 1_1": "foo1",
},
{
"Column 1": "abc",
"Column 2": "def",
- "Column 1": "abc1",
+ "Column 1_1": "abc1",
}
]🤖 Prompt for AI Agents |
||
| ]</code></pre> | ||
| </div> | ||
|
|
@@ -811,6 +823,7 @@ <h5 id="meta">Meta</h5> | |
| aborted: // Whether process was aborted | ||
| fields: // Array of field names | ||
| truncated: // Whether preview consumed all input | ||
| renamedHeaders: // Headers that are automatically renamed by the library to avoid duplication. {Column 1_1: 'Column 1' // the later header 'Column 1' was renamed to 'Column 1_1'} | ||
| }</code></pre> | ||
| </div> | ||
| <div class="grid-50"> | ||
|
|
@@ -861,7 +874,13 @@ <h5 id="readonly">Read-Only</h5> | |
| <tr> | ||
| <td><code>Papa.BAD_DELIMITERS</code></td> | ||
| <td> | ||
| An array of characters that are not allowed as delimiters. | ||
| An array of characters that are not allowed as delimiters (<code>\r, \n, ", \ufeff</code>). | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
| <td><code>Papa.BYTE_ORDER_MARK</code></td> | ||
| <td> | ||
| The unicode <a href="https://en.wikipedia.org/wiki/Byte_order_mark">Byte Order Mark</a> (<code>\ufeff</code>). | ||
| </td> | ||
| </tr> | ||
| <tr> | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -71,7 +71,7 @@ <h6 id="why">Why use Papa Parse?</h6> | |||||||||
| </p> | ||||||||||
|
|
||||||||||
| <h6 id="nodejs">Can I use Papa Parse server-side with Node.js?</h6> | ||||||||||
| <p>Yes, Paparse supports Node. See <a href="https://github.com/mholt/PapaParse/blob/master/README.md#papa-parse-for-node" target="_blank">our README</a>for further details. | ||||||||||
| <p>Yes, Paparse supports Node. See <a href="https://github.com/mholt/PapaParse/blob/master/README.md#papa-parse-for-node" target="_blank">our README</a> for further details. | ||||||||||
| </p> | ||||||||||
|
Comment on lines
+74
to
75
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix product name typo in the Node.js FAQ answer. Line 74 says “Paparse”; it should be “Papa Parse” for consistency and professionalism. ✏️ Proposed fix- <p>Yes, Paparse supports Node. See <a href="https://github.com/mholt/PapaParse/blob/master/README.md#papa-parse-for-node" target="_blank">our README</a> for further details.
+ <p>Yes, Papa Parse supports Node. See <a href="https://github.com/mholt/PapaParse/blob/master/README.md#papa-parse-for-node" target="_blank">our README</a> for further details.📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||
|
|
||||||||||
| <h6 id="dependencies">Does Papa Parse have any dependencies?</h6> | ||||||||||
|
|
||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -175,6 +175,24 @@ <h3>Features</h3> | |||||||||||||||||
| <div class="grid-100 text-center"> | ||||||||||||||||||
| <h3>People <i class="fa fa-heart"></i> Papa</h3> | ||||||||||||||||||
| </div> | ||||||||||||||||||
| <div class="grid-100 text-center"> | ||||||||||||||||||
| <br> | ||||||||||||||||||
| <p> | ||||||||||||||||||
| <a href="https://www.npmjs.com/package/papaparse"> | ||||||||||||||||||
| <img | ||||||||||||||||||
| src="https://img.shields.io/npm/dm/papaparse.svg" | ||||||||||||||||||
| alt="PapaParse" | ||||||||||||||||||
| /> | ||||||||||||||||||
| </a> | ||||||||||||||||||
| | ||||||||||||||||||
| <a href="https://www.npmjs.com/package/react-papaparse"> | ||||||||||||||||||
| <img | ||||||||||||||||||
| src="https://img.shields.io/npm/dt/papaparse.svg?label=total%20downloads" | ||||||||||||||||||
| alt="PapaParse" | ||||||||||||||||||
|
Comment on lines
+188
to
+191
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Badge/link mismatch for Line 188 links to 🔧 Proposed fix- src="https://img.shields.io/npm/dt/papaparse.svg?label=total%20downloads"
+ src="https://img.shields.io/npm/dt/react-papaparse.svg?label=total%20downloads"📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||
| /> | ||||||||||||||||||
| </a> | ||||||||||||||||||
| </p> | ||||||||||||||||||
| </div> | ||||||||||||||||||
|
|
||||||||||||||||||
| <div class="grid-33"> | ||||||||||||||||||
| <p class="lover"> | ||||||||||||||||||
|
|
||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -26,6 +26,18 @@ | |||||||||||||||||||||||||
| **/ | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| var peopleLovePapa = [ | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| link: "http://doctempleapp.com", | ||||||||||||||||||||||||||
| name: "DocTemple", | ||||||||||||||||||||||||||
| description: "helps you effortlessly populate .docx documents with .csv data using scalable templating solution.", | ||||||||||||||||||||||||||
| quote: "Papa Parse made it extremely easy to load user CSV files in the browser. Implementing it was a breeze and it works perfect!" | ||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| link: "https://www.vertex.io", | ||||||||||||||||||||||||||
| name: "The no-code database of the future.", | ||||||||||||||||||||||||||
| description: "No-code, Postgres-powered admin, internal tools, and backend suite.", | ||||||||||||||||||||||||||
| quote: "Vertex uses Papa to power all CSV related features!" | ||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||
|
Comment on lines
+35
to
+40
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The Per the file instructions (lines 11-15), the Consider restructuring this entry: 📝 Suggested fix {
link: "https://www.vertex.io",
- name: "The no-code database of the future.",
- description: "No-code, Postgres-powered admin, internal tools, and backend suite.",
+ name: "Vertex",
+ description: "is the no-code database of the future, providing Postgres-powered admin, internal tools, and backend suite.",
quote: "Vertex uses Papa to power all CSV related features!"
},📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| link: "https://www.circlehd.com", | ||||||||||||||||||||||||||
| name: "CircleHD Enterprise Video Platform", | ||||||||||||||||||||||||||
|
|
@@ -55,24 +67,6 @@ var peopleLovePapa = [ | |||||||||||||||||||||||||
| name: "Wikipedia", | ||||||||||||||||||||||||||
| description: "uses Papa Parse in VisualEditor to help article editors effortlessly build data tables from text files." | ||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| link: "https://www.webucator.com/webdesign/javascript.cfm", | ||||||||||||||||||||||||||
| name: "Webucator", | ||||||||||||||||||||||||||
| description: "created a video showing how to use Papa Parse and FileDrop.js to create a drag-and-drop CSV-JSON converter.", | ||||||||||||||||||||||||||
| quote: "It's often easy to convert data to CSV. With Papa, it's easy to turn that CSV into JSON." | ||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| link: "http://www.yolpo.com/social/gist.github?1dbd4556e748bdb830b3&autoplay=1&interimresults=0&failfast=1", | ||||||||||||||||||||||||||
| name: "Yolpo", | ||||||||||||||||||||||||||
| description: "created a simple regression test for Papa Parse.", | ||||||||||||||||||||||||||
| quote: "Papa's API is so intuitive, it took me no time to get it to work." | ||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| link: "https://www.appstax.com", | ||||||||||||||||||||||||||
| name: "Appstax", | ||||||||||||||||||||||||||
| description: "uses Papa Parse to import and export CSV data in their visual databrowser.", | ||||||||||||||||||||||||||
| quote: "Papa is a great for parsing CSV. And what a great tone of voice - love it!" | ||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| link: "https://github.com/Nanofus/novel.js", | ||||||||||||||||||||||||||
| name: "Novel.js", | ||||||||||||||||||||||||||
|
|
@@ -97,12 +91,6 @@ var peopleLovePapa = [ | |||||||||||||||||||||||||
| description: "is a brand-new messaging app made specifically for busy families. Automatically align all family members when sending text messages to parents in the kindergarten or school or when planning your kids birthday parties.", | ||||||||||||||||||||||||||
| quote: "With Papa it was a joy to implement our tool for importing messages and places from external systems." | ||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| link: "https://explore.hua-gallery.com", | ||||||||||||||||||||||||||
| name: "Hua Explore", | ||||||||||||||||||||||||||
| description: "The premier destination for information on Contemporary Chinese Art.", | ||||||||||||||||||||||||||
| quote: "Papa makes processing data that galleries send us totally seamless." | ||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| link: "https://monei.net", | ||||||||||||||||||||||||||
| name: "MONEI", | ||||||||||||||||||||||||||
|
|
@@ -126,5 +114,17 @@ var peopleLovePapa = [ | |||||||||||||||||||||||||
| name: "Visa SOP Sample", | ||||||||||||||||||||||||||
| description: "Providing free guide to international students.", | ||||||||||||||||||||||||||
| quote: "Use Papa Parse for many of side projects. Super fast and works all the time. Love it!" | ||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| link: "https://retool.com/", | ||||||||||||||||||||||||||
| name: "Retool", | ||||||||||||||||||||||||||
| description: "A remarkably fast way to build internal tools.", | ||||||||||||||||||||||||||
| quote: "Papa makes it easy for our users to customize CSV parsing to match their business logic." | ||||||||||||||||||||||||||
| }, | ||||||||||||||||||||||||||
|
Comment on lines
+118
to
+123
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Description missing verb for fluid sentence construction. Per the file instructions, 📝 Suggested fix {
link: "https://retool.com/",
name: "Retool",
- description: "A remarkably fast way to build internal tools.",
+ description: "is a remarkably fast way to build internal tools.",
quote: "Papa makes it easy for our users to customize CSV parsing to match their business logic."
},📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| link: "https://www.hellodata.ai/", | ||||||||||||||||||||||||||
| name: "HelloData", | ||||||||||||||||||||||||||
| description: "Automatic rent surveys with real-time data on over 25M multifamily units nationwide, direct from property websites.", | ||||||||||||||||||||||||||
| quote: "Papa Parse makes bulk data imports a breeze! It's helped us easily onboard our largest customers. It's robust and a true game-changer." | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
Comment on lines
+124
to
129
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Description missing verb for fluid sentence construction. Same issue as the Retool entry—currently renders as: "HelloData Automatic rent surveys with real-time data..." Consider adding a verb. 📝 Suggested fix {
link: "https://www.hellodata.ai/",
name: "HelloData",
- description: "Automatic rent surveys with real-time data on over 25M multifamily units nationwide, direct from property websites.",
+ description: "provides automatic rent surveys with real-time data on over 25M multifamily units nationwide, direct from property websites.",
quote: "Papa Parse makes bulk data imports a breeze! It's helped us easily onboard our largest customers. It's robust and a true game-changer."
}📝 Committable suggestion
Suggested change
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||
| ]; | ||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
Isconst csv = Papa.unparse(data[, config]);valid JavaScript syntax? If not, what is a copy-paste-safe way to document an optional argument in JS examples?💡 Result:
No.
const csv = Papa.unparse(data[, config]);is not valid JavaScript—the[, config]part is documentation notation meaning “configis optional,” as used in Papa Parse’s docs. [1]Copy‑paste‑safe ways to show an optional argument:
1) Show the valid call forms on separate lines (common in MDN docs): [2]
2) Keep code valid and annotate with a comment:
3) Use JSDoc to mark the parameter optional (in comments, not in code): [3]
Sources: [1] Papa Parse docs, [2] MDN “Syntax sections” guidelines, [3] JSDoc
@paramtag docs.🏁 Script executed:
Repository: Skedulo/csv-parser-for-data-loading
Length of output: 340
Use valid JavaScript syntax in the usage example.
Line 39 uses
data[, config], which is not valid JavaScript—this documentation notation for an optional parameter will fail if copied directly into an IDE or runtime. Replace with executable code:Suggested fix
📝 Committable suggestion
🤖 Prompt for AI Agents