diff --git a/types/papaparse/index.d.ts b/types/papaparse/index.d.ts index fc97ef210c..300e33b4a5 100644 --- a/types/papaparse/index.d.ts +++ b/types/papaparse/index.d.ts @@ -97,7 +97,7 @@ export interface ParseConfig { quoteChar?: string; // default: '"' header?: boolean; // default: false trimHeaders?: boolean; // default: false - dynamicTyping?: boolean; // default: false + dynamicTyping?: boolean | { [headerName: string]: boolean; [columnNumber: number]: boolean;} | ((field: string | number) => boolean); // default: false preview?: number; // default: 0 encoding?: string; // default: "" worker?: boolean; // default: false diff --git a/types/papaparse/papaparse-tests.ts b/types/papaparse/papaparse-tests.ts index 50929ff512..a22ea5b14d 100644 --- a/types/papaparse/papaparse-tests.ts +++ b/types/papaparse/papaparse-tests.ts @@ -2,12 +2,12 @@ import Papa = require("papaparse"); import { - ParseConfig, - UnparseConfig, - UnparseObject, - ParseError, - ParseMeta, - ParseResult + ParseConfig, + UnparseConfig, + UnparseObject, + ParseError, + ParseMeta, + ParseResult } from "papaparse"; import { Readable } from "stream"; @@ -19,14 +19,26 @@ var res = Papa.parse("3,3,3"); res.errors[0].code; Papa.parse("3,3,3", { - delimiter: ';', - comments: false, + delimiter: ';', + comments: false, trimHeaders: false, + step: function (results, p) { + p.abort(); + results.data.length; + }, + dynamicTyping: true +}); - step: function (results, p) { - p.abort(); - results.data.length; - } +Papa.parse("3,3,3", { + dynamicTyping: (field: string | number): boolean => /headerName/i.test(field.toString()) +}); + +Papa.parse("3,3,3", { + dynamicTyping: {'headerName': true} +}); + +Papa.parse("3,3,3", { + dynamicTyping: {5: true} }); var file = new File(null, null, null); @@ -35,20 +47,20 @@ Papa.parse(file, { transform: function(value, field) { }, - complete: function (a, b) { - a.meta.fields; - b.name; - } + complete: function (a, b) { + a.meta.fields; + b.name; + } }); const readable = new Readable() const rows = [ - "1,2,3", - "4,5,6" + "1,2,3", + "4,5,6" ] rows.forEach(r => { - readable.push(r); + readable.push(r); }); const papaStream: NodeJS.ReadWriteStream = Papa.parse(Papa.NODE_STREAM_INPUT); @@ -61,16 +73,16 @@ readable.pipe(papaStream); Papa.unparse([{ a: 1, b: 1, c: 1 }]); Papa.unparse([[1, 2, 3], [4, 5, 6]]); Papa.unparse({ - fields: ["3"], - data: [] + fields: ["3"], + data: [] }); Papa.unparse([{ a: 1, b: 1, c: 1 }], { quotes: false }); Papa.unparse([{ a: 1, b: 1, c: 1 }], { quotes: [false, true, true] }); Papa.unparse([[1, 2, 3], [4, 5, 6]], { delimiter: "," }); Papa.unparse({ - fields: ["3"], - data: [] + fields: ["3"], + data: [] }, { newline: "\n" });