From d5eb208374ffa9b1153d46294b943de27cddcf80 Mon Sep 17 00:00:00 2001 From: Aaron Merryman Date: Fri, 11 Oct 2024 08:41:40 -0700 Subject: [PATCH 1/5] chore(deps): Updated chokidar file watching Upgrading to version 4 of chokidar changed some the function signatures. Code has been updated to use new signature and configuration. No functional difference should be noticed. --- package-lock.json | 4 ++-- packages/cli/src/index.ts | 2 +- packages/cli/src/typedSqlTagTransformer.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package-lock.json b/package-lock.json index 45c2a298..b67e235f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11923,7 +11923,7 @@ "@pgtyped/wire": "^2.3.0", "camel-case": "^5.0.0", "chalk": "^4.0.0", - "chokidar": "^4.0.1", + "chokidar": "^4.0.0", "debug": "^4.1.1", "fp-ts": "^2.5.3", "fs-extra": "^11.0.0", @@ -14241,7 +14241,7 @@ "@types/yargs": "17.0.33", "camel-case": "^5.0.0", "chalk": "^4.0.0", - "chokidar": "4.0.1", + "chokidar": "^4.0.0", "debug": "^4.1.1", "fp-ts": "^2.5.3", "fs-extra": "^11.0.0", diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index a0e5cd99..0d54edd1 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -149,7 +149,7 @@ if (isWatchMode && fileOverride) { } try { - chokidar.watch(configPath).on('change', () => { + chokidar.watch(configPath, {}).on('change', () => { console.log('Config file changed. Exiting.'); process.exit(); }); diff --git a/packages/cli/src/typedSqlTagTransformer.ts b/packages/cli/src/typedSqlTagTransformer.ts index d6a13d75..b78e6971 100644 --- a/packages/cli/src/typedSqlTagTransformer.ts +++ b/packages/cli/src/typedSqlTagTransformer.ts @@ -49,7 +49,7 @@ export class TypedSqlTagTransformer { chokidar .watch(this.includePattern, { persistent: true, - ignored: [this.localFileName], + ignored: this.localFileName, }) .on('add', cb) .on('change', cb) From 103bf14226fc0d7a28f605375a4e519472cfb77b Mon Sep 17 00:00:00 2001 From: Aaron Merryman Date: Fri, 11 Oct 2024 08:51:32 -0700 Subject: [PATCH 2/5] chore(deps): drop support for version 16 node --- .github/workflows/main.yml | 2 +- package-lock.json | 3 +++ package.json | 3 +++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 16ac812b..2f777de2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: ['16', '18'] + node-version: ['18', '20'] name: Test (node ${{ matrix.node-version }}.x) steps: - uses: actions/checkout@v4 diff --git a/package-lock.json b/package-lock.json index b67e235f..fc779891 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,6 +26,9 @@ "tslint-config-prettier": "1.18.0", "tslint-plugin-prettier": "2.3.0", "typescript": "5.0.4" + }, + "engines": { + "node": ">=18" } }, "node_modules/@ampproject/remapping": { diff --git a/package.json b/package.json index 93a60e7e..1be3e8aa 100644 --- a/package.json +++ b/package.json @@ -30,5 +30,8 @@ }, "dependencies": { "io-ts": "^2.1.2" + }, + "engines": { + "node": ">=18" } } From 2fbe4aab7443b672141e33363e149cf615f13bbb Mon Sep 17 00:00:00 2001 From: Aaron Merryman Date: Fri, 11 Oct 2024 08:56:25 -0700 Subject: [PATCH 3/5] chore(deps): Use esm import for Piscina Also need to enable resolving json modules as Piscina does this in their latest versions. --- packages/cli/src/index.ts | 2 +- tsconfig.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/index.ts b/packages/cli/src/index.ts index 0d54edd1..d04bec8d 100644 --- a/packages/cli/src/index.ts +++ b/packages/cli/src/index.ts @@ -5,7 +5,7 @@ import { AsyncQueue } from '@pgtyped/wire'; import chokidar from 'chokidar'; import nun from 'nunjucks'; -import PiscinaPool from 'piscina'; +import { Piscina as PiscinaPool } from 'piscina'; import yargs from 'yargs'; import { hideBin } from 'yargs/helpers'; import { parseConfig, ParsedConfig, TransformConfig } from './config.js'; diff --git a/tsconfig.json b/tsconfig.json index 2f6fd295..6233fbd4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -44,7 +44,7 @@ // "typeRoots": [], /* List of folders to include type definitions from. */ // "types": [], /* Type declaration files to be included in compilation. */ // "allowSyntheticDefaultImports": true, /* Allow default imports from modules with no default export. This does not affect code emit, just typechecking. */ - "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ + "esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ // "preserveSymlinks": true, /* Do not resolve the real path of symlinks. */ /* Source Map Options */ @@ -56,5 +56,6 @@ /* Experimental Options */ // "experimentalDecorators": true, /* Enables experimental support for ES7 decorators. */ // "emitDecoratorMetadata": true, /* Enables experimental support for emitting type metadata for decorators. */ + "resolveJsonModule": true /* Include modules imported with '.json' extension */, } } From a9dc1e5a2910893157d62accf605d9824336eead Mon Sep 17 00:00:00 2001 From: Aaron Merryman Date: Fri, 11 Oct 2024 09:03:24 -0700 Subject: [PATCH 4/5] chore(prettier): ignore runtime lib folder --- .prettierignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.prettierignore b/.prettierignore index e2d42ced..18a0f547 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,2 +1,3 @@ packages/example -packages/query/src/loader/*/parser/ \ No newline at end of file +packages/query/src/loader/*/parser/ +packages/runtime/lib/ \ No newline at end of file From 8765cbfac4f3ec8ea9111c7d28e424741bdabb3a Mon Sep 17 00:00:00 2001 From: Aaron Merryman Date: Fri, 11 Oct 2024 09:15:26 -0700 Subject: [PATCH 5/5] chore(compose): use new docker compose syntax See https://github.blog/changelog/2024-04-10-github-hosted-runner-images-deprecation-notice-docker-compose-v1/ for the reasoning behind this update. --- CONTRIBUTING.md | 2 +- packages/example/README.md | 2 +- packages/example/package.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4e4cce6e..173a5f1e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -62,7 +62,7 @@ The `packages/example` project is an end-to-end test suite for pgTyped. It conta The packages `npm test` runs the following command: ```bash -docker-compose run build && docker-compose run test && docker-compose run test-cjs +docker compose run build && docker compose run test && docker compose run test-cjs ``` As you can see it runs the `build` target, then runs the `test` target twice, once with the `esm` module format and once with the `cjs` module format: diff --git a/packages/example/README.md b/packages/example/README.md index db958c81..120b4002 100644 --- a/packages/example/README.md +++ b/packages/example/README.md @@ -15,7 +15,7 @@ Try starting PgTyped and editing them to see live query type generation. 2. `cd pgtyped/packages/example` 3. `npm install` 4. `npm run build` -5. `docker-compose run watch` +5. `docker compose run watch` 6. Try editing queries in the SQL and TS files and see how PgTyped handles it. The dockerized setup isn't required and is included for convenience. diff --git a/packages/example/package.json b/packages/example/package.json index 06e1b688..1bc1f6fb 100644 --- a/packages/example/package.json +++ b/packages/example/package.json @@ -15,7 +15,7 @@ "node": ">=14.16" }, "scripts": { - "test": "docker-compose run build && docker-compose run test && docker-compose run test-cjs", + "test": "docker compose run build && docker compose run test && docker compose run test-cjs", "typegen": "pgtyped -c config.json", "build": "echo 'No build step required. Use npm test instead'", "watch": "echo 'No build step required. Use npm test instead'",