Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

udsv

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

udsv - npm Package Compare versions

Comparing version 0.5.1 to 0.5.2

4

dist/uDSV.cjs.js

@@ -7,3 +7,3 @@ /**

* A small, fast CSV parser
* https://github.com/leeoniya/uDSV (v0.5.1)
* https://github.com/leeoniya/uDSV (v0.5.2)
*/

@@ -117,3 +117,3 @@

let paths = cols.map(c => c.name);
let paths = cols.map(c => c.name.replace(/\.(\d+)\.?/gi, '[$1]'));

@@ -120,0 +120,0 @@ do {

@@ -7,3 +7,3 @@ /**

* A small, fast CSV parser
* https://github.com/leeoniya/uDSV (v0.5.1)
* https://github.com/leeoniya/uDSV (v0.5.2)
*/

@@ -118,3 +118,3 @@

let paths = cols.map(c => c.name);
let paths = cols.map(c => c.name.replace(/\.(\d+)\.?/gi, '[$1]'));

@@ -121,0 +121,0 @@ do {

@@ -1,2 +0,2 @@

/*! https://github.com/leeoniya/uDSV (v0.5.1) */
var uDSV=function(e){"use strict";const t=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3,})?(?:Z|[-+]\d{2}:?\d{2})$/,l=/^(?:t(?:rue)?|f(?:alse)?|y(?:es)?|n(?:o)?|0|1)$/i,n=["\t","|",";",","],r="d",i="n",s="j",c="b";const o=JSON.stringify,f=e=>"string"==typeof e?o(e):e;function u(e,t){let{type:l}=t,n=`r[${e}]`,u=l===r?`new Date(${n})`:l===s?`JSON.parse(${n})`:l===i?"+"+n:l[0]===c?`${n} === ${o(l.slice(2))} ? true : false`:n,{repl:a}=t,h=void 0!==a.NaN&&l===i?`${n} === 'NaN' ? ${f(a.NaN)} : `:"",d=void 0!==a.null?`${n} === 'null' || ${n} === 'NULL' ? ${f(a.null)} : `:"";return`${void 0!==a.empty?`${n} === '' ? ${f(a.empty)} : `:""} ${d} ${h} ${u}`}const a=/\w+(?:\[|\]?[\.\[]?|$)/gm;function h(e,t=!1,l=!1){let n="";if(t&&l){let t={},l=0,r=e.map((e=>e.name));do{let e=r.shift(),n=/\s/.test(e)?[e]:[...e.matchAll(a)].flatMap((e=>e.map((e=>e.replace("]",""))))),i=t;do{let e=n.shift(),t=e,r=e.at(-1);"."==r||"["==r?(t=e.slice(0,-1),i=i[t]=i[t]??("."==r?{}:[])):i[t]=`¦${l}¦`}while(n.length>0);l++}while(r.length>0);n=o(t).replace(/"¦(\d+)¦"/g,((t,l)=>u(+l,e[+l])))}else!t&&e.every((e=>"s"===e.type))?n="r":(n=t?"{":"[",e.forEach(((e,l)=>{n+=t?o(e.name)+":":"";let r=u(l,e);n+=r+","})),n+=t?"}":"]");return Function("rows",` let arr = Array(rows.length); for (let i = 0; i < rows.length; i++) { let r = rows[i]; arr[i] = ${n}; } return arr; `)}function d(e,t,l,n=0,r=!0,i=1e3,s=null,c=null){let{row:o,col:f,encl:u,esc:a,trim:h}=t,d=c||t.cols.length,p=null!=s,g=null!=c&&p,$=o.length,y=f.length,m=u.charCodeAt(0),A=a.charCodeAt(0),N=o.charCodeAt(0),k=f.charCodeAt(0),w=0,C=0,b=e.length-1,O=0,x=[],v=Array(d).fill(""),E=v.slice(),S=0,L=d-1,T=-1;if(""===u){for(;b>=C;)if(S===L){let t=e.indexOf(o,C);if(-1===t){if(!r)break;t=b+1}let c=e.slice(C,t);if(E[S]=h?c.trim():c,0>--n&&x.push(E),x.length===i){let e=!1===l(x,"");if(x=[],e||p&&++w===s)return}E=v.slice(),S=0,T=-1,C=t+$,O=C}else if(0===S&&e.charCodeAt(C)===N)C+=$;else{let t=e.indexOf(f,C);if(-1===t&&!r)break;let l=e.slice(C,t);E[S]=h?l.trim():l,C=t+y,T=S++}return r&&S===L&&0>--n&&x.push(E),void(r&&0>=x.length||l(x,r?"":e.slice(O)))}const j=g?RegExp(`[^${f}${o}]+`,"my"):null;let R,Y=0,D="";for(;b>=C;){if(R=e.charCodeAt(C),0===Y)if(R===m){if(Y=2,C+=1,C>b)break;R=e.charCodeAt(C)}else if(R===k||R===N){if(R===N&&0===S){C+=$;continue}if(E[S]=D,T=S,S+=1,C+=1,D="",R===N){if(g&&L>T&&0===x.length&&(E.length=v.length=T+1,L=T),0>--n&&x.push(E),x.length===i){let e=!1===l(x,"");if(x=[],e||p&&++w===s)return}E=v.slice(),S=0,T=-1,C+=$-1,O=C}if(C>b)break;R=e.charCodeAt(C)}else if(h&&32===R)for(;32===R;)R=e.charCodeAt(++C);else Y=1;if(2===Y)for(;;)if(R===m)if(m===A){if(C+1>b){C=b+1;break}if(e.charCodeAt(C+1)!==m){Y=0,C+=1;break}if(C+=2,D+=u,C>b)break;R=e.charCodeAt(C)}else{if(e.charCodeAt(C-1)!==A){Y=0,C+=1;break}if(C+=1,D+=u,C>b)break;R=e.charCodeAt(C)}else{let t=e.indexOf(u,C);if(-1===t){C=b+1;break}D+=e.slice(C,m===A?t:t-1),C=t,R=m}else if(1===Y)if(R===k||R===N){if(R===N&&0===S){C+=$;continue}if(E[S]=D,T=S,S+=1,C+=1,D="",R===N){if(g&&L>T&&0===x.length&&(E.length=v.length=T+1,L=T),0>--n&&x.push(E),x.length===i){let e=!1===l(x,"");if(x=[],e||p&&++w===s)return}E=v.slice(),S=0,T=-1,C+=$-1,O=C}Y=0}else if(g){j.lastIndex=C;let t=j.exec(e)[0];D+=t,C+=t.length}else{let t=e.indexOf(S===L?o:f,C);-1===t&&(t=b+1);let l=e.slice(C,t);D+=h?l.trim():l,C=t}}r&&S===L&&(E[S]=D,0>--n&&x.push(E),Y=0),l(x,r||0===Y&&!(-1===T?""!==D:L>T)?"":e.slice(O))}return e.inferSchema=function(e,o,f){let{header:u,col:a,row:h,encl:p,esc:g,trim:$=!1}=o??{};u??=e=>[e[0]],f??=10;const y=RegExp(`(.*)(${h??"\r\n|\r|\n"})`),m=e.match(y),A=m[1];h??=m[2],a??=n.find((e=>A.indexOf(e)>-1))??"",p??=e.indexOf('"')>-1?'"':"",g??=p;const N={skip:1,col:a,row:h,encl:p,esc:g,trim:$,cols:[]},k=A.split(a).length,w=[];d(e,N,(e=>{w.push(...e)}),0,!0,f,1,k);let C=u(w)??[],b=N.skip=C.length,O=C.find((e=>null!=e))??[...Array(w[0].length).keys()];return w.splice(0,b),O.forEach(((e,n)=>{let o=function(e,n){let o=n.findLast((t=>""!==t[e]&&"null"!==t[e]&&"NULL"!==t[e]&&"NaN"!==t[e])),f="s";if(null!=o){let n=o[e];f=t.test(n)?r:+n==+n?i:l.test(n)?c+":"+function(e){let[t,l=""]=e;return"1"==t||"0"==t?"1":"t"==t||"f"==t?""==l?"t":"true":"T"==t||"F"==t?""==l?"T":"R"==l||"A"===l?"TRUE":"True":"y"==t||"n"==t?""==l?"y":"yes":"Y"==t||"N"==t?""==l?"Y":"E"==l||"O"===l?"YES":"Yes":""}(n):function(e){if("["===e[0]||"{"===e[0])try{return JSON.parse(e),!0}catch{}return!1}(n)?s:f}return f}(n,w);N.cols.push({name:e,type:o,repl:{empty:null,NaN:void 0,null:void 0}})})),N},e.initParser=function(e,t){let{skip:l,cols:n}=e,r=null,i=null,s=null,c=null,o=null,f=0,u=0,a=null,p=null,g="",$="",y=null;function m(){u=f=0,$=g="",a=p=y=null}let A=(e,t)=>{t(e)},N=()=>[],k=e=>{y.push(...e)};function w(n,r,i){let s=null;return(c,o=A)=>{s??=i(),y??=n();let a=y,h=0===u||2===u;return d(c,e,((e,t)=>{$=t;let l=o(s(e),r);return!1===l&&0!==u&&m(),l}),0===f?l:0,h,t),h&&(y=null),a}}const C=w(N,k,(()=>(r??=e=>e,r))),b=w(N,k,(()=>(i??=h(n,!1,!1),i))),O=w(N,k,(()=>(s??=h(n,!0,!1),s))),x=w(N,k,(()=>(c??=h(n,!0,!0),c))),v=w((()=>n.map((()=>[]))),(e=>{e.forEach(((e,t)=>{y[t].push(...e)}))}),(()=>(i??=h(n,!1,!1),o??=function(e){return Function("rows",` let cols = [${e.map((()=>"Array(rows.length)")).join(",")}]; for (let i = 0; i < rows.length; i++) { let r = rows[i]; ${e.map(((e,t)=>`cols[${t}][i] = r[${t}]`)).join(";")}; } return cols; `)}(n),e=>o(i(e)))));return{schema:e,stringArrs:C,typedArrs:b,typedObjs:O,typedDeep:x,typedCols:v,chunk(e,t=C,l=A){a??=t,p??=l,1===u&&(a($+g,p),f++),g=e,u=1},end(){u=2;let e=a($+g,p);return m(),e}}},e}({});
/*! https://github.com/leeoniya/uDSV (v0.5.2) */
var uDSV=function(e){"use strict";const t=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d{3,})?(?:Z|[-+]\d{2}:?\d{2})$/,l=/^(?:t(?:rue)?|f(?:alse)?|y(?:es)?|n(?:o)?|0|1)$/i,n=["\t","|",";",","],r="d",i="n",s="j",c="b";const o=JSON.stringify,f=e=>"string"==typeof e?o(e):e;function u(e,t){let{type:l}=t,n=`r[${e}]`,u=l===r?`new Date(${n})`:l===s?`JSON.parse(${n})`:l===i?"+"+n:l[0]===c?`${n} === ${o(l.slice(2))} ? true : false`:n,{repl:a}=t,h=void 0!==a.NaN&&l===i?`${n} === 'NaN' ? ${f(a.NaN)} : `:"",d=void 0!==a.null?`${n} === 'null' || ${n} === 'NULL' ? ${f(a.null)} : `:"";return`${void 0!==a.empty?`${n} === '' ? ${f(a.empty)} : `:""} ${d} ${h} ${u}`}const a=/\w+(?:\[|\]?[\.\[]?|$)/gm;function h(e,t=!1,l=!1){let n="";if(t&&l){let t={},l=0,r=e.map((e=>e.name.replace(/\.(\d+)\.?/gi,"[$1]")));do{let e=r.shift(),n=/\s/.test(e)?[e]:[...e.matchAll(a)].flatMap((e=>e.map((e=>e.replace("]",""))))),i=t;do{let e=n.shift(),t=e,r=e.at(-1);"."==r||"["==r?(t=e.slice(0,-1),i=i[t]=i[t]??("."==r?{}:[])):i[t]=`¦${l}¦`}while(n.length>0);l++}while(r.length>0);n=o(t).replace(/"¦(\d+)¦"/g,((t,l)=>u(+l,e[+l])))}else!t&&e.every((e=>"s"===e.type))?n="r":(n=t?"{":"[",e.forEach(((e,l)=>{n+=t?o(e.name)+":":"";let r=u(l,e);n+=r+","})),n+=t?"}":"]");return Function("rows",` let arr = Array(rows.length); for (let i = 0; i < rows.length; i++) { let r = rows[i]; arr[i] = ${n}; } return arr; `)}function d(e,t,l,n=0,r=!0,i=1e3,s=null,c=null){let{row:o,col:f,encl:u,esc:a,trim:h}=t,d=c||t.cols.length,p=null!=s,g=null!=c&&p,$=o.length,y=f.length,m=u.charCodeAt(0),A=a.charCodeAt(0),N=o.charCodeAt(0),k=f.charCodeAt(0),w=0,C=0,b=e.length-1,O=0,x=[],v=Array(d).fill(""),E=v.slice(),S=0,L=d-1,T=-1;if(""===u){for(;b>=C;)if(S===L){let t=e.indexOf(o,C);if(-1===t){if(!r)break;t=b+1}let c=e.slice(C,t);if(E[S]=h?c.trim():c,0>--n&&x.push(E),x.length===i){let e=!1===l(x,"");if(x=[],e||p&&++w===s)return}E=v.slice(),S=0,T=-1,C=t+$,O=C}else if(0===S&&e.charCodeAt(C)===N)C+=$;else{let t=e.indexOf(f,C);if(-1===t&&!r)break;let l=e.slice(C,t);E[S]=h?l.trim():l,C=t+y,T=S++}return r&&S===L&&0>--n&&x.push(E),void(r&&0>=x.length||l(x,r?"":e.slice(O)))}const j=g?RegExp(`[^${f}${o}]+`,"my"):null;let R,Y=0,D="";for(;b>=C;){if(R=e.charCodeAt(C),0===Y)if(R===m){if(Y=2,C+=1,C>b)break;R=e.charCodeAt(C)}else if(R===k||R===N){if(R===N&&0===S){C+=$;continue}if(E[S]=D,T=S,S+=1,C+=1,D="",R===N){if(g&&L>T&&0===x.length&&(E.length=v.length=T+1,L=T),0>--n&&x.push(E),x.length===i){let e=!1===l(x,"");if(x=[],e||p&&++w===s)return}E=v.slice(),S=0,T=-1,C+=$-1,O=C}if(C>b)break;R=e.charCodeAt(C)}else if(h&&32===R)for(;32===R;)R=e.charCodeAt(++C);else Y=1;if(2===Y)for(;;)if(R===m)if(m===A){if(C+1>b){C=b+1;break}if(e.charCodeAt(C+1)!==m){Y=0,C+=1;break}if(C+=2,D+=u,C>b)break;R=e.charCodeAt(C)}else{if(e.charCodeAt(C-1)!==A){Y=0,C+=1;break}if(C+=1,D+=u,C>b)break;R=e.charCodeAt(C)}else{let t=e.indexOf(u,C);if(-1===t){C=b+1;break}D+=e.slice(C,m===A?t:t-1),C=t,R=m}else if(1===Y)if(R===k||R===N){if(R===N&&0===S){C+=$;continue}if(E[S]=D,T=S,S+=1,C+=1,D="",R===N){if(g&&L>T&&0===x.length&&(E.length=v.length=T+1,L=T),0>--n&&x.push(E),x.length===i){let e=!1===l(x,"");if(x=[],e||p&&++w===s)return}E=v.slice(),S=0,T=-1,C+=$-1,O=C}Y=0}else if(g){j.lastIndex=C;let t=j.exec(e)[0];D+=t,C+=t.length}else{let t=e.indexOf(S===L?o:f,C);-1===t&&(t=b+1);let l=e.slice(C,t);D+=h?l.trim():l,C=t}}r&&S===L&&(E[S]=D,0>--n&&x.push(E),Y=0),l(x,r||0===Y&&!(-1===T?""!==D:L>T)?"":e.slice(O))}return e.inferSchema=function(e,o,f){let{header:u,col:a,row:h,encl:p,esc:g,trim:$=!1}=o??{};u??=e=>[e[0]],f??=10;const y=RegExp(`(.*)(${h??"\r\n|\r|\n"})`),m=e.match(y),A=m[1];h??=m[2],a??=n.find((e=>A.indexOf(e)>-1))??"",p??=e.indexOf('"')>-1?'"':"",g??=p;const N={skip:1,col:a,row:h,encl:p,esc:g,trim:$,cols:[]},k=A.split(a).length,w=[];d(e,N,(e=>{w.push(...e)}),0,!0,f,1,k);let C=u(w)??[],b=N.skip=C.length,O=C.find((e=>null!=e))??[...Array(w[0].length).keys()];return w.splice(0,b),O.forEach(((e,n)=>{let o=function(e,n){let o=n.findLast((t=>""!==t[e]&&"null"!==t[e]&&"NULL"!==t[e]&&"NaN"!==t[e])),f="s";if(null!=o){let n=o[e];f=t.test(n)?r:+n==+n?i:l.test(n)?c+":"+function(e){let[t,l=""]=e;return"1"==t||"0"==t?"1":"t"==t||"f"==t?""==l?"t":"true":"T"==t||"F"==t?""==l?"T":"R"==l||"A"===l?"TRUE":"True":"y"==t||"n"==t?""==l?"y":"yes":"Y"==t||"N"==t?""==l?"Y":"E"==l||"O"===l?"YES":"Yes":""}(n):function(e){if("["===e[0]||"{"===e[0])try{return JSON.parse(e),!0}catch{}return!1}(n)?s:f}return f}(n,w);N.cols.push({name:e,type:o,repl:{empty:null,NaN:void 0,null:void 0}})})),N},e.initParser=function(e,t){let{skip:l,cols:n}=e,r=null,i=null,s=null,c=null,o=null,f=0,u=0,a=null,p=null,g="",$="",y=null;function m(){u=f=0,$=g="",a=p=y=null}let A=(e,t)=>{t(e)},N=()=>[],k=e=>{y.push(...e)};function w(n,r,i){let s=null;return(c,o=A)=>{s??=i(),y??=n();let a=y,h=0===u||2===u;return d(c,e,((e,t)=>{$=t;let l=o(s(e),r);return!1===l&&0!==u&&m(),l}),0===f?l:0,h,t),h&&(y=null),a}}const C=w(N,k,(()=>(r??=e=>e,r))),b=w(N,k,(()=>(i??=h(n,!1,!1),i))),O=w(N,k,(()=>(s??=h(n,!0,!1),s))),x=w(N,k,(()=>(c??=h(n,!0,!0),c))),v=w((()=>n.map((()=>[]))),(e=>{e.forEach(((e,t)=>{y[t].push(...e)}))}),(()=>(i??=h(n,!1,!1),o??=function(e){return Function("rows",` let cols = [${e.map((()=>"Array(rows.length)")).join(",")}]; for (let i = 0; i < rows.length; i++) { let r = rows[i]; ${e.map(((e,t)=>`cols[${t}][i] = r[${t}]`)).join(";")}; } return cols; `)}(n),e=>o(i(e)))));return{schema:e,stringArrs:C,typedArrs:b,typedObjs:O,typedDeep:x,typedCols:v,chunk(e,t=C,l=A){a??=t,p??=l,1===u&&(a($+g,p),f++),g=e,u=1},end(){u=2;let e=a($+g,p);return m(),e}}},e}({});
{
"name": "udsv",
"version": "0.5.1",
"version": "0.5.2",
"description": "A small, fast CSV parser",

@@ -36,5 +36,5 @@ "main": "./dist/uDSV.cjs.js",

"papaparse": "^5.4.1",
"rollup": "^3.28.1",
"rollup": "^3.29.0",
"rollup-plugin-re": "^1.0.7"
}
}

@@ -38,8 +38,8 @@ ## 𝌠 μDSV

On a Ryzen 7 ThinkPad, Linux v6.4.11, and NodeJS v20.5.1, a diverse set of benchmarks show a 1x-5x performance boost relative to [Papa Parse](https://www.papaparse.com/).
On a Ryzen 7 ThinkPad, Linux v6.4.11, and NodeJS v20.6.0, a diverse set of benchmarks show a 1x-5x performance boost relative to [Papa Parse](https://www.papaparse.com/).
Papa Parse is used as a reference not because it's the fastest, but due to its [outsized popularity](https://github.com/search?q=csv+parser&type=repositories&s=stars&o=desc), battle-testedness, and [some external validation](https://leanylabs.com/blog/js-csv-parsers-benchmarks/) of its performance claims.
Most CSV parsers have one happy/fast path -- one that's typically without quoted values, without value typing, and only with default settings and output format.
Most CSV parsers have one happy/fast path -- the one without quoted values, without value typing, and using the default settings & output format.
Once you're off that path, you can generally throw their self-promoting benchmarks in the trash.
In contrast, uDSV remains fast through all datasets and any options.
In contrast, uDSV remains fast with all datasets and options; its happy path is _every path_.

@@ -54,25 +54,24 @@ For _way too many_ synthetic and real-world benchmarks, head over to [/bench](/bench)...and don't forget your coffee!

├────────────────────────┼────────┼─────────────────────────────────────────────────────────────┤
│ uDSV │ 754K │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 135 │
│ achilles-csv-parser │ 474K │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 84.7 │
│ d3-dsv │ 433K │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 77.3 │
│ csv-rex │ 361K │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░ 64.4 │
│ PapaParse │ 310K │ ░░░░░░░░░░░░░░░░░░░░░░░ 55.5 │
│ csv-js │ 296K │ ░░░░░░░░░░░░░░░░░░░░░░ 52.8 │
│ csv42 │ 285K │ ░░░░░░░░░░░░░░░░░░░░░ 50.9 │
│ uDSV │ 782K │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 140 │
│ csv-simple-parser │ 682K │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 122 │
│ achilles-csv-parser │ 469K │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 83.8 │
│ d3-dsv │ 433K │ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ 77.4 │
│ csv-rex │ 346K │ ░░░░░░░░░░░░░░░░░░░░░░░░░ 61.9 │
│ PapaParse │ 305K │ ░░░░░░░░░░░░░░░░░░░░░░ 54.5 │
│ csv42 │ 296K │ ░░░░░░░░░░░░░░░░░░░░░ 52.9 │
│ csv-js │ 285K │ ░░░░░░░░░░░░░░░░░░░░░ 50.9 │
│ comma-separated-values │ 258K │ ░░░░░░░░░░░░░░░░░░░ 46.1 │
│ CSVtoJSON │ 247K │ ░░░░░░░░░░░░░░░░░░░ 44.2 │
│ csv-simple-parser │ 245K │ ░░░░░░░░░░░░░░░░░░ 43.8 │
│ dekkai │ 244K │ ░░░░░░░░░░░░░░░░░░ 43.6 │
│ csv-parser (neat-csv) │ 229K │ ░░░░░░░░░░░░░░░░░ 40.9 │
│ ACsv │ 223K │ ░░░░░░░░░░░░░░░░░ 39.8 │
│ SheetJS │ 207K │ ░░░░░░░░░░░░░░░░ 36.9 │
│ @vanillaes/csv │ 199K │ ░░░░░░░░░░░░░░░ 35.5 │
│ node-csvtojson │ 170K │ ░░░░░░░░░░░░░ 30.4 │
│ csv-parse/sync │ 123K │ ░░░░░░░░░ 22 │
│ @fast-csv/parse │ 80K │ ░░░░░░ 14.3 │
│ jquery-csv │ 55.1K │ ░░░░░ 9.84 │
│ dekkai │ 248K │ ░░░░░░░░░░░░░░░░░░ 44.3 │
│ CSVtoJSON │ 245K │ ░░░░░░░░░░░░░░░░░░ 43.8 │
│ csv-parser (neat-csv) │ 218K │ ░░░░░░░░░░░░░░░░ 39 │
│ ACsv │ 218K │ ░░░░░░░░░░░░░░░░ 39 │
│ SheetJS │ 208K │ ░░░░░░░░░░░░░░░ 37.1 │
│ @vanillaes/csv │ 200K │ ░░░░░░░░░░░░░░░ 35.8 │
│ node-csvtojson │ 165K │ ░░░░░░░░░░░░ 29.4 │
│ csv-parse/sync │ 125K │ ░░░░░░░░░ 22.4 │
│ @fast-csv/parse │ 78.2K │ ░░░░░░ 14 │
│ jquery-csv │ 55.1K │ ░░░░ 9.85 │
│ but-csv │ --- │ Wrong row count! Expected: 33790, Actual: 1 │
│ @gregoranders/csv │ --- │ Invalid CSV at 1:109 │
│ utils-dsv-base-parse │ --- │ unexpected error. Encountered an invalid record. Field 17 o │
│ json-2-csv │ --- │ Wrong row count! Expected: 33790, Actual: 0 │
└────────────────────────┴────────┴─────────────────────────────────────────────────────────────┘

@@ -79,0 +78,0 @@ ```

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc