在Node.js上的打字稿文件之间拆分Google Actions-on-Google意图

时间:2018-10-31 17:28:17

标签: typescript google-cloud-functions dialogflow actions-on-google

在Firebase函数的src/index.ts文件中,用于我的dialogflow和google action的代码如下:

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文件中导出每个意图以与{{1 }}

任何想法都会受到赞赏

1 个答案:

答案 0 :(得分:1)

作为TypeScript程序员,对于我来说,这是一个理智的组织,拥有一组TypeScript文件,每个文件都可以访问app以添加自己的意图。我避免了index.ts之外的副作用以及模块之间的循环依赖。 (也许熟悉Dialogflow或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);