mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 11:29:46 +00:00
set up node-postgres
This commit is contained in:
parent
e3f86e1b54
commit
4d88bb9366
3 changed files with 86 additions and 22 deletions
|
|
@ -52,6 +52,7 @@
|
|||
"linkify-string": "npm:linkify-string@^4.1.1",
|
||||
"linkifyjs": "npm:linkifyjs@^4.1.1",
|
||||
"lru-cache": "npm:lru-cache@^10.2.2",
|
||||
"node-pg": "npm:pg@8.12.0",
|
||||
"nostr-relaypool": "npm:nostr-relaypool2@0.6.34",
|
||||
"nostr-tools": "npm:nostr-tools@2.5.1",
|
||||
"nostr-wasm": "npm:nostr-wasm@^0.1.0",
|
||||
|
|
|
|||
78
deno.lock
generated
78
deno.lock
generated
|
|
@ -58,6 +58,7 @@
|
|||
"npm:nostr-tools@^2.5.0": "npm:nostr-tools@2.5.1",
|
||||
"npm:nostr-tools@^2.7.0": "npm:nostr-tools@2.7.0",
|
||||
"npm:nostr-wasm@^0.1.0": "npm:nostr-wasm@0.1.0",
|
||||
"npm:pg@8.12.0": "npm:pg@8.12.0",
|
||||
"npm:tldts@^6.0.14": "npm:tldts@6.1.18",
|
||||
"npm:type-fest@^4.3.0": "npm:type-fest@4.18.2",
|
||||
"npm:unfurl.js@^6.4.0": "npm:unfurl.js@6.4.0",
|
||||
|
|
@ -126,6 +127,7 @@
|
|||
"integrity": "c880fd91b5fe69a6239f98cae62297ffccc2a78d160af4d376dd05899352daf0",
|
||||
"dependencies": [
|
||||
"jsr:@std/encoding@^0.224.1",
|
||||
"npm:@scure/base@^1.1.6",
|
||||
"npm:@scure/bip32@^1.4.0",
|
||||
"npm:@scure/bip39@^1.3.0",
|
||||
"npm:kysely@^0.27.3",
|
||||
|
|
@ -821,6 +823,55 @@
|
|||
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"pg-cloudflare@1.1.1": {
|
||||
"integrity": "sha512-xWPagP/4B6BgFO+EKz3JONXv3YDgvkbVrGw2mTo3D6tVDQRh1e7cqVGvyR3BE+eQgAvx1XhW/iEASj4/jCWl3Q==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"pg-connection-string@2.6.4": {
|
||||
"integrity": "sha512-v+Z7W/0EO707aNMaAEfiGnGL9sxxumwLl2fJvCQtMn9Fxsg+lPpPkdcyBSv/KFgpGdYkMfn+EI1Or2EHjpgLCA==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"pg-int8@1.0.1": {
|
||||
"integrity": "sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"pg-pool@3.6.2_pg@8.12.0": {
|
||||
"integrity": "sha512-Htjbg8BlwXqSBQ9V8Vjtc+vzf/6fVUuak/3/XXKA9oxZprwW3IMDQTGHP+KDmVL7rtd+R1QjbnCFPuTHm3G4hg==",
|
||||
"dependencies": {
|
||||
"pg": "pg@8.12.0"
|
||||
}
|
||||
},
|
||||
"pg-protocol@1.6.1": {
|
||||
"integrity": "sha512-jPIlvgoD63hrEuihvIg+tJhoGjUsLPn6poJY9N5CnlPd91c2T18T/9zBtLxZSb1EhYxBRoZJtzScCaWlYLtktg==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"pg-types@2.2.0": {
|
||||
"integrity": "sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==",
|
||||
"dependencies": {
|
||||
"pg-int8": "pg-int8@1.0.1",
|
||||
"postgres-array": "postgres-array@2.0.0",
|
||||
"postgres-bytea": "postgres-bytea@1.0.0",
|
||||
"postgres-date": "postgres-date@1.0.7",
|
||||
"postgres-interval": "postgres-interval@1.2.0"
|
||||
}
|
||||
},
|
||||
"pg@8.12.0": {
|
||||
"integrity": "sha512-A+LHUSnwnxrnL/tZ+OLfqR1SxLN3c/pgDztZ47Rpbsd4jUytsTtwQo/TLPRzPJMp/1pbhYVhH9cuSZLAajNfjQ==",
|
||||
"dependencies": {
|
||||
"pg-cloudflare": "pg-cloudflare@1.1.1",
|
||||
"pg-connection-string": "pg-connection-string@2.6.4",
|
||||
"pg-pool": "pg-pool@3.6.2_pg@8.12.0",
|
||||
"pg-protocol": "pg-protocol@1.6.1",
|
||||
"pg-types": "pg-types@2.2.0",
|
||||
"pgpass": "pgpass@1.0.5"
|
||||
}
|
||||
},
|
||||
"pgpass@1.0.5": {
|
||||
"integrity": "sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==",
|
||||
"dependencies": {
|
||||
"split2": "split2@4.2.0"
|
||||
}
|
||||
},
|
||||
"picomatch@2.3.1": {
|
||||
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
|
||||
"dependencies": {}
|
||||
|
|
@ -829,6 +880,24 @@
|
|||
"integrity": "sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"postgres-array@2.0.0": {
|
||||
"integrity": "sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"postgres-bytea@1.0.0": {
|
||||
"integrity": "sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"postgres-date@1.0.7": {
|
||||
"integrity": "sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"postgres-interval@1.2.0": {
|
||||
"integrity": "sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==",
|
||||
"dependencies": {
|
||||
"xtend": "xtend@4.0.2"
|
||||
}
|
||||
},
|
||||
"psl@1.9.0": {
|
||||
"integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==",
|
||||
"dependencies": {}
|
||||
|
|
@ -906,6 +975,10 @@
|
|||
"is-fullwidth-code-point": "is-fullwidth-code-point@5.0.0"
|
||||
}
|
||||
},
|
||||
"split2@4.2.0": {
|
||||
"integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"string-argv@0.3.2": {
|
||||
"integrity": "sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==",
|
||||
"dependencies": {}
|
||||
|
|
@ -1064,6 +1137,10 @@
|
|||
"integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"xtend@4.0.2": {
|
||||
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
|
||||
"dependencies": {}
|
||||
},
|
||||
"yaml@2.3.4": {
|
||||
"integrity": "sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA==",
|
||||
"dependencies": {}
|
||||
|
|
@ -1388,6 +1465,7 @@
|
|||
"npm:nostr-relaypool2@0.6.34",
|
||||
"npm:nostr-tools@2.5.1",
|
||||
"npm:nostr-wasm@^0.1.0",
|
||||
"npm:pg@8.12.0",
|
||||
"npm:tldts@^6.0.14",
|
||||
"npm:tseep@^1.2.1",
|
||||
"npm:type-fest@^4.3.0",
|
||||
|
|
|
|||
|
|
@ -1,10 +1,8 @@
|
|||
import { Kysely, PostgresAdapter, PostgresIntrospector, PostgresQueryCompiler } from 'kysely';
|
||||
import { PostgreSQLDriver } from 'kysely_deno_postgres';
|
||||
|
||||
import { Kysely, PostgresDialect } from 'kysely';
|
||||
import * as pg from "node-pg";
|
||||
import { Conf } from '@/config.ts';
|
||||
import { DittoTables } from '@/db/DittoTables.ts';
|
||||
import { KyselyLogger } from '@/db/KyselyLogger.ts';
|
||||
|
||||
export class DittoPostgres {
|
||||
static db: Kysely<DittoTables> | undefined;
|
||||
|
||||
|
|
@ -12,24 +10,11 @@ export class DittoPostgres {
|
|||
static async getInstance(): Promise<Kysely<DittoTables>> {
|
||||
if (!this.db) {
|
||||
this.db = new Kysely({
|
||||
dialect: {
|
||||
createAdapter() {
|
||||
return new PostgresAdapter();
|
||||
},
|
||||
// @ts-ignore mismatched kysely versions probably
|
||||
createDriver() {
|
||||
return new PostgreSQLDriver(
|
||||
{ connectionString: Conf.databaseUrl },
|
||||
Conf.pg.poolSize,
|
||||
);
|
||||
},
|
||||
createIntrospector(db: Kysely<unknown>) {
|
||||
return new PostgresIntrospector(db);
|
||||
},
|
||||
createQueryCompiler() {
|
||||
return new PostgresQueryCompiler();
|
||||
},
|
||||
},
|
||||
dialect: new PostgresDialect({
|
||||
pool: new pg.default.Pool({
|
||||
connectionString: Conf.databaseUrl
|
||||
})
|
||||
}),
|
||||
log: KyselyLogger,
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue