UNPKG

@finos/legend-extension-dsl-data-space

Version:
68 lines 3.32 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 { makeObservable, observable } from 'mobx'; import {} from './DataSpaceViewerState.js'; import { DataAccessState } from '@finos/legend-query-builder'; import { DataSpaceServiceExecutableInfo, DataSpaceMultiExecutionServiceExecutableInfo, } from '../graph-manager/action/analytics/DataSpaceAnalysis.js'; export class DataSpaceQuickStartState { dataSpaceViewerState; dataAccessStateIndex = new Map(); constructor(dataSpaceViewerState) { makeObservable(this, { dataAccessStateIndex: observable, }); this.dataSpaceViewerState = dataSpaceViewerState; dataSpaceViewerState.dataSpaceAnalysisResult.executables.forEach((executable) => { let dataAccessState; let mapping; let runtime; let datasets; if (executable.info instanceof DataSpaceServiceExecutableInfo) { mapping = executable.info.mapping; runtime = executable.info.runtime; datasets = executable.info.datasets; } else if (executable.info instanceof DataSpaceMultiExecutionServiceExecutableInfo) { mapping = executable.info.keyedExecutableInfos.at(0)?.mapping; runtime = executable.info.keyedExecutableInfos.at(0)?.runtime; datasets = executable.info.keyedExecutableInfos.at(0)?.datasets; } if (mapping && runtime) { dataAccessState = new DataAccessState(this.dataSpaceViewerState.applicationStore, this.dataSpaceViewerState.graphManagerState, { initialDatasets: datasets, mapping, runtime, graphData: this.dataSpaceViewerState.retrieveGraphData(), // TODO: we need to find a way to unify this code logic with the check in query builder // and avoid the need to send over (dummy) parameter values in order to make the survey datasets // call // We need to also cache the datasets survey result with query as scope in addition to the work done in // https://github.com/finos/legend-engine/pull/1678 getQuery: async () => undefined, // getQuery: () => // this.dataSpaceViewerState.graphManagerState.graphManager.pureCodeToLambda( // query, // ), }); } if (dataAccessState) { this.dataAccessStateIndex.set(executable, dataAccessState); } }); } } //# sourceMappingURL=DataSpaceQuickStartState.js.map