| 748 | * @internal |
| 749 | */ |
| 750 | export class ScoreSerializerPlugin implements PrettyFormatNewPlugin { |
| 751 | public static readonly instance = new ScoreSerializerPlugin(); |
| 752 | |
| 753 | private _defaultScoreJson: Map<string, unknown>; |
| 754 | private _defaultMasterBarJson: Map<string, unknown>; |
| 755 | private _defaultTrackJson: Map<string, unknown>; |
| 756 | private _defaultStaffJson: Map<string, unknown>; |
| 757 | private _defaultBarJson: Map<string, unknown>; |
| 758 | private _defaultVoiceJson: Map<string, unknown>; |
| 759 | private _defaultBeatJson: Map<string, unknown>; |
| 760 | private _defaultNoteJson: Map<string, unknown>; |
| 761 | |
| 762 | private constructor() { |
| 763 | // we create empty basic objects and reset some props we always want in the snapshot |
| 764 | const defaultScore = new Score(); |
| 765 | const defaultMasterBar = new MasterBar(); |
| 766 | defaultMasterBar.index = -1; |
| 767 | |
| 768 | const defaultTrack = new Track(); |
| 769 | defaultTrack.index = -1; |
| 770 | |
| 771 | const defaultStaff = new Staff(); |
| 772 | defaultStaff.index = -1; |
| 773 | |
| 774 | const defaultBar = new Bar(); |
| 775 | defaultBar.id = -1; |
| 776 | defaultBar.index = -1; |
| 777 | |
| 778 | const defaultVoice = new Voice(); |
| 779 | defaultVoice.id = -1; |
| 780 | defaultVoice.index = -1; |
| 781 | |
| 782 | const defaultBeat = new Beat(); |
| 783 | defaultBeat.id = -1; |
| 784 | defaultBeat.index = -1; |
| 785 | |
| 786 | const defaultNote = new Note(); |
| 787 | defaultNote.id = -1; |
| 788 | defaultNote.index = -1; |
| 789 | |
| 790 | this._defaultScoreJson = ScoreSerializer.toJson(defaultScore)!; |
| 791 | this._defaultMasterBarJson = MasterBarSerializer.toJson(defaultMasterBar)!; |
| 792 | this._defaultTrackJson = TrackSerializer.toJson(defaultTrack)!; |
| 793 | this._defaultStaffJson = StaffSerializer.toJson(defaultStaff)!; |
| 794 | this._defaultBarJson = BarSerializer.toJson(defaultBar)!; |
| 795 | this._defaultVoiceJson = VoiceSerializer.toJson(defaultVoice)!; |
| 796 | this._defaultBeatJson = BeatSerializer.toJson(defaultBeat)!; |
| 797 | this._defaultNoteJson = NoteSerializer.toJson(defaultNote)!; |
| 798 | } |
| 799 | |
| 800 | public serialize( |
| 801 | val: unknown, |
| 802 | config: PrettyFormatConfig, |
| 803 | indentation: string, |
| 804 | depth: number, |
| 805 | refs: unknown[], |
| 806 | printer: PrettyFormatPrinter |
| 807 | ): string { |
nothing calls this directly
no outgoing calls
no test coverage detected