@schemavaults/dbh 0.5.1 → 0.5.6

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.
@@ -1,14 +1,8 @@
1
1
  import maybeStripQuotes from "./maybeStripQuotes";
2
+ function buildPostgresUrl(opts) {
3
+ return `postgresql://${opts.POSTGRES_USER}:${opts.POSTGRES_PASSWORD}@${opts.POSTGRES_HOST}:${opts.POSTGRES_PORT}/${opts.POSTGRES_DATABASE}`;
4
+ }
2
5
  export function parseDatabaseCredentialsFromEnv(env, debug = false) {
3
- const POSTGRES_URL = maybeStripQuotes(env.POSTGRES_URL);
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
6
  const POSTGRES_URL_NON_POOLING = maybeStripQuotes(env.POSTGRES_URL_NON_POOLING);
13
7
  if (!POSTGRES_URL_NON_POOLING) {
14
8
  console.warn("POSTGRES_URL_NON_POOLING is not set in environment variables!");
@@ -27,8 +21,11 @@ export function parseDatabaseCredentialsFromEnv(env, debug = false) {
27
21
  console.log(`[SchemaVaultsPostgresNeonProxyAdapter] Using database POSTGRES_HOST: \"${POSTGRES_HOST}\"`);
28
22
  }
29
23
  }
30
- const POSTGRES_PORT = Number.parseInt(maybeStripQuotes(env.POSTGRES_PORT) ?? "NaN");
31
- if (isNaN(POSTGRES_PORT)) {
24
+ let POSTGRES_PORT = 5432;
25
+ if (typeof env.POSTGRES_PORT === "string" && env.POSTGRES_PORT.length > 0) {
26
+ POSTGRES_PORT = Number.parseInt(maybeStripQuotes(env.POSTGRES_PORT) ?? "NaN");
27
+ }
28
+ if (typeof POSTGRES_PORT !== "number" || isNaN(POSTGRES_PORT)) {
32
29
  throw new Error("Failed to load POSTGRES_PORT from environment variables! NaN error!");
33
30
  }
34
31
  const POSTGRES_DATABASE = maybeStripQuotes(env.POSTGRES_DATABASE);
@@ -43,6 +40,25 @@ export function parseDatabaseCredentialsFromEnv(env, debug = false) {
43
40
  if (!POSTGRES_PASSWORD) {
44
41
  throw new Error("POSTGRES_PASSWORD is not defined in environment variables!");
45
42
  }
43
+ let POSTGRES_URL = "";
44
+ if (typeof env.POSTGRES_URL === "string" && env.POSTGRES_URL.length > 0) {
45
+ POSTGRES_URL = maybeStripQuotes(env.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
+ }
46
62
  return {
47
63
  POSTGRES_USER,
48
64
  POSTGRES_PASSWORD,
@@ -1 +1 @@
1
- {"version":3,"file":"parseDatabaseCredentialsFromEnv.js","sourceRoot":"","sources":["../../src/utils/parseDatabaseCredentialsFromEnv.ts"],"names":[],"mappings":"AACA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,UAAU,+BAA+B,CAAC,GAAsB,EAAE,QAAiB,KAAK;IAC5F,MAAM,YAAY,GAAG,gBAAgB,CACjC,GAAG,CAAC,YAAY,CACjB,CAAC;IACF,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;IACvE,CAAC;SAAM,CAAC;QACN,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CACT,wFAAwF,YAAY,IAAI,CACzG,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,wBAAwB,GAC5B,gBAAgB,CACd,GAAG,CAAC,wBAAwB,CAC7B,CAAC;IACJ,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC9B,OAAO,CAAC,IAAI,CACV,+DAA+D,CAChE,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CACT,+GAA+G,wBAAwB,IAAI,CAC5I,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,CACpC,GAAG,CAAC,aAAa,CAClB,CAAC;IACF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;SAAM,CAAC;QACN,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CACT,0EAA0E,aAAa,IAAI,CAC5F,CAAC;QACJ,CAAC;IACH,CAAC;IAED,MAAM,aAAa,GAAW,MAAM,CAAC,QAAQ,CAC3C,gBAAgB,CACd,GAAG,CAAC,aAAa,CAClB,IAAI,KAAK,CACX,CAAC;IACF,IAAI,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GACrB,gBAAgB,CACd,GAAG,CAAC,iBAAiB,CACtB,CAAC;IACJ,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,CACpC,GAAG,CAAC,aAAa,CAClB,CAAC;IACF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;IAC5E,CAAC;IAED,MAAM,iBAAiB,GACrB,gBAAgB,CACd,GAAG,CAAC,iBAAiB,CACtB,CAAC;IACJ,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IAED,OAAO;QACL,aAAa;QACb,iBAAiB;QACjB,YAAY;QACZ,wBAAwB;QACxB,aAAa;QACb,aAAa;QACb,iBAAiB;KAClB,CAAA;AACL,CAAC;AAED,eAAe,+BAA+B,CAAC"}
1
+ {"version":3,"file":"parseDatabaseCredentialsFromEnv.js","sourceRoot":"","sources":["../../src/utils/parseDatabaseCredentialsFromEnv.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schemavaults/dbh",
3
- "version": "0.5.1",
3
+ "version": "0.5.6",
4
4
  "description": "Easily connect to PostgresDB from serverless environment",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,
package/.npmrc.github DELETED
@@ -1,3 +0,0 @@
1
- @schemavaults:registry=https://npm.pkg.github.com
2
- //https://npm.pkg.github.com/:username=${SCHEMAVAULTS_GITHUB_PACKAGE_REGISTRY_USER}
3
- //https://npm.pkg.github.com/:_authToken=${SCHEMAVAULTS_GITHUB_PACKAGE_REGISTRY_TOKEN}
package/.npmrc.npmjs DELETED
@@ -1,3 +0,0 @@
1
- @schemavaults:registry=https://registry.npmjs.org
2
- //https://registry.npmjs.org/:username=${NPM_PACKAGE_PUBLISH_USER}
3
- //https://registry.npmjs.org/:_authToken=${NPM_PACKAGE_PUBLISH_TOKEN}
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
- }