UNPKG

@finos/legend-graph

Version:
42 lines 2.06 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 { DependencyManager } from '../../../graph/DependencyManager.js'; import type { PureModel } from '../../../graph/PureModel.js'; import { type ObserverContext } from './CoreObserverHelper.js'; export declare const observe_DependencyManager: (metamodel: DependencyManager) => DependencyManager; /** * NOTE: when we observe the graph, it is important to do this synchronously * to not mess with `mobx`. Since most of the indices of the graph are computed values * we have seen cases where asynchronousity hurts us and causes really ellusive bugs * since `mobx` observabilty does not track in asynchronous context and `makeObservable` * is sort of equivalent to triggering observability. * * See https://mobx.js.org/understanding-reactivity.html#understanding-reactivity * See https://github.com/finos/legend-studio/issues/1121 * * On the other hand, for performance purpose, we would need to observe all of graph * elements asynchronously, as such, we would do that separately in the method * {@link observe_GraphElements} */ export declare const observe_Graph: (metamodel: PureModel) => PureModel; /** * This method is designed for performance purpose. * * NOTE: this might have some impact on `mobx` observability, see the note * of {@link observe_Graph} */ export declare const observe_GraphElements: (metamodel: PureModel, context: ObserverContext) => Promise<void>; //# sourceMappingURL=GraphObserverHelper.d.ts.map