UNPKG

pg-server

Version:

Postgres DB server emulator, proxy or honeypot

72 lines 2.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.CommandWriter = void 0; const commands_1 = require("./commands"); const serializer_1 = require("pg-protocol/dist/serializer"); const utils_1 = require("../utils"); class CommandWriter { constructor(db) { this.db = db; } sendRaw(raw) { this.db.write(raw); } send(command) { const buf = this.serialize(command); this.db.write(buf); } serialize(command) { switch (command.type) { case commands_1.CommandCode.bind: return serializer_1.serialize.bind({ binary: command.binary, portal: command.portal, statement: command.statement, values: command.values, }); case commands_1.CommandCode.close: return serializer_1.serialize.close({ type: command.portalType, name: command.name, }); case commands_1.CommandCode.copyDone: return serializer_1.serialize.copyDone(); case commands_1.CommandCode.copyFail: return serializer_1.serialize.copyFail(command.message); case commands_1.CommandCode.copyFromChunk: return serializer_1.serialize.copyData(command.buffer); case commands_1.CommandCode.describe: return serializer_1.serialize.describe({ type: command.portalType, name: command.name, }); case commands_1.CommandCode.end: return serializer_1.serialize.end(); case commands_1.CommandCode.execute: return serializer_1.serialize.execute({ portal: command.portal, rows: command.rows, }); case commands_1.CommandCode.flush: return serializer_1.serialize.flush(); case commands_1.CommandCode.init: return serializer_1.serialize.startup(command.options); case commands_1.CommandCode.parse: return serializer_1.serialize.parse({ text: command.query, name: command.queryName, types: command.parameters, }); case commands_1.CommandCode.query: return serializer_1.serialize.query(command.query); case commands_1.CommandCode.startup: return serializer_1.serialize.password(command.md5); case commands_1.CommandCode.sync: return serializer_1.serialize.sync(); default: (0, utils_1.assertNever)(command); } } } exports.CommandWriter = CommandWriter; //# sourceMappingURL=command-writer.js.map