Skip to content

Add esm exports #3423

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 22 commits into from
Apr 22, 2025
Merged
Show file tree
Hide file tree
Changes from 10 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"packages/*"
],
"scripts": {
"test": "yarn lerna exec yarn test",
"test": "yarn lerna exec --concurrency 1 yarn test",
"build": "tsc --build",
"build:watch": "tsc --build --watch",
"docs:build": "cd docs && yarn build",
Expand Down
10 changes: 4 additions & 6 deletions packages/pg-cloudflare/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,14 @@
"name": "pg-cloudflare",
"version": "1.1.1",
"description": "A socket implementation that can run on Cloudflare Workers using native TCP connections.",
"main": "dist/empty.js",
"main": "dist/index.js",
"types": "dist/index.d.ts",
"type": "module",
"license": "MIT",
"devDependencies": {
"ts-node": "^8.5.4",
"typescript": "^4.0.3"
},
"exports": {
"workerd": "./dist/index.js",
"default": "./dist/empty.js"
},
"scripts": {
"build": "tsc",
"build:watch": "tsc --watch",
Expand All @@ -26,6 +23,7 @@
},
"files": [
"/dist/*{js,ts,map}",
"/src"
"/src",
"/esm"
]
}
7 changes: 7 additions & 0 deletions packages/pg-connection-string/esm/index.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// ESM wrapper for pg-connection-string
import connectionString from '../index.js'

// Re-export the parse function
export const parse = connectionString.parse
export const toClientConfig = connectionString.toClientConfig
export const parseIntoClientConfig = connectionString.parseIntoClientConfig
11 changes: 10 additions & 1 deletion packages/pg-connection-string/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,14 @@
"description": "Functions for dealing with a PostgresSQL connection string",
"main": "./index.js",
"types": "./index.d.ts",
"exports": {
".": {
"types": "./index.d.ts",
"import": "./esm/index.mjs",
"require": "./index.js",
"default": "./index.js"
}
},
"scripts": {
"test": "istanbul cover _mocha && npm run check-coverage",
"check-coverage": "istanbul check-coverage --statements 100 --branches 100 --lines 100 --functions 100",
Expand Down Expand Up @@ -34,6 +42,7 @@
},
"files": [
"index.js",
"index.d.ts"
"index.d.ts",
"esm"
]
}
5 changes: 5 additions & 0 deletions packages/pg-cursor/esm/index.mjs
Original file line number Diff line number Diff line change
@@ -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
5 changes: 3 additions & 2 deletions packages/pg-cursor/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
'use strict'
const Result = require('pg/lib/result.js')
const prepare = require('pg/lib/utils.js').prepareValue
const pg = require('pg')
const { Result, utils } = pg
const prepare = utils.prepareValue
const EventEmitter = require('events').EventEmitter
const util = require('util')

Expand Down
13 changes: 12 additions & 1 deletion packages/pg-cursor/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
"version": "2.13.1",
"description": "Query cursor extension for node-postgres",
"main": "index.js",
"exports": {
".": {
"import": "./esm/index.mjs",
"require": "./index.js",
"default": "./index.js"
}
},
"directories": {
"test": "test"
},
Expand All @@ -22,5 +29,9 @@
},
"peerDependencies": {
"pg": "^8"
}
},
"files": [
"index.js",
"esm"
]
}
26 changes: 26 additions & 0 deletions packages/pg-esm-test/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"name": "pg-esm-test",
"version": "1.0.0",
"description": "A test module for PostgreSQL with ESM support",
"main": "index.js",
"type": "module",
"scripts": {
"test": "node --test"
},
"keywords": [
"postgres",
"postgresql",
"esm",
"test"
],
"devDependencies": {
"pg": "^8.14.1",
"pg-pool": "^3.8.0",
"pg-native": "^3.3.0",
"pg-cloudflare": "^1.1.1",
"pg-cursor": "^2.13.1",
"pg-query-stream": "^4.8.1"
},
"author": "Brian M. Carlson <[email protected]>",
"license": "MIT"
}
9 changes: 9 additions & 0 deletions packages/pg-esm-test/pg-cloudflare.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import assert from 'node:assert'
import { describe, it } from 'node:test'
import { CloudflareSocket } from 'pg-cloudflare'

describe('pg-pool', () => {
it('should export CloudflareSocket constructor', () => {
assert.ok(new CloudflareSocket())
})
})
17 changes: 17 additions & 0 deletions packages/pg-esm-test/pg-connection-string.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import assert from 'node:assert'
import { describe, it } from 'node:test'
import { parse, toClientConfig, parseIntoClientConfig } from 'pg-connection-string'

describe('pg-connection-string', () => {
it('should export parse function', () => {
assert.strictEqual(typeof parse, 'function')
})

it('should export toClientConfig function', () => {
assert.strictEqual(typeof toClientConfig, 'function')
})

it('should export parseIntoClientConfig function', () => {
assert.strictEqual(typeof parseIntoClientConfig, 'function')
})
})
9 changes: 9 additions & 0 deletions packages/pg-esm-test/pg-cursor.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import assert from 'node:assert'
import { describe, it } from 'node:test'
import Cursor from 'pg-cursor'

describe('pg-cursor', () => {
it('should export Cursor constructor as default', () => {
assert.ok(new Cursor())
})
})
9 changes: 9 additions & 0 deletions packages/pg-esm-test/pg-native.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import assert from 'node:assert'
import { describe, it } from 'node:test'
import Client from 'pg-native'

describe('pg-native', () => {
it('should export Client constructor', () => {
assert.ok(new Client())
})
})
9 changes: 9 additions & 0 deletions packages/pg-esm-test/pg-pool.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import assert from 'node:assert'
import { describe, it } from 'node:test'
import Pool from 'pg-pool'

describe('pg-pool', () => {
it('should export Pool constructor', () => {
assert.ok(new Pool())
})
})
9 changes: 9 additions & 0 deletions packages/pg-esm-test/pg-query-stream.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import assert from 'node:assert'
import { describe, it } from 'node:test'
import QueryStream from 'pg-query-stream'

describe('pg-query-stream', () => {
it('should export QueryStream constructor as default', () => {
assert.ok(new QueryStream())
})
})
17 changes: 17 additions & 0 deletions packages/pg-esm-test/pg.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import assert from 'node:assert'
import { describe, it } from 'node:test'
import pg, { Client, Pool } from 'pg'

describe('pg', () => {
it('should export Client constructor', () => {
assert.ok(new Client())
})

it('should export Pool constructor', () => {
assert.ok(new Pool())
})

it('should still provide default export', () => {
assert.ok(new pg.Pool())
})
})
5 changes: 5 additions & 0 deletions packages/pg-native/esm/index.mjs
Original file line number Diff line number Diff line change
@@ -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
13 changes: 12 additions & 1 deletion packages/pg-native/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
"version": "3.3.0",
"description": "A slightly nicer interface to Postgres over node-libpq",
"main": "index.js",
"exports": {
".": {
"import": "./esm/index.mjs",
"require": "./index.js",
"default": "./index.js"
}
},
"scripts": {
"test": "mocha"
},
Expand Down Expand Up @@ -34,5 +41,9 @@
"node-gyp": ">=10.x",
"okay": "^0.3.0",
"semver": "^4.1.0"
}
},
"files": [
"index.js",
"esm"
]
}
5 changes: 5 additions & 0 deletions packages/pg-pool/esm/index.mjs
Original file line number Diff line number Diff line change
@@ -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
15 changes: 13 additions & 2 deletions packages/pg-pool/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,13 @@
"version": "3.8.0",
"description": "Connection pool for node-postgres",
"main": "index.js",
"exports": {
".": {
"import": "./esm/index.mjs",
"require": "./index.js",
"default": "./index.js"
}
},
"directories": {
"test": "test"
},
Expand Down Expand Up @@ -32,9 +39,13 @@
"expect.js": "0.3.1",
"lodash": "^4.17.11",
"mocha": "^10.5.2",
"pg-cursor": "^1.3.0"
"pg-cursor": "2.13.1"
},
"peerDependencies": {
"pg": ">=8.0"
}
},
"files": [
"index.js",
"esm"
]
}
11 changes: 11 additions & 0 deletions packages/pg-protocol/esm/index.js
Original file line number Diff line number Diff line change
@@ -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
10 changes: 9 additions & 1 deletion packages/pg-protocol/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
"default": "./dist/index.js"
}
},
"license": "MIT",
"devDependencies": {
"@types/chai": "^4.2.7",
Expand All @@ -29,6 +36,7 @@
},
"files": [
"/dist/*{js,ts,map}",
"/src"
"/src",
"/esm"
]
}
5 changes: 5 additions & 0 deletions packages/pg-query-stream/esm/index.mjs
Original file line number Diff line number Diff line change
@@ -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
10 changes: 9 additions & 1 deletion packages/pg-query-stream/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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.mjs",
"require": "./dist/index.js",
"default": "./dist/index.js"
}
},
"scripts": {
"test": "mocha -r ts-node/register test/**/*.ts"
},
Expand All @@ -21,7 +28,8 @@
],
"files": [
"/dist/*{js,ts,map}",
"/src"
"/src",
"/esm"
],
"author": "Brian M. Carlson",
"license": "MIT",
Expand Down
18 changes: 18 additions & 0 deletions packages/pg/esm/index.mjs
Original file line number Diff line number Diff line change
@@ -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
4 changes: 4 additions & 0 deletions packages/pg/lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
var Client = require('./client')
var defaults = require('./defaults')
var Connection = require('./connection')
var Result = require('./result')
var utils = require('./utils')
var Pool = require('pg-pool')
const { DatabaseError } = require('pg-protocol')
const { escapeIdentifier, escapeLiteral } = require('./utils')
Expand All @@ -26,6 +28,8 @@ var PG = function (clientConstructor) {
this.DatabaseError = DatabaseError
this.escapeIdentifier = escapeIdentifier
this.escapeLiteral = escapeLiteral
this.Result = Result
this.utils = utils
}

if (typeof process.env.NODE_PG_FORCE_NATIVE !== 'undefined') {
Expand Down
Loading