From 144062ef08c9568c5c535b2c0e4da711deddfc87 Mon Sep 17 00:00:00 2001 From: Malthe Borch Date: Fri, 15 Dec 2023 10:29:41 +0100 Subject: [PATCH 1/8] Install and test client using Bun --- .github/workflows/main.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d145308..63fb9af 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -46,6 +46,8 @@ jobs: - type: node version: 18.x - type: node + version: 20.x + - type: bun runs-on: ubuntu-latest timeout-minutes: 3 steps: @@ -66,6 +68,9 @@ jobs: uses: actions/setup-node@v3 with: node-version: ${{ matrix.environment.version }} + - name: Use Bun ${{ matrix.environment.version }} + if: matrix.environment.type == 'bun' + uses: oven-sh/setup-bun@v1 - name: Install dependencies if: matrix.environment.type == 'node' run: npm ci @@ -102,6 +107,15 @@ jobs: gen_code ./dist/src/index.js > test.mjs node test.mjs | tee /dev/stderr | grep -q true ;; + bun) + # Workaround: https://github.com/oven-sh/bun/issues/1590 + dependencies=`jq -r '.dependencies|to_entries|map("\(.key)@\(.value)")|join(" ")' package.json` + ( set -x; mkdir /tmp/bun && cd "$_" && ls -lah && bun install "$dependencies" && rm -rf `pwd`; ) + bun install -p --ignore-scripts + bun build src/index.ts --target bun > ts-postgres.js + gen_code ./ts-postgres.js > test.mjs + bun test.mjs | tee /dev/stderr | grep -q true + ;; esac env: ENVIRONMENT: ${{ matrix.environment.type }} From ffc4b4a5d37e8af3e39164a1aec67a3567db557d Mon Sep 17 00:00:00 2001 From: Malthe Borch Date: Fri, 15 Dec 2023 14:16:39 +0100 Subject: [PATCH 2/8] Fix issue handling connection error during secure startup --- CHANGES.md | 4 ++++ src/client.ts | 5 +---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 2e42dae..413f309 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,7 @@ +In the next release ... + +- Fix issue handling connection error during secure startup. + 1.8.0 (2023-12-14) ------------------ diff --git a/src/client.ts b/src/client.ts index d1e8199..2cf15e0 100644 --- a/src/client.ts +++ b/src/client.ts @@ -278,11 +278,8 @@ export class Client { writer.startupSSL(); const abort = (error: Error) => { - if (!this.handleError(error)) { - throw new Error("Internal error occurred while establishing connection"); - } + this.handleError(error); this.events.connect.emit(error); - this.end(); } const startup = (stream?: Socket) => { From d08fa1296c25a03de322820705f09f4af51fa718 Mon Sep 17 00:00:00 2001 From: Malthe Borch Date: Fri, 15 Dec 2023 15:07:46 +0100 Subject: [PATCH 3/8] Fix test (connect now returns a connection info object) --- .github/workflows/main.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 63fb9af..4289517 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -94,8 +94,8 @@ jobs: cat <<- EOF import { Client } from '$1'; const client = new Client(); - const secured = await client.connect(); - console.log(secured); + const info = await client.connect(); + console.log("Encrypted: " + info.encrypted); await client.end(); EOF } @@ -105,16 +105,18 @@ jobs: npm run test:prod || exit 1 npm run build gen_code ./dist/src/index.js > test.mjs - node test.mjs | tee /dev/stderr | grep -q true + node test.mjs | tee /dev/stderr | grep true ;; bun) # Workaround: https://github.com/oven-sh/bun/issues/1590 dependencies=`jq -r '.dependencies|to_entries|map("\(.key)@\(.value)")|join(" ")' package.json` ( set -x; mkdir /tmp/bun && cd "$_" && ls -lah && bun install "$dependencies" && rm -rf `pwd`; ) + set -x bun install -p --ignore-scripts bun build src/index.ts --target bun > ts-postgres.js gen_code ./ts-postgres.js > test.mjs - bun test.mjs | tee /dev/stderr | grep -q true + bun test.mjs + bun test.mjs | tee /dev/stderr | grep true ;; esac env: From 7506c622ec693bc12ca1727eb8d56d9b7f6f8dcb Mon Sep 17 00:00:00 2001 From: Malthe Borch Date: Fri, 15 Dec 2023 16:41:31 +0100 Subject: [PATCH 4/8] Remove quiet flag, it's okay to write out here --- .github/workflows/main.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4289517..2916b1d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -111,11 +111,9 @@ jobs: # Workaround: https://github.com/oven-sh/bun/issues/1590 dependencies=`jq -r '.dependencies|to_entries|map("\(.key)@\(.value)")|join(" ")' package.json` ( set -x; mkdir /tmp/bun && cd "$_" && ls -lah && bun install "$dependencies" && rm -rf `pwd`; ) - set -x bun install -p --ignore-scripts bun build src/index.ts --target bun > ts-postgres.js gen_code ./ts-postgres.js > test.mjs - bun test.mjs bun test.mjs | tee /dev/stderr | grep true ;; esac From 34d0cee431477e31ef0974f9840fa68b6805c291 Mon Sep 17 00:00:00 2001 From: Malthe Borch Date: Wed, 3 Jan 2024 12:21:41 +0100 Subject: [PATCH 5/8] Use zsh to run script --- .github/workflows/main.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2916b1d..d141887 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -51,6 +51,8 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 3 steps: + - run: sudo apt-get update + - run: sudo apt-get install zsh - run: | function set() { docker exec ${{ job.services.postgres.id }} sh -c "echo $1=\'$2\' >> $PGDATADIR/postgresql.conf" @@ -117,6 +119,7 @@ jobs: bun test.mjs | tee /dev/stderr | grep true ;; esac + shell: zsh {0} env: ENVIRONMENT: ${{ matrix.environment.type }} NODE_EXTRA_CA_CERTS: ssl-cert-snakeoil.pem From 1e2fc3e604147447b0a0f0dfcca872005b3a3a7a Mon Sep 17 00:00:00 2001 From: Malthe Borch Date: Wed, 3 Jan 2024 12:26:21 +0100 Subject: [PATCH 6/8] Echo commands --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d141887..be81066 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -111,8 +111,9 @@ jobs: ;; bun) # Workaround: https://github.com/oven-sh/bun/issues/1590 + set -x dependencies=`jq -r '.dependencies|to_entries|map("\(.key)@\(.value)")|join(" ")' package.json` - ( set -x; mkdir /tmp/bun && cd "$_" && ls -lah && bun install "$dependencies" && rm -rf `pwd`; ) + ( mkdir /tmp/bun && cd "$_" && ls -lah && bun install "$dependencies" && rm -rf `pwd`; ) bun install -p --ignore-scripts bun build src/index.ts --target bun > ts-postgres.js gen_code ./ts-postgres.js > test.mjs From 6f7d8546b48fb48d21254ff66e15d9f658f9ed55 Mon Sep 17 00:00:00 2001 From: Malthe Borch Date: Wed, 3 Jan 2024 12:42:08 +0100 Subject: [PATCH 7/8] Run standalone --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index be81066..a4dbc3c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -117,6 +117,7 @@ jobs: bun install -p --ignore-scripts bun build src/index.ts --target bun > ts-postgres.js gen_code ./ts-postgres.js > test.mjs + bun test.mjs bun test.mjs | tee /dev/stderr | grep true ;; esac From 778d81b08c42444217ed325e59e1450aa054edfd Mon Sep 17 00:00:00 2001 From: Malthe Borch Date: Wed, 3 Jan 2024 12:48:35 +0100 Subject: [PATCH 8/8] Show exit code of every failing command --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a4dbc3c..40d9e7d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -112,6 +112,7 @@ jobs: bun) # Workaround: https://github.com/oven-sh/bun/issues/1590 set -x + TRAPERR() print -u2 Exit status: $? dependencies=`jq -r '.dependencies|to_entries|map("\(.key)@\(.value)")|join(" ")' package.json` ( mkdir /tmp/bun && cd "$_" && ls -lah && bun install "$dependencies" && rm -rf `pwd`; ) bun install -p --ignore-scripts