hedgedoc/frontend/src/extensions/_base-classes/app-extension.ts
Tilman Vatteroth 1e4709c087 refactor: organize app extensions
Signed-off-by: Tilman Vatteroth <git@tilmanvatteroth.de>
2023-04-16 21:27:45 +02:00

43 lines
1.5 KiB
TypeScript

/*
* SPDX-FileCopyrightText: 2023 The HedgeDoc developers (see AUTHORS file)
*
* SPDX-License-Identifier: AGPL-3.0-only
*/
import type { FrontendConfig } from '../../api/config/types'
import type { CheatsheetExtension } from '../../components/editor-page/cheatsheet/cheatsheet-extension'
import type { Linter } from '../../components/editor-page/editor-pane/linter/linter'
import type { MarkdownRendererExtension } from '../../components/markdown-renderer/extensions/_base-classes/markdown-renderer-extension'
import type { RendererType } from '../../components/render-page/window-post-message-communicator/rendering-message'
import type { CompletionSource } from '@codemirror/autocomplete'
import type { EventEmitter2 } from 'eventemitter2'
import type React from 'react'
import { Fragment } from 'react'
export interface MarkdownRendererExtensionOptions {
frontendConfig: FrontendConfig
eventEmitter: EventEmitter2
rendererType: RendererType
}
export abstract class AppExtension {
// eslint-disable-next-line @typescript-eslint/no-unused-vars
public buildMarkdownRendererExtensions(options: MarkdownRendererExtensionOptions): MarkdownRendererExtension[] {
return []
}
public buildCodeMirrorLinter(): Linter[] {
return []
}
public buildEditorExtensionComponent(): React.FC {
return Fragment
}
public buildCheatsheetExtensions(): CheatsheetExtension[] {
return []
}
public buildAutocompletion(): CompletionSource[] {
return []
}
}