From 3e92930a75a403c799bc50f22cf1e91d34d27631 Mon Sep 17 00:00:00 2001 From: Fairy-Phy Date: Mon, 13 Nov 2023 19:08:47 +0900 Subject: [PATCH] change load save arg toAccount in option --- CHANGELOG.md | 2 +- packages/frontend/src/scripts/aiscript/api.ts | 20 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a935b4e991..e2e51e8698 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,7 +18,7 @@ - Feat: プラグインのスクリプトとデータを端末間で同期をできるようになりました - 既存のプラグインはローカルに保存されています。 - ローカルのプラグインはプラグインの管理にあるボタンからアカウントに移動できます。 - - `Mk:load`と`Mk:save`に引数`toAccount?: bool`が追加され、`true`にするとアカウントでデータを共有できます。(デフォルトは`false`) + - `Mk:load`と`Mk:save`の引数にオプションオブジェクト`option?: { toAccount?: bool }`が追加され、`true`にするとアカウントでデータを共有できます。(デフォルトは`false`) ### Client - Fix: アイコンデコレーションが複数の場所で見切れている問題を修正 diff --git a/packages/frontend/src/scripts/aiscript/api.ts b/packages/frontend/src/scripts/aiscript/api.ts index 4bd9c197cb..23dd317790 100644 --- a/packages/frontend/src/scripts/aiscript/api.ts +++ b/packages/frontend/src/scripts/aiscript/api.ts @@ -60,18 +60,30 @@ export function createAiScriptEnv(opts: { token: string; scriptData: ScriptData; return values.ERROR('request_failed', utils.jsToVal(err)); }); }), - 'Mk:save': values.FN_NATIVE(async ([key, value, toAccount]) => { + 'Mk:save': values.FN_NATIVE(async ([key, value, option]) => { utils.assertString(key); - const saveToAccount = toAccount ? toAccount.value : false; + if (option) { + utils.assertObject(option); + if (option.value.toAccount) { + utils.assertBoolean(option.value.toAccount); + } + } + const saveToAccount = option && option.value.toAccount ? option.value.toAccount.value : false; return saveScriptStorage(saveToAccount, opts.scriptData, key.value, utils.valToJs(value)).then(() => { return values.NULL; }, err => { return values.ERROR('request_failed', utils.jsToVal(err)); }); }), - 'Mk:load': values.FN_NATIVE(async ([key, toAccount]) => { + 'Mk:load': values.FN_NATIVE(async ([key, option]) => { utils.assertString(key); - const loadToAccount = toAccount ? toAccount.value : false; + if (option) { + utils.assertObject(option); + if (option.value.toAccount) { + utils.assertBoolean(option.value.toAccount); + } + } + const loadToAccount = option && option.value.toAccount ? option.value.toAccount.value : false; return loadScriptStorage(loadToAccount, opts.scriptData, key.value).then(res => { return utils.jsToVal(res); }, err => {