Files
blockly/core/interfaces/i_serializable.ts
Beka Westberg 50d9474db5 fix!: refactor comment icon (#7128)
* fix: add basic comment icon

* fix: add using comment icon

* chore: delete old comment icon

* chore: add docs to the comment icon

* chore: move Comment to icons.CommentIcon

* chore: mode properties to module level

* chore: properly override and call super

* chore: remove .comment and .commentIcon_

* chore: cleanup test

* chore: deprecate getCommentIcon and getCommentText

* chore: change imports to import type

* chore: refactor code for paren peace

* chore: fix lint and make it error

* chore: remove change to block JS file

* chore: fix css

* chore: add renamings

* chore: format
2023-06-02 09:53:05 -07:00

29 lines
867 B
TypeScript

/**
* @license
* Copyright 2023 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
export interface ISerializable {
/**
* @param doFullSerialization If true, this signals that any backing data
* structures used by this ISerializable should also be serialized. This
* is used for copy-paste.
* @returns a JSON serializable value that records the ISerializable's state.
*/
saveState(doFullSerialization: boolean): any;
/**
* Takes in a JSON serializable value and sets the ISerializable's state
* based on that.
*
* @param state The state to apply to the ISerializable.
*/
loadState(state: any): void;
}
/** Type guard that checks whether the given object is a ISerializable. */
export function isSerializable(obj: any): obj is ISerializable {
return obj.saveState !== undefined && obj.loadState !== undefined;
}