@schemavaults/dbh 0.5.1 → 0.6.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/PostgresDatabaseCredentials.d.ts +7 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/schemavaults-postgres-neon-proxy-adapter.d.ts +3 -2
- package/dist/schemavaults-postgres-neon-proxy-adapter.js +16 -2
- package/dist/schemavaults-postgres-neon-proxy-adapter.js.map +1 -1
- package/dist/sql.d.ts +2 -0
- package/dist/sql.js +2 -0
- package/dist/sql.js.map +1 -0
- package/dist/utils/buildPostgresUrl.d.ts +3 -0
- package/dist/utils/buildPostgresUrl.js +5 -0
- package/dist/utils/buildPostgresUrl.js.map +1 -0
- package/dist/utils/getPostgresNeonWsProxyUrl.js +2 -2
- package/dist/utils/getPostgresNeonWsProxyUrl.js.map +1 -1
- package/dist/utils/parseDatabaseCredentials.d.ts +3 -0
- package/dist/utils/parseDatabaseCredentials.js +73 -0
- package/dist/utils/parseDatabaseCredentials.js.map +1 -0
- package/dist/utils/parseDatabaseCredentialsFromEnv.d.ts +1 -1
- package/dist/utils/parseDatabaseCredentialsFromEnv.js +2 -53
- package/dist/utils/parseDatabaseCredentialsFromEnv.js.map +1 -1
- package/package.json +7 -4
- package/.npmrc.github +0 -3
- package/.npmrc.npmjs +0 -3
- package/tsconfig.json +0 -24
|
@@ -17,6 +17,12 @@ export interface PostgresDatabaseCredentials {
|
|
|
17
17
|
POSTGRES_URL: string;
|
|
18
18
|
POSTGRES_URL_NON_POOLING?: string;
|
|
19
19
|
POSTGRES_HOST: string;
|
|
20
|
-
POSTGRES_PORT: number;
|
|
20
|
+
POSTGRES_PORT: number | string;
|
|
21
21
|
POSTGRES_DATABASE: string;
|
|
22
22
|
}
|
|
23
|
+
export interface BaseInitializablePostgresDatabaseCredentials extends Partial<PostgresDatabaseCredentials> {
|
|
24
|
+
POSTGRES_HOST: string;
|
|
25
|
+
POSTGRES_DATABASE: string;
|
|
26
|
+
POSTGRES_USER: string;
|
|
27
|
+
POSTGRES_PASSWORD: string;
|
|
28
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { SchemaVaultsPostgresNeonProxyAdapter, SchemaVaultsPostgresNeonProxyAdapter as default } from "./schemavaults-postgres-neon-proxy-adapter";
|
|
2
|
-
export { sql } from "
|
|
1
|
+
export { SchemaVaultsPostgresNeonProxyAdapter, SchemaVaultsPostgresNeonProxyAdapter as default, } from "./schemavaults-postgres-neon-proxy-adapter";
|
|
2
|
+
export { sql } from "./sql";
|
|
3
3
|
export type * from "kysely";
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { SchemaVaultsPostgresNeonProxyAdapter, SchemaVaultsPostgresNeonProxyAdapter as default } from "./schemavaults-postgres-neon-proxy-adapter";
|
|
2
|
-
export { sql } from "
|
|
1
|
+
export { SchemaVaultsPostgresNeonProxyAdapter, SchemaVaultsPostgresNeonProxyAdapter as default, } from "./schemavaults-postgres-neon-proxy-adapter";
|
|
2
|
+
export { sql } from "./sql";
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,oCAAoC,IAAI,OAAO,GAChD,MAAM,4CAA4C,CAAC;AACpD,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { Kysely } from "kysely";
|
|
2
2
|
import type { SchemaVaultsAppEnvironment } from "./SchemaVaultsAppEnvironment";
|
|
3
|
-
import type {
|
|
3
|
+
import type { BaseInitializablePostgresDatabaseCredentials } from "./PostgresDatabaseCredentials";
|
|
4
4
|
export interface ISchemaVaultsPostgresNeonProxyAdapterConstructorOpts {
|
|
5
5
|
environment: SchemaVaultsAppEnvironment;
|
|
6
|
-
credentials?:
|
|
6
|
+
credentials?: BaseInitializablePostgresDatabaseCredentials;
|
|
7
7
|
}
|
|
8
8
|
export declare class SchemaVaultsPostgresNeonProxyAdapter<KyselyTablesType extends object> {
|
|
9
9
|
private readonly kysely_db;
|
|
@@ -15,3 +15,4 @@ export declare class SchemaVaultsPostgresNeonProxyAdapter<KyselyTablesType exten
|
|
|
15
15
|
get db(): Kysely<KyselyTablesType>;
|
|
16
16
|
destroy(): Promise<void>;
|
|
17
17
|
}
|
|
18
|
+
export default SchemaVaultsPostgresNeonProxyAdapter;
|
|
@@ -5,6 +5,7 @@ import maybeStripQuotes from "./utils/maybeStripQuotes";
|
|
|
5
5
|
import getPostgresNeonWsProxyUrl from "./utils/getPostgresNeonWsProxyUrl";
|
|
6
6
|
import isDbhInDebugMode from "./utils/isDbhInDebugMode";
|
|
7
7
|
import parseDatabaseCredentialsFromEnv from "./utils/parseDatabaseCredentialsFromEnv";
|
|
8
|
+
import parseDatabaseCredentials from "./utils/parseDatabaseCredentials";
|
|
8
9
|
export class SchemaVaultsPostgresNeonProxyAdapter {
|
|
9
10
|
kysely_db;
|
|
10
11
|
env;
|
|
@@ -22,7 +23,19 @@ export class SchemaVaultsPostgresNeonProxyAdapter {
|
|
|
22
23
|
// checks if 'SCHEMAVAULTS_DBH_DEBUG="true"' is set in env vars, or defaults to yes if in dev/test/staging environment
|
|
23
24
|
this.debug = isDbhInDebugMode(this.env);
|
|
24
25
|
const debug = this.debug;
|
|
25
|
-
|
|
26
|
+
let credentials = undefined;
|
|
27
|
+
if (opts.credentials) {
|
|
28
|
+
credentials = parseDatabaseCredentials(opts.credentials, debug);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
credentials = parseDatabaseCredentialsFromEnv(process.env, debug);
|
|
32
|
+
}
|
|
33
|
+
const port = typeof credentials.POSTGRES_PORT === "number"
|
|
34
|
+
? credentials.POSTGRES_PORT
|
|
35
|
+
: Number.parseInt(credentials.POSTGRES_PORT);
|
|
36
|
+
if (isNaN(port)) {
|
|
37
|
+
throw new Error(`Invalid port number: ${credentials.POSTGRES_PORT}`);
|
|
38
|
+
}
|
|
26
39
|
const kysely_neon_dialect_config = {
|
|
27
40
|
connectionString: credentials.POSTGRES_URL,
|
|
28
41
|
host: credentials.POSTGRES_HOST,
|
|
@@ -30,7 +43,7 @@ export class SchemaVaultsPostgresNeonProxyAdapter {
|
|
|
30
43
|
password: credentials.POSTGRES_PASSWORD,
|
|
31
44
|
database: credentials.POSTGRES_DATABASE,
|
|
32
45
|
useSecureWebSocket: (this.env === "production"),
|
|
33
|
-
port
|
|
46
|
+
port,
|
|
34
47
|
wsProxy: (pg_host) => {
|
|
35
48
|
if (debug) {
|
|
36
49
|
console.log(`[SchemaVaultsPostgresNeonProxyAdapter] NeonDialectConfig.wsProxy("${pg_host}")`);
|
|
@@ -71,4 +84,5 @@ export class SchemaVaultsPostgresNeonProxyAdapter {
|
|
|
71
84
|
return;
|
|
72
85
|
}
|
|
73
86
|
}
|
|
87
|
+
export default SchemaVaultsPostgresNeonProxyAdapter;
|
|
74
88
|
//# sourceMappingURL=schemavaults-postgres-neon-proxy-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemavaults-postgres-neon-proxy-adapter.js","sourceRoot":"","sources":["../src/schemavaults-postgres-neon-proxy-adapter.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,gBAAgB,MAAM,0BAA0B,CAAC;AACxD,OAAO,yBAEN,MAAM,mCAAmC,CAAC;AAC3C,OAAO,gBAAgB,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"schemavaults-postgres-neon-proxy-adapter.js","sourceRoot":"","sources":["../src/schemavaults-postgres-neon-proxy-adapter.ts"],"names":[],"mappings":"AAAA,mDAAmD;AAEnD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,gBAAgB,MAAM,0BAA0B,CAAC;AACxD,OAAO,yBAEN,MAAM,mCAAmC,CAAC;AAC3C,OAAO,gBAAgB,MAAM,0BAA0B,CAAC;AAKxD,OAAO,+BAA+B,MAAM,yCAAyC,CAAC;AACtF,OAAO,wBAAwB,MAAM,kCAAkC,CAAC;AASxE,MAAM,OAAO,oCAAoC;IAG9B,SAAS,CAA2B;IACpC,GAAG,CAA6B;IAChC,KAAK,CAAU;IAExB,MAAM,CAAC,gBAAgB,CAC7B,WAAgC;QAEhC,OAAO,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACvC,CAAC;IAEO,MAAM,CAAC,yBAAyB,CACtC,IAAoC;QAEpC,OAAO,yBAAyB,CAAC,IAAI,CAAkB,CAAC;IAC1D,CAAC,CAAC,qCAAqC;IAEvC,qDAAqD;IACrD,YACE,IAA0D;QAE1D,MAAM,WAAW,GAA+B,IAAI,CAAC,WAAW,CAAC;QACjE,IAAI,CAAC,GAAG,GAAG,WAAW,CAAC;QAEvB,sHAAsH;QACtH,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxC,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC;QAElC,IAAI,WAAW,GAA4C,SAAS,CAAC;QACrE,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,WAAW,GAAG,wBAAwB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,+BAA+B,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,IAAI,GACR,OAAO,WAAW,CAAC,aAAa,KAAK,QAAQ;YAC3C,CAAC,CAAC,WAAW,CAAC,aAAa;YAC3B,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;QAEjD,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,wBAAwB,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,0BAA0B,GAAsB;YACpD,gBAAgB,EAAE,WAAW,CAAC,YAA6B;YAC3D,IAAI,EAAE,WAAW,CAAC,aAA8B;YAChD,IAAI,EAAE,WAAW,CAAC,aAA8B;YAChD,QAAQ,EAAE,WAAW,CAAC,iBAAkC;YACxD,QAAQ,EAAE,WAAW,CAAC,iBAAkC;YACxD,kBAAkB,EAAE,CAAC,IAAI,CAAC,GAAG,KAAK,YAAY,CAAmB;YACjE,IAAI;YACJ,OAAO,EAAE,CAAC,OAAe,EAAU,EAAE;gBACnC,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,CAAC,GAAG,CACT,qEAAqE,OAAO,IAAI,CACjF,CAAC;gBACJ,CAAC;gBACD,sCAAsC;gBACtC,OAAO,oCAAoC,CAAC,yBAAyB,CAAC;oBACpE,OAAO;oBACP,WAAW;oBACX,KAAK;iBACN,CAAkB,CAAC;YACtB,CAAC;SACF,CAAC;QAEF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,0BAA0B,CAAC,WAAW,GAAG,KAAK,CAAC;YAC/C,0BAA0B,CAAC,eAAe,GAAG,KAAK,CAAC;QACrD,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CACT,+EAA+E,EAC/E,0BAA0B,CAC3B,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CACT,sGAAsG,CACvG,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,0BAA0B,CAAC,CAAC;QAE5D,MAAM,oBAAoB,GAAiB;YACzC,OAAO;YACP,GAAG,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC;SACxB,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,IAAI,MAAM,CAAmB,oBAAoB,CAAC,CAAC;QAEpE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CACT,mHAAmH,EACnH,IAAI,CAAC,GAAG,CACT,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAW,EAAE;QACX,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAC/B,OAAO;IACT,CAAC;CACF;AAED,eAAe,oCAAoC,CAAC"}
|
package/dist/sql.d.ts
ADDED
package/dist/sql.js
ADDED
package/dist/sql.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql.js","sourceRoot":"","sources":["../src/sql.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,QAAQ,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { BaseInitializablePostgresDatabaseCredentials } from "../PostgresDatabaseCredentials";
|
|
2
|
+
declare function buildPostgresUrl(opts: Pick<BaseInitializablePostgresDatabaseCredentials, "POSTGRES_HOST" | "POSTGRES_PORT" | "POSTGRES_USER" | "POSTGRES_PASSWORD" | "POSTGRES_DATABASE">): string;
|
|
3
|
+
export default buildPostgresUrl;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildPostgresUrl.js","sourceRoot":"","sources":["../../src/utils/buildPostgresUrl.ts"],"names":[],"mappings":"AAEA,SAAS,gBAAgB,CACvB,IAOC;IAED,OAAO,gBAAgB,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;AAC9I,CAAC;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -13,11 +13,11 @@ export function getPostgresNeonWsProxyUrl({ pg_host, environment, ...opts }) {
|
|
|
13
13
|
ws_host = "localhost";
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
16
|
-
ws_host = "
|
|
16
|
+
ws_host = "postgres-ws-proxy";
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
19
|
else if (environment === "test" || environment === "staging") {
|
|
20
|
-
ws_host = "
|
|
20
|
+
ws_host = "postgres-ws-proxy";
|
|
21
21
|
}
|
|
22
22
|
else {
|
|
23
23
|
throw new Error("Failed to build 'ws_host' url for Postgres Neon proxy!");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getPostgresNeonWsProxyUrl.js","sourceRoot":"","sources":["../../src/utils/getPostgresNeonWsProxyUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAEtB,MAAM,8BAA8B,CAAC;AAQtC,MAAM,UAAU,yBAAyB,CAAC,EACxC,OAAO,EACP,WAAW,EACX,GAAG,IAAI,EACwB;IAC/B,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CACT,2EAA2E,WAAW,4BAA4B,EAClH,OAAO,CACR,CAAC;IACJ,CAAC;IAED,IAAI,OAAe,CAAC;IACpB,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;QACjC,OAAO,GAAG,OAAO,CAAC;IACpB,CAAC;SAAM,IAAI,WAAW,KAAK,aAAa,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,GAAG,WAAW,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"getPostgresNeonWsProxyUrl.js","sourceRoot":"","sources":["../../src/utils/getPostgresNeonWsProxyUrl.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,GAEtB,MAAM,8BAA8B,CAAC;AAQtC,MAAM,UAAU,yBAAyB,CAAC,EACxC,OAAO,EACP,WAAW,EACX,GAAG,IAAI,EACwB;IAC/B,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;IAC3C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CACT,2EAA2E,WAAW,4BAA4B,EAClH,OAAO,CACR,CAAC;IACJ,CAAC;IAED,IAAI,OAAe,CAAC;IACpB,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;QACjC,OAAO,GAAG,OAAO,CAAC;IACpB,CAAC;SAAM,IAAI,WAAW,KAAK,aAAa,EAAE,CAAC;QACzC,IAAI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YAClC,OAAO,GAAG,WAAW,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,mBAAmB,CAAC;QAChC,CAAC;IACH,CAAC;SAAM,IAAI,WAAW,KAAK,MAAM,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC/D,OAAO,GAAG,mBAAmB,CAAC;IAChC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,OAAO,CAAC,MAAM,CACZ,qBAAqB,CAAC,WAAW,CAAC,EAClC,6EAA6E,CAC9E,CAAC;IAEF,MAAM,uBAAuB,GAC3B,WAAW,KAAK,YAAY;QAC1B,CAAC,CAAE,IAA+B;QAClC,CAAC,CAAE,IAA+B,CAAC;IAEvC,MAAM,4BAA4B,GAAY,WAAW,KAAK,YAAY,CAAC;IAC3E,MAAM,gBAAgB,GAAY,4BAA4B,CAAC;IAE/D,MAAM,sBAAsB,GAC1B,GAAG,OAAO,GAAG,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,uBAAuB,EAA4B,CAAC;IAEtG,OAAO,CAAC,MAAM,CACZ,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,CAAC;QACzC,CAAC,sBAAsB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAC9C,6FAA6F,CAC9F,CAAC;IAEF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CACT,0DAA0D,EAC1D,sBAAsB,CACvB,CAAC;IACJ,CAAC;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { BaseInitializablePostgresDatabaseCredentials, PostgresDatabaseCredentials } from "../PostgresDatabaseCredentials";
|
|
2
|
+
declare function parseDatabaseCredentials(minimum_credentials: Partial<PostgresDatabaseCredentials> & BaseInitializablePostgresDatabaseCredentials, debug?: boolean): PostgresDatabaseCredentials;
|
|
3
|
+
export default parseDatabaseCredentials;
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import maybeStripQuotes from "../utils/maybeStripQuotes";
|
|
2
|
+
import buildPostgresUrl from "./buildPostgresUrl";
|
|
3
|
+
function parseDatabaseCredentials(minimum_credentials, debug = false) {
|
|
4
|
+
const POSTGRES_URL_NON_POOLING = maybeStripQuotes(minimum_credentials.POSTGRES_URL_NON_POOLING);
|
|
5
|
+
if (!POSTGRES_URL_NON_POOLING) {
|
|
6
|
+
console.warn("POSTGRES_URL_NON_POOLING is not set in environment variables!");
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
if (debug) {
|
|
10
|
+
console.log(`[SchemaVaultsPostgresNeonProxyAdapter] Using postgres no-pooling connection url POSTGRES_URL_NON_POOLING: \"${POSTGRES_URL_NON_POOLING}\"`);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
const POSTGRES_HOST = maybeStripQuotes(minimum_credentials.POSTGRES_HOST);
|
|
14
|
+
if (!POSTGRES_HOST) {
|
|
15
|
+
throw new Error("POSTGRES_HOST is not set in environment variables!");
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
if (debug) {
|
|
19
|
+
console.log(`[SchemaVaultsPostgresNeonProxyAdapter] Using database POSTGRES_HOST: \"${POSTGRES_HOST}\"`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
let POSTGRES_PORT = 5432;
|
|
23
|
+
if (typeof minimum_credentials.POSTGRES_PORT === "string" &&
|
|
24
|
+
minimum_credentials.POSTGRES_PORT.length > 0) {
|
|
25
|
+
POSTGRES_PORT = Number.parseInt(maybeStripQuotes(minimum_credentials.POSTGRES_PORT) ?? "NaN");
|
|
26
|
+
}
|
|
27
|
+
if (typeof POSTGRES_PORT !== "number" || isNaN(POSTGRES_PORT)) {
|
|
28
|
+
throw new Error("Failed to load POSTGRES_PORT from environment variables! NaN error!");
|
|
29
|
+
}
|
|
30
|
+
const POSTGRES_DATABASE = maybeStripQuotes(minimum_credentials.POSTGRES_DATABASE);
|
|
31
|
+
if (!POSTGRES_DATABASE) {
|
|
32
|
+
throw new Error("Failed to load database name from POSTGRES_DATABASE environment variable!");
|
|
33
|
+
}
|
|
34
|
+
const POSTGRES_USER = maybeStripQuotes(minimum_credentials.POSTGRES_USER);
|
|
35
|
+
if (!POSTGRES_USER) {
|
|
36
|
+
throw new Error("POSTGRES_USER is not defined in environment variables!");
|
|
37
|
+
}
|
|
38
|
+
const POSTGRES_PASSWORD = maybeStripQuotes(minimum_credentials.POSTGRES_PASSWORD);
|
|
39
|
+
if (!POSTGRES_PASSWORD) {
|
|
40
|
+
throw new Error("POSTGRES_PASSWORD is not defined in environment variables!");
|
|
41
|
+
}
|
|
42
|
+
let POSTGRES_URL = "";
|
|
43
|
+
if (typeof minimum_credentials.POSTGRES_URL === "string" &&
|
|
44
|
+
minimum_credentials.POSTGRES_URL.length > 0) {
|
|
45
|
+
POSTGRES_URL = maybeStripQuotes(minimum_credentials.POSTGRES_URL) ?? "";
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
POSTGRES_URL = buildPostgresUrl({
|
|
49
|
+
POSTGRES_DATABASE,
|
|
50
|
+
POSTGRES_HOST,
|
|
51
|
+
POSTGRES_PORT,
|
|
52
|
+
POSTGRES_USER,
|
|
53
|
+
POSTGRES_PASSWORD,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
if (!POSTGRES_URL) {
|
|
57
|
+
throw new Error("Failed to load POSTGRES_URL from environment variables, or to construct it from other environment variables!");
|
|
58
|
+
}
|
|
59
|
+
if (debug) {
|
|
60
|
+
console.log(`[SchemaVaultsPostgresNeonProxyAdapter] Using postgres connection url POSTGRES_URL: \"${POSTGRES_URL}\"`);
|
|
61
|
+
}
|
|
62
|
+
return {
|
|
63
|
+
POSTGRES_USER,
|
|
64
|
+
POSTGRES_PASSWORD,
|
|
65
|
+
POSTGRES_URL,
|
|
66
|
+
POSTGRES_URL_NON_POOLING,
|
|
67
|
+
POSTGRES_HOST,
|
|
68
|
+
POSTGRES_PORT,
|
|
69
|
+
POSTGRES_DATABASE,
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
export default parseDatabaseCredentials;
|
|
73
|
+
//# sourceMappingURL=parseDatabaseCredentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseDatabaseCredentials.js","sourceRoot":"","sources":["../../src/utils/parseDatabaseCredentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { PostgresDatabaseCredentials } from "../PostgresDatabaseCredentials";
|
|
1
|
+
import type { PostgresDatabaseCredentials } from "../PostgresDatabaseCredentials";
|
|
2
2
|
export declare function parseDatabaseCredentialsFromEnv(env: NodeJS.ProcessEnv, debug?: boolean): PostgresDatabaseCredentials;
|
|
3
3
|
export default parseDatabaseCredentialsFromEnv;
|
|
@@ -1,57 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import parseDatabaseCredentials from "./parseDatabaseCredentials";
|
|
2
2
|
export function parseDatabaseCredentialsFromEnv(env, debug = false) {
|
|
3
|
-
|
|
4
|
-
if (!POSTGRES_URL) {
|
|
5
|
-
throw new Error("POSTGRES_URL is not set in environment variables!");
|
|
6
|
-
}
|
|
7
|
-
else {
|
|
8
|
-
if (debug) {
|
|
9
|
-
console.log(`[SchemaVaultsPostgresNeonProxyAdapter] Using postgres connection url POSTGRES_URL: \"${POSTGRES_URL}\"`);
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
const POSTGRES_URL_NON_POOLING = maybeStripQuotes(env.POSTGRES_URL_NON_POOLING);
|
|
13
|
-
if (!POSTGRES_URL_NON_POOLING) {
|
|
14
|
-
console.warn("POSTGRES_URL_NON_POOLING is not set in environment variables!");
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
if (debug) {
|
|
18
|
-
console.log(`[SchemaVaultsPostgresNeonProxyAdapter] Using postgres no-pooling connection url POSTGRES_URL_NON_POOLING: \"${POSTGRES_URL_NON_POOLING}\"`);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
const POSTGRES_HOST = maybeStripQuotes(env.POSTGRES_HOST);
|
|
22
|
-
if (!POSTGRES_HOST) {
|
|
23
|
-
throw new Error("POSTGRES_HOST is not set in environment variables!");
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
if (debug) {
|
|
27
|
-
console.log(`[SchemaVaultsPostgresNeonProxyAdapter] Using database POSTGRES_HOST: \"${POSTGRES_HOST}\"`);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
const POSTGRES_PORT = Number.parseInt(maybeStripQuotes(env.POSTGRES_PORT) ?? "NaN");
|
|
31
|
-
if (isNaN(POSTGRES_PORT)) {
|
|
32
|
-
throw new Error("Failed to load POSTGRES_PORT from environment variables! NaN error!");
|
|
33
|
-
}
|
|
34
|
-
const POSTGRES_DATABASE = maybeStripQuotes(env.POSTGRES_DATABASE);
|
|
35
|
-
if (!POSTGRES_DATABASE) {
|
|
36
|
-
throw new Error("Failed to load database name from POSTGRES_DATABASE environment variable!");
|
|
37
|
-
}
|
|
38
|
-
const POSTGRES_USER = maybeStripQuotes(env.POSTGRES_USER);
|
|
39
|
-
if (!POSTGRES_USER) {
|
|
40
|
-
throw new Error("POSTGRES_USER is not defined in environment variables!");
|
|
41
|
-
}
|
|
42
|
-
const POSTGRES_PASSWORD = maybeStripQuotes(env.POSTGRES_PASSWORD);
|
|
43
|
-
if (!POSTGRES_PASSWORD) {
|
|
44
|
-
throw new Error("POSTGRES_PASSWORD is not defined in environment variables!");
|
|
45
|
-
}
|
|
46
|
-
return {
|
|
47
|
-
POSTGRES_USER,
|
|
48
|
-
POSTGRES_PASSWORD,
|
|
49
|
-
POSTGRES_URL,
|
|
50
|
-
POSTGRES_URL_NON_POOLING,
|
|
51
|
-
POSTGRES_HOST,
|
|
52
|
-
POSTGRES_PORT,
|
|
53
|
-
POSTGRES_DATABASE,
|
|
54
|
-
};
|
|
3
|
+
return parseDatabaseCredentials(process.env, debug);
|
|
55
4
|
}
|
|
56
5
|
export default parseDatabaseCredentialsFromEnv;
|
|
57
6
|
//# sourceMappingURL=parseDatabaseCredentialsFromEnv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseDatabaseCredentialsFromEnv.js","sourceRoot":"","sources":["../../src/utils/parseDatabaseCredentialsFromEnv.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parseDatabaseCredentialsFromEnv.js","sourceRoot":"","sources":["../../src/utils/parseDatabaseCredentialsFromEnv.ts"],"names":[],"mappings":"AAEA,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAElE,MAAM,UAAU,+BAA+B,CAC7C,GAAsB,EACtB,QAAiB,KAAK;IAEtB,OAAO,wBAAwB,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACtD,CAAC;AAED,eAAe,+BAA+B,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@schemavaults/dbh",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "Easily connect to PostgresDB from serverless environment",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"private": false,
|
|
@@ -20,11 +20,14 @@
|
|
|
20
20
|
},
|
|
21
21
|
"scripts": {
|
|
22
22
|
"build": "tsc --project tsconfig.json && tsc-alias --project tsconfig.json",
|
|
23
|
-
"test": "bun test",
|
|
24
|
-
"test
|
|
23
|
+
"test:unit": "bun test --test-name-pattern 'DBH Init'",
|
|
24
|
+
"test": "bun run test:unit",
|
|
25
|
+
"test:e2e": "bun test ./src/tests/e2e/ConnectToLocalDatabase.test.ts",
|
|
25
26
|
"cleanup:compiled_tests_in_dist_directory": "find ./dist -type f \\( -name \"*.test.js\" -o -name \"*.test.js.map\" -o -name \"*.test.d.ts\" \\) -delete",
|
|
27
|
+
"cleanup:rm_tests_dir": "rm -rf ./dist/tests",
|
|
26
28
|
"cleanup": "bun run cleanup:compiled_tests_in_dist_directory",
|
|
27
|
-
"postbuild": "bun run cleanup"
|
|
29
|
+
"postbuild": "bun run cleanup",
|
|
30
|
+
"version": "bun run ./scripts/package_version.ts"
|
|
28
31
|
},
|
|
29
32
|
"main": "dist/index.js",
|
|
30
33
|
"module": "dist/index.js",
|
package/.npmrc.github
DELETED
package/.npmrc.npmjs
DELETED
package/tsconfig.json
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"strict": true,
|
|
4
|
-
"outDir": "dist",
|
|
5
|
-
"target": "ESNext",
|
|
6
|
-
"moduleResolution": "Bundler",
|
|
7
|
-
"isolatedModules": true,
|
|
8
|
-
"module": "ESNext",
|
|
9
|
-
"skipLibCheck": true,
|
|
10
|
-
"declaration": true,
|
|
11
|
-
"emitDeclarationOnly": false,
|
|
12
|
-
"sourceMap": true,
|
|
13
|
-
"esModuleInterop": true,
|
|
14
|
-
"noImplicitAny": true,
|
|
15
|
-
"strictNullChecks": true,
|
|
16
|
-
"types": ["bun-types"],
|
|
17
|
-
"paths": {
|
|
18
|
-
"@/*": ["src/*"]
|
|
19
|
-
},
|
|
20
|
-
"baseUrl": "."
|
|
21
|
-
},
|
|
22
|
-
"include": ["src/**/*.ts"],
|
|
23
|
-
"exclude": ["node_modules", "dist"]
|
|
24
|
-
}
|