Skip to content
This repository was archived by the owner on May 25, 2025. It is now read-only.

Commit ad9d856

Browse files
fix: deps
1 parent 670333d commit ad9d856

File tree

5 files changed

+52
-55
lines changed

5 files changed

+52
-55
lines changed

src/mysql.db.ts

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,11 @@ import {
2020
_mapValues,
2121
_Memo,
2222
_omit,
23-
AnyPartialObjectWithId,
2423
CommonLogger,
2524
commonLoggerPrefix,
2625
JsonSchemaObject,
2726
JsonSchemaRootObject,
28-
PartialObjectWithId,
29-
Saved,
27+
ObjectWithId,
3028
} from '@naturalcycles/js-lib'
3129
import { ReadableTyped, white } from '@naturalcycles/nodejs-lib'
3230
import {
@@ -48,8 +46,7 @@ import {
4846
} from './schema/mysql.schema.util'
4947

5048
export interface MysqlDBOptions extends CommonDBOptions {}
51-
export interface MysqlDBSaveOptions<ROW extends PartialObjectWithId = AnyPartialObjectWithId>
52-
extends CommonDBSaveOptions<ROW> {}
49+
export interface MysqlDBSaveOptions<ROW extends ObjectWithId> extends CommonDBSaveOptions<ROW> {}
5350

5451
/**
5552
* @default false / undefined
@@ -196,22 +193,22 @@ export class MysqlDB extends BaseCommonDB implements CommonDB {
196193
}
197194

198195
// GET
199-
override async getByIds<ROW extends PartialObjectWithId>(
196+
override async getByIds<ROW extends ObjectWithId>(
200197
table: string,
201198
ids: string[],
202199
opt: MysqlDBOptions = {},
203-
): Promise<Saved<ROW>[]> {
200+
): Promise<ROW[]> {
204201
if (!ids.length) return []
205202
const q = new DBQuery<ROW>(table).filterEq('id', ids)
206203
const { rows } = await this.runQuery(q, opt)
207204
return rows.map(r => _mapKeys(r, k => mapNameFromMySQL(k as string)) as any)
208205
}
209206

210207
// QUERY
211-
override async runQuery<ROW extends PartialObjectWithId>(
208+
override async runQuery<ROW extends ObjectWithId>(
212209
q: DBQuery<ROW>,
213210
_opt: MysqlDBOptions = {},
214-
): Promise<RunQueryResult<Saved<ROW>>> {
211+
): Promise<RunQueryResult<ROW>> {
215212
const sql = dbQueryToSQLSelect(q)
216213
if (!sql) {
217214
return {
@@ -261,18 +258,18 @@ export class MysqlDB extends BaseCommonDB implements CommonDB {
261258
}
262259
}
263260

264-
override async runQueryCount<ROW extends PartialObjectWithId>(
261+
override async runQueryCount<ROW extends ObjectWithId>(
265262
q: DBQuery<ROW>,
266263
_opt?: CommonDBOptions,
267264
): Promise<number> {
268265
const { rows } = await this.runQuery(q.select(['count(*) as _count' as any]))
269266
return (rows[0] as any)._count
270267
}
271268

272-
override streamQuery<ROW extends PartialObjectWithId>(
269+
override streamQuery<ROW extends ObjectWithId>(
273270
q: DBQuery<ROW>,
274271
_opt: MysqlDBOptions = {},
275-
): ReadableTyped<Saved<ROW>> {
272+
): ReadableTyped<ROW> {
276273
const sql = dbQueryToSQLSelect(q)
277274
if (!sql) {
278275
return Readable.from([])
@@ -295,7 +292,7 @@ export class MysqlDB extends BaseCommonDB implements CommonDB {
295292
}
296293

297294
// SAVE
298-
override async saveBatch<ROW extends PartialObjectWithId>(
295+
override async saveBatch<ROW extends ObjectWithId>(
299296
table: string,
300297
rowsInput: ROW[],
301298
opt: MysqlDBSaveOptions<ROW> = {},
@@ -373,7 +370,7 @@ export class MysqlDB extends BaseCommonDB implements CommonDB {
373370
return affectedRows
374371
}
375372

376-
override async deleteByQuery<ROW extends PartialObjectWithId>(
373+
override async deleteByQuery<ROW extends ObjectWithId>(
377374
q: DBQuery<ROW>,
378375
_opt?: CommonDBOptions,
379376
): Promise<number> {
@@ -393,7 +390,7 @@ export class MysqlDB extends BaseCommonDB implements CommonDB {
393390
/**
394391
* dropIfExists=true needed as a safety check
395392
*/
396-
override async createTable<ROW extends PartialObjectWithId>(
393+
override async createTable<ROW extends ObjectWithId>(
397394
table: string,
398395
schema: JsonSchemaObject<ROW>,
399396
opt: CommonDBCreateOptions = {},
@@ -410,7 +407,7 @@ export class MysqlDB extends BaseCommonDB implements CommonDB {
410407
.filter(Boolean)
411408
}
412409

413-
override async getTableSchema<ROW extends PartialObjectWithId>(
410+
override async getTableSchema<ROW extends ObjectWithId>(
414411
table: string,
415412
): Promise<JsonSchemaRootObject<ROW>> {
416413
const stats = await this.runSQL<MySQLTableStats[]>({
@@ -420,7 +417,7 @@ export class MysqlDB extends BaseCommonDB implements CommonDB {
420417
return mysqlTableStatsToJsonSchemaField<ROW>(table, stats, this.cfg.logger)
421418
}
422419

423-
override async updateByQuery<ROW extends PartialObjectWithId>(
420+
override async updateByQuery<ROW extends ObjectWithId>(
424421
q: DBQuery<ROW>,
425422
patch: DBPatch<ROW>,
426423
): Promise<number> {

src/query.util.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ test('dbQueryToSQLSelect', () => {
1111
expect(sql).toMatchSnapshot()
1212

1313
sql = dbQueryToSQLSelect(
14-
new DBQuery('TBL1')
14+
new DBQuery<any>('TBL1')
1515
.filterEq('a', 'b')
1616
.filter('c', '>', '2019')
1717
.order('aaa')
@@ -21,19 +21,19 @@ test('dbQueryToSQLSelect', () => {
2121
// console.log(sql)
2222
expect(sql).toMatchSnapshot()
2323

24-
sql = dbQueryToSQLSelect(new DBQuery('TBL1').filter('num', '>', 15))
24+
sql = dbQueryToSQLSelect(new DBQuery<any>('TBL1').filter('num', '>', 15))
2525
// console.log(sql)
2626
expect(sql).toMatchSnapshot()
2727

2828
// NULL cases
2929
sql = dbQueryToSQLSelect(
30-
new DBQuery('TBL1').filterEq('a', undefined).filterEq('a2', null).filter('a3', '>', null),
30+
new DBQuery<any>('TBL1').filterEq('a', undefined).filterEq('a2', null).filter('a3', '>', null),
3131
)
3232
// console.log(sql)
3333
expect(sql).toMatchSnapshot()
3434

3535
// ARRAY CASES
36-
sql = dbQueryToSQLSelect(new DBQuery('TBL1').filterEq('a', ['a1', 'a2', 'a3']))
36+
sql = dbQueryToSQLSelect(new DBQuery<any>('TBL1').filterEq('a', ['a1', 'a2', 'a3']))
3737
// console.log(sql)
3838
expect(sql).toMatchSnapshot()
3939
})
@@ -42,7 +42,7 @@ test('dbQueryToSQLDelete', () => {
4242
let sql = dbQueryToSQLDelete(new DBQuery('TBL1'))
4343
expect(sql).toMatchSnapshot()
4444

45-
sql = dbQueryToSQLDelete(new DBQuery('TBL1').filter('a', '>', null))
45+
sql = dbQueryToSQLDelete(new DBQuery<any>('TBL1').filter('a', '>', null))
4646
expect(sql).toMatchSnapshot()
4747
})
4848

@@ -60,7 +60,7 @@ test('dbQueryToSQLUpdate', () => {
6060
// console.log(sql)
6161
expect(sql).toMatchSnapshot()
6262

63-
sql = dbQueryToSQLUpdate(new DBQuery(TEST_TABLE).filter('a', '>', 5), item)
63+
sql = dbQueryToSQLUpdate(new DBQuery<any>(TEST_TABLE).filter('a', '>', 5), item)
6464
// console.log(sql)
6565
expect(sql).toMatchSnapshot()
6666
})

src/query.util.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { DBQuery, DBQueryFilterOperator } from '@naturalcycles/db-lib'
2-
import { _hb, CommonLogger } from '@naturalcycles/js-lib'
2+
import { _hb, AnyObjectWithId, CommonLogger } from '@naturalcycles/js-lib'
33
import { white, yellow } from '@naturalcycles/nodejs-lib'
44
import { QueryOptions } from 'mysql'
55
import * as mysql from 'mysql'
@@ -160,7 +160,7 @@ export function dbQueryToSQLUpdate(q: DBQuery<any>, record: Record<any, any>): s
160160
return mysql.format(tokens.join(' '), Object.values(record))
161161
}
162162

163-
function selectTokens(q: DBQuery): string[] {
163+
function selectTokens(q: DBQuery<any>): string[] {
164164
let fields = ['*']
165165

166166
if (q._selectedFieldNames) {
@@ -192,7 +192,7 @@ function offsetLimitTokens(q: DBQuery<any>): string[] {
192192
return tokens
193193
}
194194

195-
function groupOrderTokens(q: DBQuery): string[] {
195+
function groupOrderTokens(q: DBQuery<AnyObjectWithId>): string[] {
196196
const t: string[] = []
197197

198198
if (q._groupByFieldNames?.length) {
@@ -216,7 +216,7 @@ const OP_MAP: Partial<Record<DBQueryFilterOperator, string>> = {
216216
/**
217217
* Returns `null` for "guaranteed 0 rows" cases.
218218
*/
219-
function getWhereTokens(q: DBQuery): string[] | null {
219+
function getWhereTokens(q: DBQuery<any>): string[] | null {
220220
if (!q._filters.length) return []
221221

222222
let returnNull = false

src/test/mysql.manual.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ test('buffer', async () => {
104104

105105
await db.createTable(table, schema, { dropIfExists: true })
106106
await db.saveBatch(table, items)
107-
const { rows } = await db.runQuery(new DBQuery(table))
107+
const { rows } = await db.runQuery<any>(new DBQuery(table))
108108
// console.log(items2)
109109
console.log(await inflateToString(rows[0]!['extra']))
110110
expect(rows).toEqual(items)

yarn.lock

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -779,9 +779,9 @@
779779
"@jridgewell/sourcemap-codec" "^1.4.10"
780780

781781
"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9":
782-
version "0.3.21"
783-
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.21.tgz#5dc1df7b3dc4a6209e503a924e1ca56097a2bb15"
784-
integrity sha512-SRfKmRe1KvYnxjEMtxEr+J4HIeMX5YBg/qhRHpxEIGjhX1rshcHlnFUE9K0GazhVKWM7B+nARSkV8LuvJdJ5/g==
782+
version "0.3.22"
783+
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.22.tgz#72a621e5de59f5f1ef792d0793a82ee20f645e4c"
784+
integrity sha512-Wf963MzWtA2sjrNt+g18IAln9lKnlRp+K2eH4jjIoF1wYeq3aMREpG09xhlhdzS0EjwU7qmUJYangWa+151vZw==
785785
dependencies:
786786
"@jridgewell/resolve-uri" "^3.1.0"
787787
"@jridgewell/sourcemap-codec" "^1.4.14"
@@ -799,9 +799,9 @@
799799
typescript "^5.0.2"
800800

801801
"@naturalcycles/db-lib@^9.1.0":
802-
version "9.3.0"
803-
resolved "https://registry.yarnpkg.com/@naturalcycles/db-lib/-/db-lib-9.3.0.tgz#d6727ff62b4150f26e83e3b68e5ca975229f154d"
804-
integrity sha512-wcPFWmQ+jXtdXrSqPuXHnkzw4UjwvJUhtIIWFxLdsaoEFnA8peSsdpH+E5QIU7EDjXfQmYQ6nhcacmWQ6NvM+Q==
802+
version "9.4.1"
803+
resolved "https://registry.yarnpkg.com/@naturalcycles/db-lib/-/db-lib-9.4.1.tgz#e4ff4eaa571e3e78cf7a5b6d1cb0f08866a12b92"
804+
integrity sha512-sb5p/T+da8/6BLPr5NRCX405JkZtKluCNkC+WY72L6MyPK0fEgOkXCyzpzs03b621SRIlH4lSqzLj+PwWsQJyw==
805805
dependencies:
806806
"@naturalcycles/js-lib" "^14.116.0"
807807
"@naturalcycles/nodejs-lib" "^13.1.1"
@@ -842,17 +842,17 @@
842842
yargs "^17.0.0"
843843

844844
"@naturalcycles/js-lib@^14.0.0", "@naturalcycles/js-lib@^14.116.0", "@naturalcycles/js-lib@^14.47.0":
845-
version "14.204.1"
846-
resolved "https://registry.yarnpkg.com/@naturalcycles/js-lib/-/js-lib-14.204.1.tgz#d81838e4a8cd889b734637c2b26a750d5758ef10"
847-
integrity sha512-+2E30+MKFdlxnkbsBHBcbi8aTTPl3AZRe+NUzgimJoJw+7wJS0k6v2DVbrmQ1MCcEyQ4gV5jhOQT8iHEtDDSDw==
845+
version "14.206.0"
846+
resolved "https://registry.yarnpkg.com/@naturalcycles/js-lib/-/js-lib-14.206.0.tgz#529be8c590f31cd7dd432032387cca239b860c8f"
847+
integrity sha512-PAoaYwrViznvASPixkaXCvonbaLEHs3yb4maQm5b1SXkiQq6viR8NLzaI+8/Rt3iWveP4BScluYYqfbuPJCtgg==
848848
dependencies:
849849
tslib "^2.0.0"
850850
zod "^3.20.2"
851851

852852
"@naturalcycles/nodejs-lib@^13.0.1", "@naturalcycles/nodejs-lib@^13.1.0", "@naturalcycles/nodejs-lib@^13.1.1":
853-
version "13.7.0"
854-
resolved "https://registry.yarnpkg.com/@naturalcycles/nodejs-lib/-/nodejs-lib-13.7.0.tgz#8d49d85d9c3165f20a9bbc08024bc213f5318cae"
855-
integrity sha512-mPGMLS5pBP8U9ToVwM91+7ydir+fCUqYE3NVDotvfQW6jYf+LExKqnyMDGCEnwkGZhkafvGHbHBh5eqluyXsWA==
853+
version "13.7.1"
854+
resolved "https://registry.yarnpkg.com/@naturalcycles/nodejs-lib/-/nodejs-lib-13.7.1.tgz#2369c0a1b28de70bdf87fff067a2e6b2a651c2df"
855+
integrity sha512-y0hVINujeLSVtggnfJEfavZMqLu32/ERIG+EcSgPHK4+MpnKMmpOkh3b59LjaVPs8JDvnCDWRTIPCOOllm1oLw==
856856
dependencies:
857857
"@naturalcycles/js-lib" "^14.0.0"
858858
"@types/js-yaml" "^4.0.9"
@@ -918,9 +918,9 @@
918918
integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==
919919

920920
"@sinonjs/commons@^3.0.0":
921-
version "3.0.0"
922-
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72"
923-
integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==
921+
version "3.0.1"
922+
resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd"
923+
integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==
924924
dependencies:
925925
type-detect "4.0.8"
926926

@@ -1811,9 +1811,9 @@ convert-source-map@^2.0.0:
18111811
integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==
18121812

18131813
core-js-compat@^3.34.0:
1814-
version "3.35.0"
1815-
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.0.tgz#c149a3d1ab51e743bc1da61e39cb51f461a41873"
1816-
integrity sha512-5blwFAddknKeNgsjBzilkdQ0+YK8L1PfqPYq40NOYMYFSS38qj+hpTcLLWwpIwA2A5bje/x5jmVn2tzUMg9IVw==
1814+
version "3.35.1"
1815+
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.1.tgz#215247d7edb9e830efa4218ff719beb2803555e2"
1816+
integrity sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==
18171817
dependencies:
18181818
browserslist "^4.22.2"
18191819

@@ -1980,9 +1980,9 @@ dot-prop@^5.1.0:
19801980
is-obj "^2.0.0"
19811981

19821982
dotenv@^16.0.0:
1983-
version "16.3.1"
1984-
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.1.tgz#369034de7d7e5b120972693352a3bf112172cc3e"
1985-
integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==
1983+
version "16.3.2"
1984+
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.3.2.tgz#3cb611ce5a63002dbabf7c281bc331f69d28f03f"
1985+
integrity sha512-HTlk5nmhkm8F6JcdXvHIzaorzCoziNQT9mGxLPVXW8wJF1TiGSL60ZGB4gHWabHOaMmWmhvk2/lPHfnBiT78AQ==
19861986

19871987
ecdsa-sig-formatter@1.0.11:
19881988
version "1.0.11"
@@ -1992,9 +1992,9 @@ ecdsa-sig-formatter@1.0.11:
19921992
safe-buffer "^5.0.1"
19931993

19941994
electron-to-chromium@^1.4.601:
1995-
version "1.4.639"
1996-
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.639.tgz#c6f9cc685f9efb2980d2cfc95a27f8142c9adf28"
1997-
integrity sha512-CkKf3ZUVZchr+zDpAlNLEEy2NJJ9T64ULWaDgy3THXXlPVPkLu3VOs9Bac44nebVtdwl2geSj6AxTtGDOxoXhg==
1995+
version "1.4.640"
1996+
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.640.tgz#76290a36fa4b5f1f4cadaf1fc582478ebb3ac246"
1997+
integrity sha512-z/6oZ/Muqk4BaE7P69bXhUhpJbUM9ZJeka43ZwxsDshKtePns4mhBlh8bU5+yrnOnz3fhG82XLzGUXazOmsWnA==
19981998

19991999
emittery@^0.13.1:
20002000
version "0.13.1"
@@ -4346,9 +4346,9 @@ reusify@^1.0.4:
43464346
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
43474347

43484348
rfdc@^1.3.0:
4349-
version "1.3.0"
4350-
resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b"
4351-
integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==
4349+
version "1.3.1"
4350+
resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.1.tgz#2b6d4df52dffe8bb346992a10ea9451f24373a8f"
4351+
integrity sha512-r5a3l5HzYlIC68TpmYKlxWjmOP6wiPJ1vWv2HeLhNsRZMrCkxeqxiHlQ21oXmQ4F3SiryXBHhAD7JZqvOJjFmg==
43524352

43534353
rimraf@^3.0.2:
43544354
version "3.0.2"

0 commit comments

Comments
 (0)