UNPKG

@stringsync/vexml

Version:

MusicXML to Vexflow

22 lines (21 loc) 730 B
import * as util from '../util'; import { DEFAULT_CONFIG } from '../config'; import { NoopLogger } from '../debug'; /** * A formatter formats a document for infinite x-scrolling as a single system. */ export class PanoramicFormatter { config; log; constructor(opts) { this.config = { ...DEFAULT_CONFIG, ...opts?.config }; this.log = opts?.logger ?? new NoopLogger(); util.assertNull(this.config.WIDTH, 'WIDTH must be null for PanoramicFormatter'); } format(document) { const clone = document.clone(); const measures = clone.score.systems.flatMap((system) => system.measures); clone.score.systems = [{ type: 'system', measures }]; return clone; } }