Разделение намерений Actions-on-Google между машинописными файлами на Node.js - PullRequest
0 голосов
/ 31 октября 2018

В моем файле src/index.ts для функций firebase для моего диалогового окна + действия Google у меня есть код, который выглядит следующим образом:

import * as functions from 'firebase-functions';
import { dialogflow, Suggestions } from 'actions-on-google';

const app = dialogflow({debug: true})
app.intent('Default Welcome Intent', conv => {
conv.ask('Question')
});

exports.dialogflowFulfillment = functions.https.onRequest(app);

Я хотел бы разбить каждое намерение на отдельный файл TS (поскольку у меня их довольно много), но я не уверен, как экспортировать каждое намерение из отдельных .ts файлов для взаимодействия с app

Любые идеи будут оценены

1 Ответ

0 голосов
/ 01 ноября 2018

Вот одна организация, которая, как программист 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);
...