Skip to content

Commit 09e07a4

Browse files
committed
perf(plugin): improve string perf and use forof
1 parent bb93256 commit 09e07a4

File tree

4 files changed

+20
-12
lines changed

4 files changed

+20
-12
lines changed

eslint.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,7 @@ import { defineEslintConfig } from '@subframe7536/eslint-config'
22

33
export default defineEslintConfig({
44
ignores: ['./packages/sqlite-builder/README.md'],
5+
overrideRules: {
6+
'prefer-template': 'off',
7+
},
58
})

packages/dialect-tauri/src/driver.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export class TaruiSqlDriver<T extends 'sqlite' | 'mysql' | 'postgres'> {
1414

1515
async init(): Promise<void> {
1616
this.db = typeof this.config.database === 'function'
17-
? await this.config.database(`${this.config.type}:${this.config.type === 'sqlite' ? '' : '//'}` as any)
17+
? await this.config.database(this.config.type + this.config.type === 'sqlite' ? ':' : '://' as any)
1818
: await this.config.database
1919
this.connection = new TauriSqlConnection(this.db)
2020

packages/plugin-serialize/src/serialize-plugin.ts

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -121,14 +121,19 @@ export class SerializePlugin implements KyselyPlugin {
121121
): Promise<QueryResult<UnknownRow>> {
122122
return this.ctx?.has(queryId)
123123
? result
124-
: {
125-
...result,
126-
rows: result.rows.map(row => Object.fromEntries(
127-
Object.entries(row).map(([key, value]) =>
128-
([key, this.deserializer(value)]),
129-
),
130-
)),
131-
}
124+
: { ...result, rows: this.parseRows(result.rows) }
125+
}
126+
127+
private parseRows(rows: UnknownRow[]): UnknownRow[] {
128+
const result: UnknownRow[] = []
129+
for (const row of rows) {
130+
const parsedRow: UnknownRow = {}
131+
for (const [key, value] of Object.entries(row)) {
132+
parsedRow[key] = this.deserializer(value)
133+
}
134+
result.push(parsedRow)
135+
}
136+
return result
132137
}
133138
}
134139

packages/plugin-serialize/src/serializer.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export const defaultSerializer: Serializer = (parameter) => {
55
if (skipTransform(parameter) || typeof parameter === 'string') {
66
return parameter
77
} else if (typeof parameter === 'boolean') {
8-
return `${parameter}`
8+
return '' + parameter
99
} else if (parameter instanceof Date) {
1010
return parameter.toISOString()
1111
} else {
@@ -31,8 +31,8 @@ export const defaultDeserializer: Deserializer = (parameter) => {
3131
} else if (dateRegex.test(parameter)) {
3232
return new Date(parameter)
3333
} else if (
34-
(parameter.startsWith('{') && parameter.endsWith('}'))
35-
|| (parameter.startsWith('[') && parameter.endsWith(']'))
34+
(parameter[0] === '{' && parameter[parameter.length - 1] === '}')
35+
|| (parameter[0] === '[' && parameter[parameter.length - 1] === ']')
3636
) {
3737
try {
3838
return JSON.parse(parameter)

0 commit comments

Comments
 (0)