utils.ts 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. /* eslint-disable @typescript-eslint/no-unsafe-member-access */
  2. /* eslint-disable @typescript-eslint/no-var-requires */
  3. /* eslint-disable @typescript-eslint/no-unsafe-assignment */
  4. //import { dropdb, createdb } from 'pgtools';
  5. import * as util from 'util';
  6. const pgtools = require('pgtools');
  7. const dropdb = pgtools.dropdb;
  8. const createdb = pgtools.createdb;
  9. export function getPgConfig(): { [index: string] : unknown } {
  10. return {
  11. host: process.env.DB_HOST,
  12. user: process.env.DB_USERNAME,
  13. password: process.env.DB_PASSWORD,
  14. port: process.env.DB_PORT
  15. };
  16. }
  17. export async function dropDb(db?: string): Promise<void> {
  18. const database = db || process.env.DB_NAME;
  19. const drop = util.promisify(dropdb);
  20. try {
  21. await drop(getPgConfig(), database);
  22. } catch (e) {
  23. console.error(e);
  24. }
  25. }
  26. export async function createDb(db?: string): Promise<void> {
  27. const database = db || process.env.DB_NAME;
  28. const create = util.promisify(createdb);
  29. try {
  30. await create(getPgConfig(), database);
  31. } catch (e) {
  32. console.error(e);
  33. }
  34. }