From 98bc876b490e7067490c03e42363dea14c3e836a Mon Sep 17 00:00:00 2001 From: Luca Ban Date: Thu, 20 Mar 2025 08:23:45 +1300 Subject: [PATCH] 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 00000000..5f567fac --- /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 00000000..a1919b12 --- /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 bafd5993..5e39cd86 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 00000000..337ebf4d --- /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 113311fb..e6c732b2 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 00000000..a8d78ac6 --- /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 07e3309c..6dc44205 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 00000000..0660ba9f --- /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 4cd37c77..8848c6c8 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 00000000..355b4602 --- /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 aa8a60f5..f2df2760 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 00000000..ea418ba9 --- /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 f4a3488b..1b25c228 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 00000000..290a69f8 --- /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 8d7efe59..53c312c8 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 00000000..9014e2ab --- /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 48d1b55f..757bc49b 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",