Add typing for QR API global

4fa7de9c93655a361182cb325e564fc10e4ff475

Cohee <18619528+Cohee1207@users.noreply.github.com>

4 files changed, +13 -10Ignore whitespace
public/global.d.ts+2 -0
@@ -1,6 +1,7 @@
11import libs from './lib';
22import getContext from './scripts/st-context';
33import { power_user } from './scripts/power-user';
4+import { QuickReplyApi } from './scripts/extensions/quick-reply/api/QuickReplyApi';
45
56declare global {
67 // Custom types
@@ -13,6 +14,7 @@ declare global {
1314
1415 declare var pdfjsLib;
1516 declare var ePub;
17+ declare var quickReplyApi: QuickReplyApi;
1618
1719 declare var SillyTavern: {
1820 getContext(): typeof getContext;
public/scripts/extensions/quick-reply/index.js+1 -1
@@ -181,7 +181,7 @@ const init = async () => {
181181
182182 eventSource.on(event_types.APP_READY, async()=>await finalizeInit());
183183
184184 window['globalThis.quickReplyApi'] = quickReplyApi;
185185};
186186const finalizeInit = async () => {
187187 debug('executing startup');
public/scripts/slash-commands/SlashCommandParser.js+8 -6
@@ -516,12 +516,14 @@ export class SlashCommandParser {
516516 ?? []
517517 ;
518518 try {
519- const qrApi = (await import('../extensions/quick-reply/index.js')).quickReplyApi;
519+ if ('quickReplyApi' in globalThis) {
520- options.push(...qrApi.listSets()
520+ const qrApi = globalThis.quickReplyApi;
521- .map(set=>qrApi.listQuickReplies(set).map(qr=>`${set}.${qr}`))
521+ options.push(...qrApi.listSets()
522- .flat()
522+ .map(set=>qrApi.listQuickReplies(set).map(qr=>`${set}.${qr}`))
523- .map(qr=>new SlashCommandQuickReplyAutoCompleteOption(qr)),
523+ .flat()
524- );
524+ .map(qr=>new SlashCommandQuickReplyAutoCompleteOption(qr)),
525+ );
526+ }
525527 } catch { /* empty */ }
526528 const result = new AutoCompleteNameResult(
527529 executor.unnamedArgumentList[0]?.value.toString(),
public/scripts/world-info.js+2 -3
@@ -3433,9 +3433,8 @@ function getAutomationIdCallback(data) {
34333433 }
34343434 }
34353435
34363436 if ('quickReplyApi' in windowglobalThis) {
3437- // @ts-ignore
3437+ for (const automationId of globalThis.quickReplyApi.listAutomationIds()) {
3438- for (const automationId of window['quickReplyApi'].listAutomationIds()) {
34393438 ids.add(String(automationId));
34403439 }
34413440 }