UNPKG

@finos/legend-application

Version:
81 lines 4.74 kB
/** * Copyright (c) 2020-present, Goldman Sachs * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import type { LegendApplicationConfig, LegendApplicationConfigurationData, LegendApplicationVersionData } from './LegendApplicationConfig.js'; import { type AbstractPlugin, type AbstractPreset, LogEvent, type ExtensionsConfigurationData } from '@finos/legend-shared'; import type { LegendApplicationPluginManager } from './LegendApplicationPluginManager.js'; import { type DocumentationEntryData } from '../stores/DocumentationService.js'; import type { LegendApplicationPlugin } from '../stores/LegendApplicationPlugin.js'; import { ApplicationStore, type GenericLegendApplicationStore } from '../stores/ApplicationStore.js'; import type { VersionReleaseNotes } from '../stores/ReleaseNotesService.js'; export declare abstract class LegendApplicationLogger { abstract debug(event: LogEvent, ...data: unknown[]): void; abstract info(event: LogEvent, ...data: unknown[]): void; abstract warn(event: LogEvent, ...data: unknown[]): void; abstract error(event: LogEvent, ...data: unknown[]): void; } export declare class LegendApplicationWebConsole extends LegendApplicationLogger { debug(event: LogEvent, ...data: unknown[]): void; info(event: LogEvent, ...data: unknown[]): void; warn(event: LogEvent, ...data: unknown[]): void; error(event: LogEvent, ...data: unknown[]): void; } export interface LegendApplicationConfigurationInput<T extends LegendApplicationConfigurationData> { baseAddress?: string; configData: T; versionData: LegendApplicationVersionData; docEntries?: Record<string, DocumentationEntryData>; } export declare abstract class LegendApplication { protected config: LegendApplicationConfig; protected logger: LegendApplicationLogger; protected pluginManager: LegendApplicationPluginManager<LegendApplicationPlugin>; protected basePresets: AbstractPreset[]; protected basePlugins: AbstractPlugin[]; protected baseAddress: string; protected pluginRegister?: ((pluginManager: LegendApplicationPluginManager<LegendApplicationPlugin>, config: LegendApplicationConfig) => void) | undefined; protected _isConfigured: boolean; protected downloadHelperServiceWorkerPath: string | undefined; protected downloadHelper: boolean; protected releaseNotes: VersionReleaseNotes[] | undefined; protected constructor(pluginManager: LegendApplicationPluginManager<LegendApplicationPlugin>); setup(options: { /** Base URL of the application. e.g. /studio/, /query/ */ baseAddress: string; /** * Provide an alternative mechanism to register and configure plugins and presets * which is more flexible by allowing configuring specific plugin or preset. */ pluginRegister?: (pluginManager: LegendApplicationPluginManager<LegendApplicationPlugin>, config: LegendApplicationConfig) => void; }): LegendApplication; protected withBasePresets(presets: AbstractPreset[]): LegendApplication; protected withBasePlugins(plugins: AbstractPlugin[]): LegendApplication; withPresets(presets: AbstractPreset[]): LegendApplication; withPlugins(plugins: AbstractPlugin[]): LegendApplication; withDownloadHelper(path?: string | undefined): LegendApplication; withReleaseNotes(releaseNotes: VersionReleaseNotes[]): LegendApplication; setupApplicationStore(store: GenericLegendApplicationStore): void; fetchApplicationConfiguration(): Promise<[ LegendApplicationConfig, ExtensionsConfigurationData ]>; loadDocumentationRegistryData(config: LegendApplicationConfig): Promise<void>; protected abstract configureApplication(input: LegendApplicationConfigurationInput<LegendApplicationConfigurationData>): Promise<LegendApplicationConfig>; protected abstract loadApplication(applicationStore: ApplicationStore<LegendApplicationConfig, LegendApplicationPluginManager<LegendApplicationPlugin>>): Promise<void>; start(): Promise<void>; } export declare const LEGEND_APPLICATION_ROOT_ELEMENT_TAG = "legend-application-root"; export declare const getApplicationRootElement: () => Element; //# sourceMappingURL=LegendApplication.d.ts.map