chordsong
Version:
ChordSong is a simple text format for the notation of lyrics with guitar chords, and an application that renders them to portable HTML pages.
28 lines (23 loc) • 729 B
text/typescript
import { Diagram } from './Diagram'
export class Chord {
name: string
defaultDiagramKey: symbol
diagrams = {}
constructor (name: string, diagram?: Diagram, chordVariant?: string) {
this.name = name
this.defaultDiagramKey = Symbol('defaultDiagramKey')
if (diagram !== undefined) {
this.setDiagram(diagram, chordVariant)
}
}
getDiagram (variant?: string): Diagram {
const chordVariantKey = variant ?? this.defaultDiagramKey
// @ts-expect-error
return this.diagrams[chordVariantKey]
}
setDiagram (diagram: Diagram, variant?: string): void {
const chordVariantKey = variant ?? this.defaultDiagramKey
// @ts-expect-error
this.diagrams[chordVariantKey] = diagram
}
}