/** * 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 { createRoot } from 'react-dom/client'; import { type LegendApplicationConfigurationInput, LegendApplication, ApplicationStoreProvider, getApplicationRootElement, LegendApplicationPluginManager, type LegendApplicationPlugin, Core_LegendApplicationPlugin, } from '@finos/legend-application'; import { LegendREPLApplicationConfig, type LegendREPLApplicationConfigData, } from './LegendREPLApplicationConfig.js'; import { LegendREPLWebApplication } from '../components/LegendREPLWebApplication.js'; import type { LegendREPLApplicationStore } from './LegendREPLApplicationStore.js'; export class LegendREPL extends LegendApplication { declare config: LegendREPLApplicationConfig; declare pluginManager: LegendApplicationPluginManager; static create() { const application = new LegendREPL(new LegendApplicationPluginManager()); application.withBasePlugins([new Core_LegendApplicationPlugin()]); return application; } async configureApplication( input: LegendApplicationConfigurationInput, ) { return new LegendREPLApplicationConfig(input); } async loadApplication(application: LegendREPLApplicationStore) { createRoot(getApplicationRootElement()).render( , ); } }