release: v0.2.5 — 质量加固 + Bug修复 + 性能优化 + SQL扩展
CI / test (18.x) (push) Successful in 10m4s
CI / test (20.x) (push) Successful in 10m0s
CI / test (22.x) (push) Successful in 9m58s
CI / test (24.x) (push) Successful in 9m58s

This commit is contained in:
thzxx
2026-07-29 21:50:53 +08:00
parent 29d779d96a
commit eb79b2198e
34 changed files with 2017 additions and 298 deletions
+10 -2
View File
@@ -1,6 +1,6 @@
// @ts-nocheck
/**
* metona-sqlark React Integration (v0.1.11)
* metona-sqlark React Integration (v0.2.5)
* @module integrations/react
*
* 轻量 React hooks,需要 react 作为 peer dependency。
@@ -46,12 +46,20 @@ export function useQuery(
return { data, loading, error, refresh: execute };
}
/** 表名合法性校验(防 SQL 注入) */
function validateTableName(name: string): string {
if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name)) {
throw new Error(`Invalid table name: "${name}"`);
}
return name;
}
/** useTable: 快速获取表数据 */
export function useTable(
db: MetonaSqlark,
tableName: string,
): { data: Record<string, unknown>[]; loading: boolean; refresh: () => void } {
const { data, loading, refresh } = useQuery(db, `SELECT * FROM ${tableName}`, [tableName]);
const { data, loading, refresh } = useQuery(db, `SELECT * FROM ${validateTableName(tableName)}`, [tableName]);
return { data, loading, refresh };
}
+10 -2
View File
@@ -1,6 +1,6 @@
// @ts-nocheck
/**
* metona-sqlark Vue Integration (v0.1.11)
* metona-sqlark Vue Integration (v0.2.5)
* @module integrations/vue
*
* 轻量 Vue composables,需要 vue 作为 peer dependency。
@@ -43,12 +43,20 @@ export function useSqlarkQuery(
return { data, loading, error, refresh: execute };
}
/** 表名合法性校验(防 SQL 注入) */
function validateTableName(name: string): string {
if (!/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(name)) {
throw new Error(`Invalid table name: "${name}"`);
}
return name;
}
/** useSqlarkTable: 快速获取表数据 */
export function useSqlarkTable(
db: MetonaSqlark,
tableName: string,
): { data: Ref<Record<string, unknown>[]>; loading: Ref<boolean>; refresh: () => void } {
const { data, loading, refresh } = useSqlarkQuery(db, `SELECT * FROM ${tableName}`);
const { data, loading, refresh } = useSqlarkQuery(db, `SELECT * FROM ${validateTableName(tableName)}`);
return { data, loading, refresh };
}