release: v0.2.5 — 质量加固 + Bug修复 + 性能优化 + SQL扩展
This commit is contained in:
@@ -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
@@ -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 };
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user