sync.js 703 B

123456789101112131415161718192021222324252627
  1. import {CsvError, transform} from './api/index.js';
  2. const parse = function(data, opts={}){
  3. if(typeof data === 'string'){
  4. data = Buffer.from(data);
  5. }
  6. const records = opts && opts.objname ? {} : [];
  7. const parser = transform(opts);
  8. const push = (record) => {
  9. if(parser.options.objname === undefined)
  10. records.push(record);
  11. else{
  12. records[record[0]] = record[1];
  13. }
  14. };
  15. const close = () => {};
  16. const err1 = parser.parse(data, false, push, close);
  17. if(err1 !== undefined) throw err1;
  18. const err2 = parser.parse(undefined, true, push, close);
  19. if(err2 !== undefined) throw err2;
  20. return records;
  21. };
  22. // export default parse
  23. export { parse };
  24. export { CsvError };