Skip to content

Commit a9b8fba

Browse files
committed
fix: improve browser package exports
Expose explicit ESM, browser, and UMD entrypoints so web apps and CDNs can resolve the package predictably. Generate a small ESM wrapper during build, map legacy deep imports through exports, and exclude TLS-only code from browser resolution.
1 parent fe88d62 commit a9b8fba

2 files changed

Lines changed: 74 additions & 2 deletions

File tree

package.json

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,48 @@
11
{
22
"name": "@sqlitecloud/drivers",
3-
"version": "1.0.837",
3+
"version": "1.0.870",
44
"description": "SQLiteCloud drivers for Typescript/Javascript in edge, web and node clients",
55
"main": "./lib/index.js",
6+
"module": "./lib/esm/index.js",
67
"types": "./lib/index.d.ts",
8+
"unpkg": "./lib/sqlitecloud.drivers.js",
9+
"jsdelivr": "./lib/sqlitecloud.drivers.js",
10+
"exports": {
11+
".": {
12+
"types": "./lib/esm/index.d.ts",
13+
"import": "./lib/esm/index.js",
14+
"require": "./lib/index.js",
15+
"default": "./lib/index.js"
16+
},
17+
"./browser": {
18+
"types": "./lib/esm/index.d.ts",
19+
"import": "./lib/esm/index.js",
20+
"require": "./lib/index.js",
21+
"default": "./lib/esm/index.js"
22+
},
23+
"./umd": {
24+
"types": "./lib/esm/index.d.ts",
25+
"default": "./lib/sqlitecloud.drivers.js"
26+
},
27+
"./umd-dev": {
28+
"types": "./lib/esm/index.d.ts",
29+
"default": "./lib/sqlitecloud.drivers.dev.js"
30+
},
31+
"./lib/*.js": "./lib/*.js",
32+
"./lib/*.d.ts": "./lib/*.d.ts",
33+
"./lib/*": {
34+
"types": "./lib/*.d.ts",
35+
"require": "./lib/*.js",
36+
"default": "./lib/*.js"
37+
},
38+
"./package.json": "./package.json"
39+
},
740
"files": [
841
"lib/**/*"
942
],
1043
"scripts": {
1144
"test": "jest --silent --coverage",
12-
"build": "rm -rf ./lib/ && tsc --project tsconfig.build.json && npx webpack",
45+
"build": "rm -rf ./lib/ && tsc --project tsconfig.build.json && node scripts/write-esm-wrapper.cjs && npx webpack",
1346
"publish": "npm run build && npm publish --access public",
1447
"prettier": "prettier --write 'src/**/*'",
1548
"typedoc": "rm -rf ./docs/ && typedoc --out docs && typedoc --plugin typedoc-plugin-markdown --out docs/markdown",
@@ -107,6 +140,7 @@
107140
"buffer": "@craftzdog/react-native-buffer"
108141
},
109142
"browser": {
143+
"./lib/drivers/connection-tls.js": false,
110144
"tls": false
111145
}
112146
}

scripts/write-esm-wrapper.cjs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
const fs = require('fs')
2+
const path = require('path')
3+
4+
const esmDir = path.join(__dirname, '..', 'lib', 'esm')
5+
6+
fs.mkdirSync(esmDir, { recursive: true })
7+
8+
fs.writeFileSync(path.join(esmDir, 'package.json'), `${JSON.stringify({ type: 'module' }, null, 2)}\n`)
9+
10+
fs.writeFileSync(
11+
path.join(esmDir, 'index.js'),
12+
`import sqlitecloud from '../index.js'
13+
14+
export const Database = sqlitecloud.Database
15+
export const SQLiteCloudConnection = sqlitecloud.SQLiteCloudConnection
16+
export const SQLiteCloudError = sqlitecloud.SQLiteCloudError
17+
export const SQLiteCloudRowset = sqlitecloud.SQLiteCloudRowset
18+
export const SQLiteCloudRow = sqlitecloud.SQLiteCloudRow
19+
export const parseconnectionstring = sqlitecloud.parseconnectionstring
20+
export const validateConfiguration = sqlitecloud.validateConfiguration
21+
export const getInitializationCommands = sqlitecloud.getInitializationCommands
22+
export const sanitizeSQLiteIdentifier = sqlitecloud.sanitizeSQLiteIdentifier
23+
export const parseSafeIntegerMode = sqlitecloud.parseSafeIntegerMode
24+
export const encodeBigIntMarkers = sqlitecloud.encodeBigIntMarkers
25+
export const decodeBigIntMarkers = sqlitecloud.decodeBigIntMarkers
26+
export const protocol = sqlitecloud.protocol
27+
28+
export default sqlitecloud
29+
`
30+
)
31+
32+
fs.writeFileSync(
33+
path.join(esmDir, 'index.d.ts'),
34+
`export * from '../index'
35+
import * as sqlitecloud from '../index'
36+
export default sqlitecloud
37+
`
38+
)

0 commit comments

Comments
 (0)