@stringsync/vexml
Version:
MusicXML to Vexflow
22 lines (21 loc) • 730 B
JavaScript
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;
}
}