UNPKG

@finos/legend-graph

Version:
62 lines 2.3 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 { action, computed, isObservable, makeObservable, observable, } from 'mobx'; export class ObserverContext { plugins = []; constructor(plugins) { this.plugins = plugins; } } export const skipObserved = (observer) => (metamodel) => isObservable(metamodel) ? metamodel : observer(metamodel); export const skipObservedWithContext = (observer) => (metamodel, context) => isObservable(metamodel) ? metamodel : observer(metamodel, context); export const observe_Abstract_PackageableElement = (metamodel) => { makeObservable(metamodel, { _isDeleted: observable, _isDisposed: observable, name: observable, package: observable, isDeleted: computed, path: computed, _elementHashCode: computed, hashCode: computed, setIsDeleted: action, dispose: action, }); }; export const observe_INTERNAL__UnknownElement = skipObserved((metamodel) => { observe_Abstract_PackageableElement(metamodel); makeObservable(metamodel, { content: observable.ref, }); return metamodel; }); export const observe_INTERNAL__UnknownPackageableElement = skipObserved((metamodel) => { observe_Abstract_PackageableElement(metamodel); makeObservable(metamodel, { content: observable.ref, }); return metamodel; }); export const observe_PackageableElementReference = skipObserved((metamodel) => makeObservable(metamodel, { value: observable, valueForSerialization: computed, })); export const observe_Abstract_InferableValue = (metamodel) => { makeObservable(metamodel, { value: observable, }); }; //# sourceMappingURL=CoreObserverHelper.js.map