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 all 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
3 changes: 3 additions & 0 deletions packages/pg-cloudflare/esm/index.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import cf from '../dist/index.js'

export const CloudflareSocket = cf.CloudflareSocket
14 changes: 9 additions & 5 deletions packages/pg-cloudflare/package.json
Original file line number Diff line number Diff line change
@@ -1,17 +1,20 @@
{
"name": "pg-cloudflare",
"version": "1.1.1",
"version": "1.1.2-alpha.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",
"license": "MIT",
"devDependencies": {
"ts-node": "^8.5.4",
"typescript": "^4.0.3"
},
"exports": {
"workerd": "./dist/index.js",
"default": "./dist/empty.js"
".": {
"import": "./esm/index.mjs",
"require": "./dist/index.js",
"default": "./dist/index.js"
}
},
"scripts": {
"build": "tsc",
Expand All @@ -26,6 +29,7 @@
},
"files": [
"/dist/*{js,ts,map}",
"/src"
"/src",
"/esm"
]
}
3 changes: 2 additions & 1 deletion packages/pg-cloudflare/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,8 @@ export class CloudflareSocket extends EventEmitter {
if (connectListener) this.once('connect', connectListener)

const options: SocketOptions = this.ssl ? { secureTransport: 'starttls' } : {}
const { connect } = await import('cloudflare:sockets')
const mod = await import('cloudflare:sockets')
const connect = mod.connect
this._cfSocket = connect(`${host}:${port}`, options)
this._cfWriter = this._cfSocket.writable.getWriter()
this._addClosedHandler()
Expand Down
6 changes: 3 additions & 3 deletions packages/pg-cloudflare/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"compilerOptions": {
"module": "ES2020",
"module": "node16",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"target": "ES2020",
"target": "es2020",
"noImplicitAny": true,
"moduleResolution": "node",
"moduleResolution": "node16",
"sourceMap": true,
"outDir": "dist",
"incremental": true,
Expand Down
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
13 changes: 11 additions & 2 deletions packages/pg-connection-string/package.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,17 @@
{
"name": "pg-connection-string",
"version": "2.7.0",
"version": "2.7.1-alpha.0",
"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
17 changes: 14 additions & 3 deletions packages/pg-cursor/package.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
{
"name": "pg-cursor",
"version": "2.13.1",
"version": "2.13.2-alpha.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 @@ -18,9 +25,13 @@
"license": "MIT",
"devDependencies": {
"mocha": "^10.5.2",
"pg": "^8.14.1"
"pg": "^8.14.2-alpha.1"
},
"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.1-alpha.1",
"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.2-alpha.1",
"pg-cloudflare": "^1.1.2-alpha.1",
"pg-cursor": "^2.13.2-alpha.1",
"pg-native": "^3.3.1-alpha.0",
"pg-pool": "^3.8.1-alpha.1",
"pg-query-stream": "^4.8.2-alpha.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-cloudflare', () => {
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
15 changes: 13 additions & 2 deletions packages/pg-native/package.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
{
"name": "pg-native",
"version": "3.3.0",
"version": "3.3.1-alpha.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
17 changes: 14 additions & 3 deletions packages/pg-pool/package.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,15 @@
{
"name": "pg-pool",
"version": "3.8.0",
"version": "3.8.1-alpha.1",
"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.2-alpha.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
12 changes: 10 additions & 2 deletions packages/pg-protocol/package.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,16 @@
{
"name": "pg-protocol",
"version": "1.8.0",
"version": "1.8.1-alpha.0",
"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"
]
}
4 changes: 2 additions & 2 deletions packages/pg-protocol/tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
{
"compilerOptions": {
"module": "commonjs",
"module": "node16",
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"target": "es6",
"noImplicitAny": true,
"moduleResolution": "node",
"moduleResolution": "node16",
"sourceMap": true,
"outDir": "dist",
"incremental": true,
Expand Down
Loading