UNPKG

postgrejs

Version:

Professional PostgreSQL client NodeJS

42 lines (41 loc) 1.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getParsers = getParsers; const constants_js_1 = require("../constants.js"); const decode_binaryarray_js_1 = require("./decode-binaryarray.js"); const parse_array_js_1 = require("./parse-array.js"); const DefaultColumnParser = (v) => v; function getParsers(typeMap, fields) { const parsers = new Array(fields.length); const l = fields.length; let f; let i; for (i = 0; i < l; i++) { f = fields[i]; const dataTypeReg = typeMap.get(f.dataTypeId); if (dataTypeReg) { const isArray = !!dataTypeReg.elementsOID; if (f.format === constants_js_1.DataFormat.binary) { const decode = dataTypeReg.parseBinary; if (decode) { parsers[i] = !isArray ? decode : (v, options) => (0, decode_binaryarray_js_1.decodeBinaryArray)(v, decode, options); } } else if (f.format === constants_js_1.DataFormat.text) { const parse = dataTypeReg.parseText; if (parse) { parsers[i] = !isArray ? parse : (v, options) => (0, parse_array_js_1.parsePostgresArray)(v, { transform: x => parse(x, options), separator: dataTypeReg.arraySeparator, }); } } } parsers[i] = parsers[i] || DefaultColumnParser; } return parsers; }