From 98bc876b490e7067490c03e42363dea14c3e836a Mon Sep 17 00:00:00 2001 From: Luca Ban Date: Thu, 20 Mar 2025 08:23:45 +1300 Subject: [PATCH 1/4] build: add esm exports --- packages/pg-cloudflare/esm/index.js | 6 ++++++ packages/pg-cloudflare/esm/worker.js | 6 ++++++ packages/pg-cloudflare/package.json | 14 +++++++++++--- packages/pg-connection-string/esm/index.js | 8 ++++++++ packages/pg-connection-string/package.json | 10 +++++++++- packages/pg-cursor/esm/index.js | 5 +++++ packages/pg-cursor/package.json | 12 +++++++++++- packages/pg-native/esm/index.js | 5 +++++ packages/pg-native/package.json | 12 +++++++++++- packages/pg-pool/esm/index.js | 5 +++++ packages/pg-pool/package.json | 12 +++++++++++- packages/pg-protocol/esm/index.js | 11 +++++++++++ packages/pg-protocol/package.json | 10 +++++++++- packages/pg-query-stream/esm/index.js | 5 +++++ packages/pg-query-stream/package.json | 10 +++++++++- packages/pg/esm/index.js | 18 ++++++++++++++++++ packages/pg/package.json | 7 +++++++ 17 files changed, 147 insertions(+), 9 deletions(-) create mode 100644 packages/pg-cloudflare/esm/index.js create mode 100644 packages/pg-cloudflare/esm/worker.js create mode 100644 packages/pg-connection-string/esm/index.js create mode 100644 packages/pg-cursor/esm/index.js create mode 100644 packages/pg-native/esm/index.js create mode 100644 packages/pg-pool/esm/index.js create mode 100644 packages/pg-protocol/esm/index.js create mode 100644 packages/pg-query-stream/esm/index.js create mode 100644 packages/pg/esm/index.js diff --git a/packages/pg-cloudflare/esm/index.js b/packages/pg-cloudflare/esm/index.js new file mode 100644 index 000000000..5f567fac3 --- /dev/null +++ b/packages/pg-cloudflare/esm/index.js @@ -0,0 +1,6 @@ +// ESM wrapper for pg-cloudflare +import module from '../dist/empty.js'; + +// Re-export any named exports and the default +export const CloudflareSocket = module.CloudflareSocket; +export default module; \ No newline at end of file diff --git a/packages/pg-cloudflare/esm/worker.js b/packages/pg-cloudflare/esm/worker.js new file mode 100644 index 000000000..a1919b122 --- /dev/null +++ b/packages/pg-cloudflare/esm/worker.js @@ -0,0 +1,6 @@ +// ESM wrapper for pg-cloudflare in Cloudflare Workers +import module from '../dist/index.js'; + +// Re-export CloudflareSocket and the default +export const CloudflareSocket = module.CloudflareSocket; +export default module; \ No newline at end of file diff --git a/packages/pg-cloudflare/package.json b/packages/pg-cloudflare/package.json index bafd59934..5e39cd869 100644 --- a/packages/pg-cloudflare/package.json +++ b/packages/pg-cloudflare/package.json @@ -10,8 +10,15 @@ "typescript": "^4.0.3" }, "exports": { - "workerd": "./dist/index.js", - "default": "./dist/empty.js" + ".": { + "import": "./esm/index.js", + "require": "./dist/empty.js", + "types": "./dist/index.d.ts" + }, + "./worker": { + "import": "./esm/worker.js", + "require": "./dist/index.js" + } }, "scripts": { "build": "tsc", @@ -26,6 +33,7 @@ }, "files": [ "/dist/*{js,ts,map}", - "/src" + "/src", + "/esm" ] } diff --git a/packages/pg-connection-string/esm/index.js b/packages/pg-connection-string/esm/index.js new file mode 100644 index 000000000..337ebf4d0 --- /dev/null +++ b/packages/pg-connection-string/esm/index.js @@ -0,0 +1,8 @@ +// ESM wrapper for pg-connection-string +import connectionString from '../index.js'; + +// Re-export the parse function +export const parse = connectionString.parse; + +// Re-export the default +export default connectionString; \ No newline at end of file diff --git a/packages/pg-connection-string/package.json b/packages/pg-connection-string/package.json index 113311fbc..e6c732b27 100644 --- a/packages/pg-connection-string/package.json +++ b/packages/pg-connection-string/package.json @@ -4,6 +4,13 @@ "description": "Functions for dealing with a PostgresSQL connection string", "main": "./index.js", "types": "./index.d.ts", + "exports": { + ".": { + "import": "./esm/index.js", + "require": "./index.js", + "types": "./index.d.ts" + } + }, "scripts": { "test": "istanbul cover _mocha && npm run check-coverage", "check-coverage": "istanbul check-coverage --statements 100 --branches 100 --lines 100 --functions 100", @@ -34,6 +41,7 @@ }, "files": [ "index.js", - "index.d.ts" + "index.d.ts", + "esm" ] } diff --git a/packages/pg-cursor/esm/index.js b/packages/pg-cursor/esm/index.js new file mode 100644 index 000000000..a8d78ac6e --- /dev/null +++ b/packages/pg-cursor/esm/index.js @@ -0,0 +1,5 @@ +// ESM wrapper for pg-cursor +import Cursor from '../index.js'; + +// Export as default only to match CJS module +export default Cursor; \ No newline at end of file diff --git a/packages/pg-cursor/package.json b/packages/pg-cursor/package.json index 07e3309c7..6dc442056 100644 --- a/packages/pg-cursor/package.json +++ b/packages/pg-cursor/package.json @@ -3,6 +3,12 @@ "version": "2.13.1", "description": "Query cursor extension for node-postgres", "main": "index.js", + "exports": { + ".": { + "import": "./esm/index.js", + "require": "./index.js" + } + }, "directories": { "test": "test" }, @@ -22,5 +28,9 @@ }, "peerDependencies": { "pg": "^8" - } + }, + "files": [ + "index.js", + "esm" + ] } diff --git a/packages/pg-native/esm/index.js b/packages/pg-native/esm/index.js new file mode 100644 index 000000000..0660ba9fa --- /dev/null +++ b/packages/pg-native/esm/index.js @@ -0,0 +1,5 @@ +// ESM wrapper for pg-native +import Client from '../index.js'; + +// Export as default only to match CJS module +export default Client; \ No newline at end of file diff --git a/packages/pg-native/package.json b/packages/pg-native/package.json index 4cd37c77a..8848c6c8b 100644 --- a/packages/pg-native/package.json +++ b/packages/pg-native/package.json @@ -3,6 +3,12 @@ "version": "3.3.0", "description": "A slightly nicer interface to Postgres over node-libpq", "main": "index.js", + "exports": { + ".": { + "import": "./esm/index.js", + "require": "./index.js" + } + }, "scripts": { "test": "mocha" }, @@ -34,5 +40,9 @@ "node-gyp": ">=10.x", "okay": "^0.3.0", "semver": "^4.1.0" - } + }, + "files": [ + "index.js", + "esm" + ] } diff --git a/packages/pg-pool/esm/index.js b/packages/pg-pool/esm/index.js new file mode 100644 index 000000000..355b46028 --- /dev/null +++ b/packages/pg-pool/esm/index.js @@ -0,0 +1,5 @@ +// ESM wrapper for pg-pool +import Pool from '../index.js'; + +// Export as default only to match CJS module +export default Pool; \ No newline at end of file diff --git a/packages/pg-pool/package.json b/packages/pg-pool/package.json index aa8a60f5f..f2df27601 100644 --- a/packages/pg-pool/package.json +++ b/packages/pg-pool/package.json @@ -3,6 +3,12 @@ "version": "3.8.0", "description": "Connection pool for node-postgres", "main": "index.js", + "exports": { + ".": { + "import": "./esm/index.js", + "require": "./index.js" + } + }, "directories": { "test": "test" }, @@ -36,5 +42,9 @@ }, "peerDependencies": { "pg": ">=8.0" - } + }, + "files": [ + "index.js", + "esm" + ] } diff --git a/packages/pg-protocol/esm/index.js b/packages/pg-protocol/esm/index.js new file mode 100644 index 000000000..ea418ba91 --- /dev/null +++ b/packages/pg-protocol/esm/index.js @@ -0,0 +1,11 @@ +// ESM wrapper for pg-protocol +import protocol from '../dist/index.js'; + +// Re-export all the properties +export const DatabaseError = protocol.DatabaseError; +export const SASL = protocol.SASL; +export const serialize = protocol.serialize; +export const parse = protocol.parse; + +// Re-export the default +export default protocol; \ No newline at end of file diff --git a/packages/pg-protocol/package.json b/packages/pg-protocol/package.json index f4a3488b5..1b25c2286 100644 --- a/packages/pg-protocol/package.json +++ b/packages/pg-protocol/package.json @@ -4,6 +4,13 @@ "description": "The postgres client/server binary protocol, implemented in TypeScript", "main": "dist/index.js", "types": "dist/index.d.ts", + "exports": { + ".": { + "import": "./esm/index.js", + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + } + }, "license": "MIT", "devDependencies": { "@types/chai": "^4.2.7", @@ -29,6 +36,7 @@ }, "files": [ "/dist/*{js,ts,map}", - "/src" + "/src", + "/esm" ] } diff --git a/packages/pg-query-stream/esm/index.js b/packages/pg-query-stream/esm/index.js new file mode 100644 index 000000000..290a69f8e --- /dev/null +++ b/packages/pg-query-stream/esm/index.js @@ -0,0 +1,5 @@ +// ESM wrapper for pg-query-stream +import QueryStream from '../dist/index.js'; + +// Export as default only to match CJS module +export default QueryStream; \ No newline at end of file diff --git a/packages/pg-query-stream/package.json b/packages/pg-query-stream/package.json index 8d7efe59c..53c312c8b 100644 --- a/packages/pg-query-stream/package.json +++ b/packages/pg-query-stream/package.json @@ -4,6 +4,13 @@ "description": "Postgres query result returned as readable stream", "main": "./dist/index.js", "types": "./dist/index.d.ts", + "exports": { + ".": { + "import": "./esm/index.js", + "require": "./dist/index.js", + "types": "./dist/index.d.ts" + } + }, "scripts": { "test": "mocha -r ts-node/register test/**/*.ts" }, @@ -21,7 +28,8 @@ ], "files": [ "/dist/*{js,ts,map}", - "/src" + "/src", + "/esm" ], "author": "Brian M. Carlson", "license": "MIT", diff --git a/packages/pg/esm/index.js b/packages/pg/esm/index.js new file mode 100644 index 000000000..9014e2abf --- /dev/null +++ b/packages/pg/esm/index.js @@ -0,0 +1,18 @@ +// ESM wrapper for pg +import pg from '../lib/index.js'; + +// Re-export all the properties +export const Client = pg.Client; +export const Pool = pg.Pool; +export const Connection = pg.Connection; +export const types = pg.types; +export const Query = pg.Query; +export const DatabaseError = pg.DatabaseError; +export const escapeIdentifier = pg.escapeIdentifier; +export const escapeLiteral = pg.escapeLiteral; + +// Also export the defaults +export const defaults = pg.defaults; + +// Re-export the default +export default pg; \ No newline at end of file diff --git a/packages/pg/package.json b/packages/pg/package.json index 48d1b55f8..757bc49b9 100644 --- a/packages/pg/package.json +++ b/packages/pg/package.json @@ -19,6 +19,12 @@ }, "author": "Brian Carlson ", "main": "./lib", + "exports": { + ".": { + "import": "./esm/index.js", + "require": "./lib/index.js" + } + }, "dependencies": { "pg-connection-string": "^2.7.0", "pg-pool": "^3.8.0", @@ -52,6 +58,7 @@ }, "files": [ "lib", + "esm", "SPONSORS.md" ], "license": "MIT", From c2cbc2b0b1cbf0b69cd945b3b3867a9aecaf3e4c Mon Sep 17 00:00:00 2001 From: Luca Ban Date: Thu, 20 Mar 2025 08:38:51 +1300 Subject: [PATCH 2/4] fix: add defaults as per arethetypeswrong report --- packages/pg-cloudflare/package.json | 5 +++-- packages/pg-connection-string/package.json | 2 +- packages/pg-cursor/package.json | 3 ++- packages/pg-native/package.json | 3 ++- packages/pg-pool/package.json | 3 ++- packages/pg-protocol/package.json | 2 +- packages/pg-query-stream/package.json | 2 +- packages/pg/package.json | 3 ++- 8 files changed, 14 insertions(+), 9 deletions(-) diff --git a/packages/pg-cloudflare/package.json b/packages/pg-cloudflare/package.json index 5e39cd869..0efcfefc1 100644 --- a/packages/pg-cloudflare/package.json +++ b/packages/pg-cloudflare/package.json @@ -13,11 +13,12 @@ ".": { "import": "./esm/index.js", "require": "./dist/empty.js", - "types": "./dist/index.d.ts" + "default": "./dist/empty.js" }, "./worker": { "import": "./esm/worker.js", - "require": "./dist/index.js" + "require": "./dist/index.js", + "default": "./dist/index.js" } }, "scripts": { diff --git a/packages/pg-connection-string/package.json b/packages/pg-connection-string/package.json index e6c732b27..f600a5c98 100644 --- a/packages/pg-connection-string/package.json +++ b/packages/pg-connection-string/package.json @@ -8,7 +8,7 @@ ".": { "import": "./esm/index.js", "require": "./index.js", - "types": "./index.d.ts" + "default": "./index.js" } }, "scripts": { diff --git a/packages/pg-cursor/package.json b/packages/pg-cursor/package.json index 6dc442056..803777b27 100644 --- a/packages/pg-cursor/package.json +++ b/packages/pg-cursor/package.json @@ -6,7 +6,8 @@ "exports": { ".": { "import": "./esm/index.js", - "require": "./index.js" + "require": "./index.js", + "default": "./index.js" } }, "directories": { diff --git a/packages/pg-native/package.json b/packages/pg-native/package.json index 8848c6c8b..21a1c91a6 100644 --- a/packages/pg-native/package.json +++ b/packages/pg-native/package.json @@ -6,7 +6,8 @@ "exports": { ".": { "import": "./esm/index.js", - "require": "./index.js" + "require": "./index.js", + "default": "./index.js" } }, "scripts": { diff --git a/packages/pg-pool/package.json b/packages/pg-pool/package.json index f2df27601..fa7230092 100644 --- a/packages/pg-pool/package.json +++ b/packages/pg-pool/package.json @@ -6,7 +6,8 @@ "exports": { ".": { "import": "./esm/index.js", - "require": "./index.js" + "require": "./index.js", + "default": "./index.js" } }, "directories": { diff --git a/packages/pg-protocol/package.json b/packages/pg-protocol/package.json index 1b25c2286..7df5684f2 100644 --- a/packages/pg-protocol/package.json +++ b/packages/pg-protocol/package.json @@ -8,7 +8,7 @@ ".": { "import": "./esm/index.js", "require": "./dist/index.js", - "types": "./dist/index.d.ts" + "default": "./dist/index.js" } }, "license": "MIT", diff --git a/packages/pg-query-stream/package.json b/packages/pg-query-stream/package.json index 53c312c8b..d0ce88173 100644 --- a/packages/pg-query-stream/package.json +++ b/packages/pg-query-stream/package.json @@ -8,7 +8,7 @@ ".": { "import": "./esm/index.js", "require": "./dist/index.js", - "types": "./dist/index.d.ts" + "default": "./dist/index.js" } }, "scripts": { diff --git a/packages/pg/package.json b/packages/pg/package.json index 757bc49b9..c950336ea 100644 --- a/packages/pg/package.json +++ b/packages/pg/package.json @@ -22,7 +22,8 @@ "exports": { ".": { "import": "./esm/index.js", - "require": "./lib/index.js" + "require": "./lib/index.js", + "default": "./lib/index.js" } }, "dependencies": { From b4c1a4e9356fc69f2166fe3fb45347d6201f5eed Mon Sep 17 00:00:00 2001 From: Luca Ban Date: Thu, 20 Mar 2025 08:38:56 +1300 Subject: [PATCH 3/4] fix: add missing types --- packages/pg-connection-string/package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/pg-connection-string/package.json b/packages/pg-connection-string/package.json index f600a5c98..e3bc6945c 100644 --- a/packages/pg-connection-string/package.json +++ b/packages/pg-connection-string/package.json @@ -6,6 +6,7 @@ "types": "./index.d.ts", "exports": { ".": { + "types": "./index.d.ts", "import": "./esm/index.js", "require": "./index.js", "default": "./index.js" From 8a58659ed3ef2a2ad3941713df711c58c9ca5af2 Mon Sep 17 00:00:00 2001 From: Luca Ban Date: Fri, 21 Mar 2025 06:42:55 +1300 Subject: [PATCH 4/4] lint --- packages/pg-cloudflare/esm/index.js | 6 +++--- packages/pg-cloudflare/esm/worker.js | 6 +++--- packages/pg-connection-string/esm/index.js | 6 +++--- packages/pg-cursor/esm/index.js | 4 ++-- packages/pg-native/esm/index.js | 4 ++-- packages/pg-pool/esm/index.js | 4 ++-- packages/pg-protocol/esm/index.js | 14 +++++++------- packages/pg-query-stream/esm/index.js | 4 ++-- packages/pg/esm/index.js | 22 +++++++++++----------- 9 files changed, 35 insertions(+), 35 deletions(-) diff --git a/packages/pg-cloudflare/esm/index.js b/packages/pg-cloudflare/esm/index.js index 5f567fac3..bed31286d 100644 --- a/packages/pg-cloudflare/esm/index.js +++ b/packages/pg-cloudflare/esm/index.js @@ -1,6 +1,6 @@ // ESM wrapper for pg-cloudflare -import module from '../dist/empty.js'; +import module from '../dist/empty.js' // Re-export any named exports and the default -export const CloudflareSocket = module.CloudflareSocket; -export default module; \ No newline at end of file +export const CloudflareSocket = module.CloudflareSocket +export default module diff --git a/packages/pg-cloudflare/esm/worker.js b/packages/pg-cloudflare/esm/worker.js index a1919b122..9edce186e 100644 --- a/packages/pg-cloudflare/esm/worker.js +++ b/packages/pg-cloudflare/esm/worker.js @@ -1,6 +1,6 @@ // ESM wrapper for pg-cloudflare in Cloudflare Workers -import module from '../dist/index.js'; +import module from '../dist/index.js' // Re-export CloudflareSocket and the default -export const CloudflareSocket = module.CloudflareSocket; -export default module; \ No newline at end of file +export const CloudflareSocket = module.CloudflareSocket +export default module diff --git a/packages/pg-connection-string/esm/index.js b/packages/pg-connection-string/esm/index.js index 337ebf4d0..f749c6736 100644 --- a/packages/pg-connection-string/esm/index.js +++ b/packages/pg-connection-string/esm/index.js @@ -1,8 +1,8 @@ // ESM wrapper for pg-connection-string -import connectionString from '../index.js'; +import connectionString from '../index.js' // Re-export the parse function -export const parse = connectionString.parse; +export const parse = connectionString.parse // Re-export the default -export default connectionString; \ No newline at end of file +export default connectionString diff --git a/packages/pg-cursor/esm/index.js b/packages/pg-cursor/esm/index.js index a8d78ac6e..65b0db041 100644 --- a/packages/pg-cursor/esm/index.js +++ b/packages/pg-cursor/esm/index.js @@ -1,5 +1,5 @@ // ESM wrapper for pg-cursor -import Cursor from '../index.js'; +import Cursor from '../index.js' // Export as default only to match CJS module -export default Cursor; \ No newline at end of file +export default Cursor diff --git a/packages/pg-native/esm/index.js b/packages/pg-native/esm/index.js index 0660ba9fa..49363e338 100644 --- a/packages/pg-native/esm/index.js +++ b/packages/pg-native/esm/index.js @@ -1,5 +1,5 @@ // ESM wrapper for pg-native -import Client from '../index.js'; +import Client from '../index.js' // Export as default only to match CJS module -export default Client; \ No newline at end of file +export default Client diff --git a/packages/pg-pool/esm/index.js b/packages/pg-pool/esm/index.js index 355b46028..a97fb624d 100644 --- a/packages/pg-pool/esm/index.js +++ b/packages/pg-pool/esm/index.js @@ -1,5 +1,5 @@ // ESM wrapper for pg-pool -import Pool from '../index.js'; +import Pool from '../index.js' // Export as default only to match CJS module -export default Pool; \ No newline at end of file +export default Pool diff --git a/packages/pg-protocol/esm/index.js b/packages/pg-protocol/esm/index.js index ea418ba91..05afca900 100644 --- a/packages/pg-protocol/esm/index.js +++ b/packages/pg-protocol/esm/index.js @@ -1,11 +1,11 @@ // ESM wrapper for pg-protocol -import protocol from '../dist/index.js'; +import protocol from '../dist/index.js' -// Re-export all the properties -export const DatabaseError = protocol.DatabaseError; -export const SASL = protocol.SASL; -export const serialize = protocol.serialize; -export const parse = protocol.parse; +// Re-export all the properties +export const DatabaseError = protocol.DatabaseError +export const SASL = protocol.SASL +export const serialize = protocol.serialize +export const parse = protocol.parse // Re-export the default -export default protocol; \ No newline at end of file +export default protocol diff --git a/packages/pg-query-stream/esm/index.js b/packages/pg-query-stream/esm/index.js index 290a69f8e..34429f2e4 100644 --- a/packages/pg-query-stream/esm/index.js +++ b/packages/pg-query-stream/esm/index.js @@ -1,5 +1,5 @@ // ESM wrapper for pg-query-stream -import QueryStream from '../dist/index.js'; +import QueryStream from '../dist/index.js' // Export as default only to match CJS module -export default QueryStream; \ No newline at end of file +export default QueryStream diff --git a/packages/pg/esm/index.js b/packages/pg/esm/index.js index 9014e2abf..c044094c5 100644 --- a/packages/pg/esm/index.js +++ b/packages/pg/esm/index.js @@ -1,18 +1,18 @@ // ESM wrapper for pg -import pg from '../lib/index.js'; +import pg from '../lib/index.js' // Re-export all the properties -export const Client = pg.Client; -export const Pool = pg.Pool; -export const Connection = pg.Connection; -export const types = pg.types; -export const Query = pg.Query; -export const DatabaseError = pg.DatabaseError; -export const escapeIdentifier = pg.escapeIdentifier; -export const escapeLiteral = pg.escapeLiteral; +export const Client = pg.Client +export const Pool = pg.Pool +export const Connection = pg.Connection +export const types = pg.types +export const Query = pg.Query +export const DatabaseError = pg.DatabaseError +export const escapeIdentifier = pg.escapeIdentifier +export const escapeLiteral = pg.escapeLiteral // Also export the defaults -export const defaults = pg.defaults; +export const defaults = pg.defaults // Re-export the default -export default pg; \ No newline at end of file +export default pg