Skip to content

Commit

Permalink
Merge branch 'main' into add/loop_2224
Browse files Browse the repository at this point in the history
  • Loading branch information
romot-co authored Feb 22, 2025
2 parents 9c0cbd0 + 94995bf commit 91d2357
Show file tree
Hide file tree
Showing 34 changed files with 695 additions and 649 deletions.
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ VITE_DEFAULT_ENGINE_INFOS=`[

### 4. 事前テスト

- 提出前にコードをテストします。テストにはいくつかのツールを使います。このガイドラインの手順で進んでいれば既に必要なものはそろっている
- 提出前にコードをテストします。テストにはいくつかのツールを使います。このガイドラインの手順で進んでいれば既に必要なものはそろっています。

- 記述コードがコーディングルールに沿っていることを確認します。(特に今回の作業によって警告やエラーが増えていないかどうかに注目してください)

Expand Down Expand Up @@ -259,7 +259,7 @@ VITE_DEFAULT_ENGINE_INFOS=`[
- 使用するライブラリのライセンスに使用出来ないものが使われていないことを確認します。

```bash
pnpm run license:generate -- -o voicevox_licenses.json
pnpm run license:generate -o voicevox_licenses.json
```

- e2eテストの内容を確認します。
Expand Down
2 changes: 1 addition & 1 deletion docs/res/エンジン再起動シーケンス図.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ flowchart LR
939785 --> 494722["runtimeInfo.exportFile"]
end
subgraph 512074["Vuex.POST_ENGINE_START"]
623200["Vuex.GET_ALT_PORT_INFOS"] --> 225947["各エンジン"]
623200["Vuex.PULL_ALT_PORT_INFOS"] --> 225947["各エンジン"]
subgraph 225947["各エンジン"]
489573{" "} -->|"state==STARTING"| 445649["Vuex.START_WAITING_ENGINE"]
445649 --> 722638["Vuex.FETCH_AND_SET_ENGINE_MANIFEST"]
Expand Down
2 changes: 0 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@
"encoding-japanese": "1.0.30",
"fast-array-diff": "1.1.0",
"fast-base64": "0.1.8",
"glob": "11.0.0",
"hotkeys-js": "3.13.6",
"immer": "9.0.21",
"kuromoji": "github:VOICEVOX/kuromoji.js#0.0.1",
Expand Down Expand Up @@ -99,7 +98,6 @@
"@storybook/vue3-vite": "8.4.4",
"@types/async-lock": "1.4.0",
"@types/encoding-japanese": "1.0.18",
"@types/glob": "8.0.0",
"@types/markdown-it": "12.2.0",
"@types/multistream": "4.1.0",
"@types/semver": "7.3.9",
Expand Down
71 changes: 10 additions & 61 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions src/backend/browser/fileImpl.ts
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ export type WritableFilePath =

// NOTE: fixedExportEnabled が有効になっている GENERATE_AND_SAVE_AUDIO action では、ファイル名に加えディレクトリ名も指定された状態でfilePathが渡ってくる
// また GENERATE_AND_SAVE_ALL_AUDIO action では fixedExportEnabled の有効の有無に関わらず、ディレクトリ名も指定された状態でfilePathが渡ってくる
// showExportFilePicker での疑似パスが渡ってくる可能性もある。
// showSaveFilePicker での疑似パスが渡ってくる可能性もある。
export const writeFileImpl = async (obj: {
filePath: WritableFilePath;
buffer: ArrayBuffer;
Expand Down Expand Up @@ -265,10 +265,10 @@ export const readFileImpl = async (filePath: string) => {

// ファイル選択ダイアログを開く
// 返り値はファイルパスではなく、疑似パスを返す
export const showExportFilePickerImpl: (typeof window)[typeof SandboxKey]["showExportFileDialog"] =
export const showSaveFilePickerImpl: (typeof window)[typeof SandboxKey]["showSaveFileDialog"] =
async (obj: {
defaultPath?: string;
extensionName: string;
name: string;
extensions: string[];
title: string;
}) => {
Expand Down
71 changes: 12 additions & 59 deletions src/backend/browser/sandbox.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { defaultEngine } from "./contract";
import {
checkFileExistsImpl,
readFileImpl,
showExportFilePickerImpl,
showSaveFilePickerImpl,
showOpenDirectoryDialogImpl,
showOpenFilePickerImpl,
WritableFilePath,
Expand Down Expand Up @@ -57,13 +57,6 @@ function onReceivedIPCMsg(listeners: {
* まだ開発中のため、Browser版の実装も同時に行えない場合は、メソッドを追加して throw new Error() する
*/
export const api: Sandbox = {
getAppInfos() {
const appInfo = {
name: import.meta.env.VITE_APP_NAME,
version: import.meta.env.VITE_APP_VERSION,
};
return Promise.resolve(appInfo);
},
async getTextAsset(textType) {
const fileName = AssetTextFileNames[textType];
const v = await fetch(toStaticPath(fileName));
Expand All @@ -82,73 +75,33 @@ export const api: Sandbox = {
showSaveDirectoryDialog(obj: { title: string }) {
return showOpenDirectoryDialogImpl(obj);
},
showVvppOpenDialog(obj: { title: string; defaultPath?: string }) {
// NOTE: 今後接続先を変える手段としてVvppが使われるかもしれないので、そのタイミングで実装する
throw new Error(
`not implemented: showVvppOpenDialog, request: ${JSON.stringify(obj)}`,
);
},
showOpenDirectoryDialog(obj: { title: string }) {
return showOpenDirectoryDialogImpl(obj);
},
showProjectSaveDialog(obj: { title: string; defaultPath?: string }) {
return new Promise((resolve, reject) => {
if (obj.defaultPath == undefined) {
reject(
// storeやvue componentからdefaultPathを設定していなかったらrejectされる
new Error(
"ブラウザ版ではファイルの保存機能が一部サポートされていません。",
),
);
} else {
resolve(obj.defaultPath);
}
});
},
async showProjectLoadDialog() {
return showOpenFilePickerImpl({
multiple: false,
fileTypes: [
{
description: "Voicevox Project File",
accept: {
"application/json": [".vvproj"],
},
},
],
});
},
async showImportFileDialog(obj: {
name?: string;
extensions?: string[];
async showOpenFileDialog(obj: {
title: string;
name: string;
mimeType: string;
extensions: string[];
}) {
const fileHandle = await showOpenFilePickerImpl({
multiple: false,
fileTypes: [
{
description: obj.name ?? "Text",
accept: obj.extensions
? {
"application/octet-stream": obj.extensions.map(
(ext) => `.${ext}`,
),
}
: {
"plain/text": [".txt"],
},
description: obj.name,
accept: { [obj.mimeType]: obj.extensions.map((ext) => `.${ext}`) },
},
],
});
return fileHandle?.[0];
},
async showExportFileDialog(obj: {
defaultPath?: string;
extensionName: string;
extensions: string[];
async showSaveFileDialog(obj: {
title: string;
name: string;
extensions: string[];
defaultPath?: string;
}) {
const fileHandle = await showExportFilePickerImpl(obj);
const fileHandle = await showSaveFilePickerImpl(obj);
return fileHandle;
},
writeFile(obj: { filePath: string; buffer: ArrayBuffer }) {
Expand Down
Loading

0 comments on commit 91d2357

Please sign in to comment.