Files
Automata/packages/@n8n/chat/src/index.ts
Alex Grozav af49e95cc7 feat: Add Chat Trigger node (#7409)
Signed-off-by: Oleg Ivaniv <me@olegivaniv.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
Co-authored-by: Jesper Bylund <mail@jesperbylund.com>
Co-authored-by: OlegIvaniv <me@olegivaniv.com>
Co-authored-by: Deborah <deborah@starfallprojects.co.uk>
Co-authored-by: Jan Oberhauser <janober@users.noreply.github.com>
Co-authored-by: Jon <jonathan.bennetts@gmail.com>
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
Co-authored-by: Michael Kret <88898367+michael-radency@users.noreply.github.com>
Co-authored-by: Giulio Andreini <andreini@netseven.it>
Co-authored-by: Mason Geloso <Mason.geloso@gmail.com>
Co-authored-by: Mason Geloso <hone@Masons-Mac-mini.local>
Co-authored-by: Mutasem Aldmour <mutasem@n8n.io>
2024-01-09 13:11:39 +02:00

43 lines
1.1 KiB
TypeScript

import './main.scss';
import { createApp } from 'vue';
import App from './App.vue';
import type { ChatOptions } from '@n8n/chat/types';
import { defaultMountingTarget, defaultOptions } from '@n8n/chat/constants';
import { createDefaultMountingTarget } from '@n8n/chat/utils';
import { ChatPlugin } from '@n8n/chat/plugins';
export function createChat(options?: Partial<ChatOptions>) {
const resolvedOptions: ChatOptions = {
...defaultOptions,
...options,
webhookConfig: {
...defaultOptions.webhookConfig,
...options?.webhookConfig,
},
i18n: {
...defaultOptions.i18n,
...options?.i18n,
en: {
...defaultOptions.i18n?.en,
...options?.i18n?.en,
},
},
theme: {
...defaultOptions.theme,
...options?.theme,
},
};
const mountingTarget = resolvedOptions.target ?? defaultMountingTarget;
if (typeof mountingTarget === 'string') {
createDefaultMountingTarget(mountingTarget);
}
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
const app = createApp(App);
app.use(ChatPlugin, resolvedOptions);
app.mount(mountingTarget);
return app;
}