50 lines
1.2 KiB
JavaScript
50 lines
1.2 KiB
JavaScript
import { invoke, isTauri } from "@tauri-apps/api/core";
|
|
|
|
function ensureTauri() {
|
|
if (!isTauri()) {
|
|
throw new Error("语音历史需在 Tauri 桌面端使用");
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @typedef {{ id: number, name: string, filePath: string, sourceText: string, createdAt: string }} GeneratedAudioRecord
|
|
*/
|
|
|
|
/** @returns {Promise<GeneratedAudioRecord[]>} */
|
|
export async function listGeneratedAudios() {
|
|
ensureTauri();
|
|
return invoke("list_generated_audios");
|
|
}
|
|
|
|
/**
|
|
* @param {string} name 可为空,空时由后端填入当前时间
|
|
* @param {string} filePath
|
|
* @param {string} [sourceText]
|
|
* @returns {Promise<GeneratedAudioRecord>}
|
|
*/
|
|
export async function insertGeneratedAudio(name, filePath, sourceText = "") {
|
|
ensureTauri();
|
|
return invoke("insert_generated_audio", {
|
|
name,
|
|
filePath,
|
|
sourceText: sourceText || "",
|
|
});
|
|
}
|
|
|
|
/**
|
|
* @param {number} id
|
|
* @param {string} name
|
|
*/
|
|
export async function updateGeneratedAudioName(id, name) {
|
|
ensureTauri();
|
|
return invoke("update_generated_audio_name", { id, name });
|
|
}
|
|
|
|
/**
|
|
* @param {number} id
|
|
*/
|
|
export async function deleteGeneratedAudio(id) {
|
|
ensureTauri();
|
|
return invoke("delete_generated_audio", { id });
|
|
}
|