@tricoteuses/senat
Version:
Handle French Sénat's open data
34 lines (33 loc) • 1.25 kB
JavaScript
import { Kysely, PostgresDialect } from "kysely";
import * as pg from "pg";
import { types } from "pg";
import Cursor from "pg-cursor";
import config from "./config";
import { datasets } from "./datasets";
// Map int8 to number instead of string
// https://github.com/brianc/node-pg-types#use
pg.types.setTypeParser(types.builtins.INT8, (val) => {
return parseInt(val, 10);
});
export const dbAmeli = createDb(datasets.ameli.database, datasets.ameli.schema);
export const dbDebats = createDb(datasets.debats.database, datasets.debats.schema);
export const dbDosleg = createDb(datasets.dosleg.database, datasets.dosleg.schema);
export const dbQuestions = createDb(datasets.questions.database, datasets.questions.schema);
export const dbSens = createDb(datasets.sens.database, datasets.sens.schema);
function createDb(database, schema) {
const dialect = new PostgresDialect({
pool: new pg.Pool({
database: database,
host: config.db.host,
user: config.db.user,
password: config.db.password,
port: config.db.port,
max: 10,
}),
cursor: Cursor,
});
return new Kysely({
log: ["error"],
dialect: dialect,
}).withSchema(schema);
}