EchoForum/src/lib/db.server.js
2024-05-10 11:35:43 +03:00

32 lines
800 B
JavaScript

import { env } from '$lib/env';
import postgres from 'postgres';
import ssh2 from 'ssh2';
// @ts-ignore
export const sql = postgres(
{
host: env.PG_HOST,
port: parseInt(env.PG_PORT),
database: env.PG_DATABASE,
username: env.PG_USERNAME,
password: env.PG_PASSWORD,
// @ts-ignore
socket: ({ host: [host], port: [port] }) => new Promise((resolve, reject) => {
const ssh = new ssh2.Client();
ssh
.on('error', reject)
.on('ready', () =>
ssh.forwardOut('127.0.0.1', 12345, host, port,
(err, socket) => err ? reject(err) : resolve(socket)
)
)
.connect({
host: env.SSH_HOST,
port: parseInt(env.SSH_PORT),
username: env.SSH_USERNAME,
password: env.SSH_PASSWORD
})
})
}
);