Skip to content

Commit b65f323

Browse files
authored
add ReadonlyKysely<DB> helper. (#218)
1 parent 1ef3203 commit b65f323

45 files changed

Lines changed: 1430 additions & 168 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
dist
22
/helpers
33
migration.*
4+
/readonly.*
45
/test/browser/bundle.js
56
node_modules
67
.vscode

deno.check.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"kysely/helpers/postgres": "./dist/esm/helpers/postgres.js",
1313
"kysely/helpers/sqlite": "./dist/esm/helpers/sqlite.js",
1414
"kysely/migration": "./dist/esm/migration",
15+
"kysely/readonly": "./dist/esm/readonly",
1516
"lodash/snakeCase": "npm:lodash/snakeCase",
1617
"mysql2": "npm:mysql2",
1718
"pg": "npm:pg",

jsr.json

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,10 @@
99
"./helpers/mssql": "./src/helpers/mssql.ts",
1010
"./helpers/postgres": "./src/helpers/postgres.ts",
1111
"./helpers/sqlite": "./src/helpers/sqlite.ts",
12-
"./migration": "./src/migration/index.ts"
12+
"./migration": "./src/migration/index.ts",
13+
"./readonly": "./src/readonly/index.ts"
1314
},
1415
"publish": {
15-
"include": [
16-
"LICENSE",
17-
"README.md",
18-
"src/**/*.ts"
19-
]
16+
"include": ["LICENSE", "README.md", "src/**/*.ts"]
2017
}
2118
}

package.json

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,9 @@
4242
"helpers",
4343
"migration.d.ts",
4444
"migration.js",
45-
"outdated-typescript.d.ts"
45+
"outdated-typescript.d.ts",
46+
"readonly.d.ts",
47+
"readonly.js"
4648
],
4749
"exports": {
4850
".": {
@@ -75,6 +77,11 @@
7577
"import": "./dist/esm/migration/index.js",
7678
"require": "./dist/cjs/migration/index.js",
7779
"default": "./dist/cjs/migration/index.js"
80+
},
81+
"./readonly": {
82+
"import": "./dist/esm/readonly/index.js",
83+
"require": "./dist/cjs/readonly/index.js",
84+
"default": "./dist/cjs/readonly/index.js"
7885
}
7986
},
8087
"sideEffects": false,

scripts/module-fixup.cjs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
const fs = require('fs')
1111
const path = require('path')
12-
const package = require('../package.json')
12+
const packageJSON = require('../package.json')
1313

1414
const ROOT_PATH = path.join(__dirname, '..')
1515
const DIST_PATH = path.join(ROOT_PATH, 'dist')
@@ -24,15 +24,15 @@ for (const [folder, type] of [
2424
)
2525
}
2626

27-
for (const ex of Object.keys(package.exports)) {
27+
for (const ex of Object.keys(packageJSON.exports)) {
2828
if (ex === '.') {
2929
continue
3030
}
3131

3232
const [, ...folders] = ex.split('/')
3333
const fileName = folders.pop()
3434

35-
const [, ...targetFolders] = package.exports[ex].require.split('/')
35+
const [, ...targetFolders] = packageJSON.exports[ex].require.split('/')
3636
const targetFileName = targetFolders.pop()
3737
const target = path.posix.relative(
3838
path.posix.join(ROOT_PATH, ...folders),
@@ -45,11 +45,11 @@ for (const ex of Object.keys(package.exports)) {
4545

4646
fs.writeFileSync(
4747
path.join(ROOT_PATH, ...folders, fileName + '.js'),
48-
`module.exports = require('${target}')`,
48+
`module.exports = require('./${target}')`,
4949
)
5050

5151
fs.writeFileSync(
5252
path.join(ROOT_PATH, ...folders, fileName + '.d.ts'),
53-
`export * from '${target}'`,
53+
`export * from './${target}'`,
5454
)
5555
}

src/dialect/mysql/mysql-driver.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -238,19 +238,18 @@ class MysqlConnection implements DatabaseConnection {
238238
rows: [row],
239239
}
240240
}
241-
} catch (ex) {
241+
} catch (error: unknown) {
242242
if (
243-
ex &&
244-
typeof ex === 'object' &&
245-
'code' in ex &&
243+
isObject(error) &&
244+
'code' in error &&
246245
// @ts-ignore
247-
ex.code === 'ERR_STREAM_PREMATURE_CLOSE'
246+
error.code === 'ERR_STREAM_PREMATURE_CLOSE'
248247
) {
249248
// Most likely because of https://github.com/mysqljs/mysql/blob/master/lib/protocol/sequences/Query.js#L220
250249
return
251250
}
252251

253-
throw ex
252+
throw error
254253
}
255254
}
256255

src/index.ts

Lines changed: 28 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ export {
1515
} from './expression/expression-builder.js'
1616
export * from './expression/expression-wrapper.js'
1717

18-
export * from './query-builder/where-interface.js'
19-
export * from './query-builder/returning-interface.js'
20-
export * from './query-builder/output-interface.js'
21-
export * from './query-builder/having-interface.js'
22-
export * from './query-builder/order-by-interface.js'
18+
export type * from './query-builder/where-interface.js'
19+
export type * from './query-builder/returning-interface.js'
20+
export type * from './query-builder/output-interface.js'
21+
export type * from './query-builder/having-interface.js'
22+
export type * from './query-builder/order-by-interface.js'
2323
export * from './query-builder/select-query-builder.js'
2424
export * from './query-builder/insert-query-builder.js'
2525
export * from './query-builder/update-query-builder.js'
@@ -41,10 +41,10 @@ export * from './query-builder/order-by-item-builder.js'
4141
export * from './raw-builder/raw-builder.js'
4242
export * from './raw-builder/sql.js'
4343

44-
export * from './query-executor/query-executor.js'
44+
export type * from './query-executor/query-executor.js'
4545
export * from './query-executor/default-query-executor.js'
4646
export * from './query-executor/noop-query-executor.js'
47-
export * from './query-executor/query-executor-provider.js'
47+
export type * from './query-executor/query-executor-provider.js'
4848

4949
export * from './query-compiler/default-query-compiler.js'
5050
export * from './query-compiler/compiled-query.js'
@@ -71,40 +71,40 @@ export * from './dynamic/dynamic-reference-builder.js'
7171
export * from './dynamic/dynamic-table-builder.js'
7272

7373
export * from './driver/driver.js'
74-
export * from './driver/database-connection.js'
75-
export * from './driver/connection-provider.js'
74+
export type * from './driver/database-connection.js'
75+
export type * from './driver/connection-provider.js'
7676
export * from './driver/default-connection-provider.js'
7777
export * from './driver/single-connection-provider.js'
7878
export * from './driver/dummy-driver.js'
7979

80-
export * from './dialect/dialect.js'
81-
export * from './dialect/dialect-adapter.js'
80+
export type * from './dialect/dialect.js'
81+
export type * from './dialect/dialect-adapter.js'
8282
export * from './dialect/dialect-adapter-base.js'
83-
export * from './dialect/database-introspector.js'
83+
export type * from './dialect/database-introspector.js'
8484

8585
export * from './dialect/sqlite/sqlite-dialect.js'
86-
export * from './dialect/sqlite/sqlite-dialect-config.js'
86+
export type * from './dialect/sqlite/sqlite-dialect-config.js'
8787
export * from './dialect/sqlite/sqlite-driver.js'
8888
export * from './dialect/sqlite/sqlite-query-compiler.js'
8989
export * from './dialect/sqlite/sqlite-introspector.js'
9090
export * from './dialect/sqlite/sqlite-adapter.js'
9191

9292
export * from './dialect/mysql/mysql-dialect.js'
93-
export * from './dialect/mysql/mysql-dialect-config.js'
93+
export type * from './dialect/mysql/mysql-dialect-config.js'
9494
export * from './dialect/mysql/mysql-driver.js'
9595
export * from './dialect/mysql/mysql-query-compiler.js'
9696
export * from './dialect/mysql/mysql-introspector.js'
9797
export * from './dialect/mysql/mysql-adapter.js'
9898

9999
export * from './dialect/postgres/postgres-driver.js'
100-
export * from './dialect/postgres/postgres-dialect-config.js'
100+
export type * from './dialect/postgres/postgres-dialect-config.js'
101101
export * from './dialect/postgres/postgres-dialect.js'
102102
export * from './dialect/postgres/postgres-query-compiler.js'
103103
export * from './dialect/postgres/postgres-introspector.js'
104104
export * from './dialect/postgres/postgres-adapter.js'
105105

106106
export * from './dialect/mssql/mssql-adapter.js'
107-
export * from './dialect/mssql/mssql-dialect-config.js'
107+
export type * from './dialect/mssql/mssql-dialect-config.js'
108108
export * from './dialect/mssql/mssql-dialect.js'
109109
export * from './dialect/mssql/mssql-driver.js'
110110
export * from './dialect/mssql/mssql-introspector.js'
@@ -113,12 +113,12 @@ export * from './dialect/mssql/mssql-query-compiler.js'
113113
export * from './dialect/pglite/pglite-adapter.js'
114114
export * from './dialect/pglite/pglite-driver.js'
115115
export * from './dialect/pglite/pglite-dialect.js'
116-
export * from './dialect/pglite/pglite-dialect-config.js'
116+
export type * from './dialect/pglite/pglite-dialect-config.js'
117117

118118
export * from './query-compiler/default-query-compiler.js'
119-
export * from './query-compiler/query-compiler.js'
119+
export type * from './query-compiler/query-compiler.js'
120120

121-
export * from './plugin/kysely-plugin.js'
121+
export type * from './plugin/kysely-plugin.js'
122122
export * from './plugin/camel-case/camel-case-plugin.js'
123123
export * from './plugin/deduplicate-joins/deduplicate-joins-plugin.js'
124124
export * from './plugin/with-schema/with-schema-plugin.js'
@@ -191,7 +191,10 @@ export * from './operation-node/on-node.js'
191191
export * from './operation-node/operation-node-source.js'
192192
export * from './operation-node/operation-node-transformer.js'
193193
export * from './operation-node/operation-node-visitor.js'
194-
export * from './operation-node/operation-node.js'
194+
export type {
195+
OperationNode,
196+
OperationNodeKind,
197+
} from './operation-node/operation-node.js'
195198
export * from './operation-node/operator-node.js'
196199
export * from './operation-node/or-action-node.js'
197200
export * from './operation-node/or-node.js'
@@ -211,6 +214,7 @@ export * from './operation-node/references-node.js'
211214
export * from './operation-node/rename-column-node.js'
212215
export * from './operation-node/rename-constraint-node.js'
213216
export * from './operation-node/returning-node.js'
217+
export type { RootOperationNode } from './operation-node/root-operation-node.js'
214218
export * from './operation-node/schemable-identifier-node.js'
215219
export * from './operation-node/select-all-node.js'
216220
export * from './operation-node/select-modifier-node.js'
@@ -232,10 +236,10 @@ export * from './operation-node/when-node.js'
232236
export * from './operation-node/where-node.js'
233237
export * from './operation-node/with-node.js'
234238

235-
export * from './util/column-type.js'
239+
export type * from './util/column-type.js'
236240
export * from './util/compilable.js'
237-
export * from './util/explainable.js'
238-
export * from './util/streamable.js'
241+
export type * from './util/explainable.js'
242+
export type * from './util/streamable.js'
239243
export * from './util/log.js'
240244
export type {
241245
AnyAliasedColumn,
@@ -260,7 +264,7 @@ export type {
260264
StringsWhenDataTypeNotAvailable,
261265
UnknownRow,
262266
} from './util/type-utils.js'
263-
export * from './util/infer-result.js'
267+
export type * from './util/infer-result.js'
264268
export { logOnce } from './util/log-once.js'
265269
export { createQueryId, type QueryId } from './util/query-id.js'
266270
export type { KyselyTypeError } from './util/type-error.js'

0 commit comments

Comments
 (0)