pg-server
Version:
Postgres DB server emulator, proxy or honeypot
72 lines • 2.89 kB
JavaScript
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
;