32 lines
800 B
JavaScript
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
|
|
})
|
|
})
|
|
}
|
|
);
|