var textParsers = require('./lib/textParsers'); var binaryParsers = require('./lib/binaryParsers'); var arrayParser = require('./lib/arrayParser'); var builtinTypes = require('./lib/builtins'); exports.getTypeParser = getTypeParser; exports.setTypeParser = setTypeParser; exports.arrayParser = arrayParser; exports.builtins = builtinTypes; var typeParsers = { text: {}, binary: {} }; //the empty parse function function noParse (val) { return String(val); }; //returns a function used to convert a specific type (specified by //oid) into a result javascript type //note: the oid can be obtained via the following sql query: //SELECT oid FROM pg_type WHERE typname = 'TYPE_NAME_HERE'; function getTypeParser (oid, format) { format = format || 'text'; if (!typeParsers[format]) { return noParse; } return typeParsers[format][oid] || noParse; }; function setTypeParser (oid, format, parseFn) { if(typeof format == 'function') { parseFn = format; format = 'text'; } typeParsers[format][oid] = parseFn; }; textParsers.init(function(oid, converter) { typeParsers.text[oid] = converter; }); binaryParsers.init(function(oid, converter) { typeParsers.binary[oid] = converter; });