yandex-dialoger
Version:
Ещё одна библиотека/фреймворк для разработки навыков Алисы.
41 lines (40 loc) • 1.82 kB
TypeScript
import { DialogRequest } from './DialogRequest';
import { DialogResponse } from './DialogResponse';
import { RequestHandler } from './RequestHandler';
import { DialogParams } from './DialogParams';
/**
* @param TState
* Состояние будет доступно в методах определения сцены
* Важно: состояние должно сериализоваться и десериализоваться через JSON. Т.е. нельзя использовать классы с методами.
* @param TSceneId Можно указать список возможных сцен чтобы исключить случайную ошибку при их определении
*/
export declare class Dialoger<TState extends object, TSceneId extends string>
implements RequestHandler {
private readonly scenes;
private readonly transitions;
private readonly initialState;
private readonly whatCanYouDoHandler;
constructor({
scenes,
state,
whatCanYouDo: whatCanYouDoHandler,
}: DialogParams<TState, TSceneId>);
handleRequest(request: DialogRequest): Promise<DialogResponse>;
private isPingRequest;
private handlePing;
private handleUserRequest;
private getOrCreateSessionState;
/**
* Попадаем сюда после отработки функции onInput.
* Здесь мы отрабатываем переходы (transition), если они есть и
* reply у достигнутой таким образом цвены.
*/
private applyTransitionsAndScene;
private applyTransitions;
private findTransition;
private getScene;
private isNotEmptySessionState;
private isScene;
private isTransition;
private assertSessionHasSceneId;
}