feat: add firing of procedure events. (#6604)

* feat: add empty implementations of events

* chore: register all events

* chore: change assertions to shallow match properties

* feat: add firing events from the observable procedure map

* fix: make event not fired assertions actually fail

* chore: fixup typos in tests

* feat: add firing procedure model events

* feat: add firing parameter create and parameter delete events

* chore: reorganize event tests into suites

* feat: add firing parameter rename events

* chore: format

* chore: use tripple equals
This commit is contained in:
Beka Westberg
2022-11-10 16:38:32 -08:00
committed by GitHub
parent 92efdb91d1
commit 0532b5d1c0
21 changed files with 968 additions and 492 deletions

View File

@@ -0,0 +1,25 @@
/**
* @license
* Copyright 2022 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
/**
* An object that fires events optionally.
*
* @internal
*/
export interface IObservable {
startPublishing(): void;
stopPublishing(): void;
}
/**
* Type guard for checking if an object fulfills IObservable.
*
* @internal
*/
export function isObservable(obj: any): obj is IObservable {
return obj.startPublishing !== undefined && obj.stopPublishing !== undefined;
}

View File

@@ -4,11 +4,7 @@
* SPDX-License-Identifier: Apache-2.0
*/
/**
* The interface for the data model of a procedure parameter.
*
* @namespace Blockly.IParameterModel
*/
import {IProcedureModel} from './i_procedure_model';
/**
@@ -42,4 +38,7 @@ export interface IParameterModel {
* over time.
*/
getId(): string;
/** Sets the procedure model this parameter is associated with. */
setProcedureModel(model: IProcedureModel): this;
}