diff options
Diffstat (limited to 'packages/frontend/src/plugin.ts')
| -rw-r--r-- | packages/frontend/src/plugin.ts | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/packages/frontend/src/plugin.ts b/packages/frontend/src/plugin.ts index f32c991828..a41d0bc217 100644 --- a/packages/frontend/src/plugin.ts +++ b/packages/frontend/src/plugin.ts @@ -26,7 +26,7 @@ export type Plugin = { version: string; author?: string; description?: string; - permissions?: string[]; + permissions?: (typeof Misskey.permissions)[number][]; }; export type AiScriptPluginMeta = { @@ -34,7 +34,7 @@ export type AiScriptPluginMeta = { version: string; author: string; description?: string; - permissions?: string[]; + permissions?: (typeof Misskey.permissions)[number][]; config?: Record<string, any>; }; @@ -49,7 +49,7 @@ async function getParser(): Promise<Parser> { export function isSupportedAiScriptVersion(version: string): boolean { try { return (compareVersions(version, '0.12.0') >= 0); - } catch (err) { + } catch (_) { return false; } } @@ -72,7 +72,7 @@ export async function parsePluginMeta(code: string): Promise<AiScriptPluginMeta> try { const parser = await getParser(); ast = parser.parse(code); - } catch (err) { + } catch (_) { throw new Error('Aiscript syntax error'); } @@ -97,7 +97,7 @@ export async function parsePluginMeta(code: string): Promise<AiScriptPluginMeta> version: version as string, author: author as string, description: description as string | undefined, - permissions: permissions as string[] | undefined, + permissions: permissions as (typeof Misskey.permissions)[number][] | undefined, config: config as Record<string, any> | undefined, }; } @@ -106,8 +106,9 @@ export async function authorizePlugin(plugin: Plugin) { if (plugin.permissions == null || plugin.permissions.length === 0) return; if (Object.hasOwn(store.s.pluginTokens, plugin.installId)) return; - const token = await new Promise<string>(async (res, rej) => { - const { dispose } = await os.popupAsyncWithDialog(import('@/components/MkTokenGenerateWindow.vue').then(x => x.default), { + const token = await new Promise<string>((res, rej) => { + let dispose: () => void; + os.popupAsyncWithDialog(import('@/components/MkTokenGenerateWindow.vue').then(x => x.default), { title: i18n.ts.tokenRequested, information: i18n.ts.pluginTokenRequestedDescription, initialName: plugin.name, @@ -123,7 +124,7 @@ export async function authorizePlugin(plugin: Plugin) { res(token); }, closed: () => dispose(), - }); + }).then(d => dispose = d.dispose, err => rej(err)); }); store.set('pluginTokens', { |