Вот одна организация, которая, как программист TypeScript, кажется мне вменяемой, имеет набор файлов TypeScript, каждый из которых имеет доступ к app
для добавления своих собственных намерений. Я избегал побочных эффектов за пределами index.ts
и циклических зависимостей между модулями. (Возможно, у людей, знакомых с Dialogflow или Actions в Google, будут свои рекомендации.)
// app.ts
import { dialogflow } from 'actions-on-google';
export function createApp() {
return dialogflow({debug: true});
}
export type App = ReturnType<typeof createApp>;
// intent1.ts
import { App } from "./app";
export function addIntent1(app: App) {
app.intent('Default Welcome Intent', conv => {
conv.ask('Question')
});
}
// index.ts
import * as functions from 'firebase-functions';
import { createApp } from './app';
import { addIntent1 } from './intent1';
const app = createApp();
addIntent1(app);
exports.dialogflowFulfillment = functions.https.onRequest(app);