row-token-parser.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.default = void 0;
  6. var _token = require("./token");
  7. var _valueParser = _interopRequireDefault(require("../value-parser"));
  8. function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
  9. // s2.2.7.17
  10. function rowParser(parser, colMetadata, options, callback) {
  11. const columns = [];
  12. const len = colMetadata.length;
  13. let i = 0;
  14. function next(done) {
  15. if (i === len) {
  16. return done();
  17. }
  18. const columnMetaData = colMetadata[i];
  19. (0, _valueParser.default)(parser, columnMetaData, options, value => {
  20. columns.push({
  21. value: value,
  22. metadata: columnMetaData
  23. });
  24. i++;
  25. next(done);
  26. });
  27. }
  28. next(() => {
  29. if (options.useColumnNames) {
  30. const columnsMap = {};
  31. columns.forEach(column => {
  32. const colName = column.metadata.colName;
  33. if (columnsMap[colName] == null) {
  34. columnsMap[colName] = column;
  35. }
  36. });
  37. callback(new _token.RowToken(columnsMap));
  38. } else {
  39. callback(new _token.RowToken(columns));
  40. }
  41. });
  42. }
  43. var _default = rowParser;
  44. exports.default = _default;
  45. module.exports = rowParser;