|
| 1 | + |
| 2 | +import assert from 'assert' |
| 3 | +import { parse } from 'csv-parse' |
| 4 | +import { generate } from 'csv-generate' |
| 5 | + |
| 6 | +// Expected data |
| 7 | +let headers = null |
| 8 | +const third_column = [] |
| 9 | +// Fake readable stream |
| 10 | +const parser = generate({ |
| 11 | + high_water_mark: 64 * 64, |
| 12 | + length: 100, |
| 13 | + seed: 1 |
| 14 | +}).pipe( |
| 15 | + parse() |
| 16 | +); |
| 17 | +// Intialise count |
| 18 | +let count = 0; |
| 19 | +// Iterate through each records |
| 20 | +for await (const record of parser) { |
| 21 | + if(count++ === 0){ |
| 22 | + // 1. Extract the columns names from the first line |
| 23 | + headers = record |
| 24 | + } else { |
| 25 | + // 2. Keep in memory only one column out of the all dataset |
| 26 | + third_column.push(record[2]) |
| 27 | + } |
| 28 | +} |
| 29 | +// Validation |
| 30 | +assert.deepStrictEqual(headers, [ |
| 31 | + 'OMH', |
| 32 | + 'ONKCHhJmjadoA', |
| 33 | + 'D', |
| 34 | + 'GeACHiN', |
| 35 | + 'nnmiN', |
| 36 | + 'CGfDKB', |
| 37 | + 'NIl', |
| 38 | + 'JnnmjadnmiNL' |
| 39 | +]) |
| 40 | +assert.deepStrictEqual(third_column, [ |
| 41 | + 'fENL', 'gGeBFaeAC', 'jPbhKCHhJn', |
| 42 | + 'DKCHjONKCHi', 'LEPPbgI', 'dmkeACHgG', |
| 43 | + 'BDLDLF', 'C', 'kdnmiLENJo', |
| 44 | + 'A', 'PPaeACGfCIkcj', 'oABFaepBFbgGeBFb', |
| 45 | + 'ENJnmj', 'dlhKAABGdlhJnn', 'OPPPbfDK', |
| 46 | + 'PbgGeoACJmjPa', 'LD', 'lfDKBFbhKp', |
| 47 | + 'LE', 'lhIkepCIkdmjbhI', 'jPPadnlhIl', |
| 48 | + 'Ge', 'ONKACJnlhJnnm', 'NLF', |
| 49 | + 'clfCGepBFaeBDL', 'kdmiN', 'AACIlf', |
| 50 | + 'jPbfE', 'gHiN', 'GclgHgG', |
| 51 | + 'CJnmjPbhJoA', 'nlhKCGeABFcjPbh', 'afCJnmiMIleBE', |
| 52 | + 'fDMHgHhJnlhKBF', 'keAADJopDL', 'mjaclgFciO', |
| 53 | + 'LE', 'EONKCH', 'gFckdnnnooABEN', |
| 54 | + 'pCIlgGfCHhKAABDM', 'clgFaeBGdmjPbh', 'jPbgGdnnmjbgGfE', |
| 55 | + 'MGdmkepE', 'GfDLEPa', 'JopEOMGfEOON', |
| 56 | + 'jbfEPPbiMG', 'CHgGeACJnmkclfDK', 'bhJ', |
| 57 | + 'gIjP', 'pDKACIjPaep', 'fDMG', |
| 58 | + 'Kp', 'gFcj', 'DJpBFbgFaeA', |
| 59 | + 'iLFbgGdnl', 'Jn', 'ADJopC', |
| 60 | + 'eACGfCJnmjONLF', 'Ge', 'NKAADJnn', |
| 61 | + 'iMHh', 'PadnlgHgHiMGd', 'ABDJpCIjaclfEMHi', |
| 62 | + 'nlgGf', 'Ge', 'B', |
| 63 | + 'kclgFbgFbhIlgGf', 'jbhIlgHgGf', 'MIjPadnmkclfD', |
| 64 | + 'Hg', 'mjbgH', 'GfDLDKB', |
| 65 | + 'ENLFafCGfEN', 'Gf', 'hKCHiMHgFbiMIl', |
| 66 | + 'biLEPPPafCIkdm', 'hKpD', 'keoBE', |
| 67 | + 'Hg', 'D', 'KACHhKAABDLF', |
| 68 | + 'NKA', 'HiMIkep', 'C', |
| 69 | + 'biMGdmkdnnlgFc', 'CGeAACJnlgG', 'FbgGfCIkdnnl', |
| 70 | + 'PafCHgFbiMIkb', 'LD', 'gGfENLEOP', |
| 71 | + 'IjOPPPa', 'eBFbhJpCIkdlhK', 'IjPbhIlfDMGf', |
| 72 | + 'dnmlfCGepCHhIm', 'nmjPaeoACIkepEM', 'oBDLEOONIlh', |
| 73 | + 'A', 'NKB', 'EOMHhIlhIkd' |
| 74 | +]) |
0 commit comments