Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import * as pg from "pg";
- const pool = new pg.Pool({
- database: "postgres"
- });
- export const insert = async (
- tableName: string,
- data: {},
- returning?: string
- ) => {
- const db = await pool.connect();
- const result = await db.query(
- `INSERT into ${tableName} (${Object.keys(data).join(
- ", "
- )}) VALUES (${Object.keys(data)
- .map((item, i) => `$${i + 1}`)
- .join(", ")}) ${returning ? `RETURNING ${returning}` : ""};`,
- Object.values(data)
- );
- await db.release();
- return result;
- };
- export const query = async (query: string, values?: {}[]) => {
- const db = await pool.connect();
- const result = await db.query(query, values);
- await db.release();
- return result;
- };
- export const update = async (
- tableName: string,
- data: {},
- where: string[],
- values: {}[]
- ) => {
- const db = await pool.connect();
- const result = await db.query(
- `UPDATE ${tableName}
- SET ${Object.keys(data)
- .map((item, i) => `${item} = $${i + 1 + values.length}`)
- .join(", ")}
- WHERE ${whereClause(where)};`,
- values.concat(Object.values(data))
- );
- await db.release();
- return result;
- };
- export const select = async (
- tableName: string,
- where?: string[],
- selection?: string,
- values?: any[]
- ) => {
- const db = await pool.connect();
- const result = db.query(
- `SELECT ${selection || "*"} FROM ${tableName} ${
- where ? `WHERE ${whereClause(where)}` : ""
- }`,
- values
- );
- await db.release();
- return result;
- };
- export const deletee = async (
- tableName: string,
- where?: string[],
- values?: any[]
- ) => {
- const db = await pool.connect();
- const result = db.query(
- `DELETE FROM ${tableName} ${where ? `WHERE ${whereClause(where)}` : ""}`,
- values
- );
- await db.release();
- return result;
- };
- const whereClause = (conditions: string[]) => {
- return conditions.join(" AND ");
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement