UNPKG

openlyrics-parser

Version:

Parses and extracts data from OpenLyrics files, and creates them!

111 lines (110 loc) 2.84 kB
export interface IBuilderOptions { format?: IBuilderFormat[]; instruments?: IBuilderInstrument[]; meta?: IBuilderMeta; properties: IBuilderProperties; verses: IBuilderVerse[]; } export interface IBuilderMeta { chordNotation?: string; createdIn?: string; modifiedIn?: string; lang?: string; } export interface IBuilderProperties { [key: string]: any; authors?: string | IBuilderAuthor[]; ccliNo?: string | number; comments?: string[]; copyright?: string | number; key?: string; keywords?: string; publisher?: string; released?: string | number; songBooks?: IBuilderSongBook[]; tempo?: string | number; themes?: IBuilderTheme[]; timeSignature?: string; titles: IBuilderTitle[] | string; transposition?: string | number; variant?: string; verseOrder?: string; version?: string | number; } export interface IBuilderAuthor { lang?: string; type?: string; value: string; } export interface IBuilderTitle { lang?: string; original?: boolean; transliteration?: string; value: string; } export interface IBuilderTheme { lang?: string; value: string; } export interface IBuilderSongBook { entry?: string | number; name: string; } export interface IBuilderFormat { application: string; tags: IBuilderFormatTag[]; } export interface IBuilderFormatTag { close: string; name: string; open: string; } interface IBuilderChordBase { bass?: string; root?: string; structure?: string; type: 'chord'; upbeat?: boolean; } export interface IBuilderVerse { optionalBreak?: boolean; lang?: string; lines: string[] | IBuilderVerseLine[]; name: string; transliteration?: string; } export interface IBuilderVerseLine { content: IBuilderVerseLineContent[]; part?: string; optionalBreak?: boolean; repeat?: number; } export interface IBuilderVerseChord extends IBuilderChordBase { value?: string; } export type IBuilderVerseLineContent = IBuilderVerseLineContentStandard | IBuilderVerseLineContentTag | IBuilderVerseChord; export interface IBuilderVerseLineContentStandard { type: 'text' | 'comment'; value: string; } export interface IBuilderVerseLineContentTag { name: string; type: 'tag'; value: string; } export interface IBuilderInstrument { lines: IBuilderInstrumentLine[]; name: string; } export interface IBuilderInstrumentLine { content: IBuilderInstrumentLineContent[]; part?: string; repeat?: number; } export type IBuilderInstrumentChord = IBuilderChordBase; export interface IBuilderInstrumentLineContentBeat { chords: IBuilderInstrumentChord[]; type: 'beat'; } export type IBuilderInstrumentLineContent = IBuilderInstrumentLineContentBeat | IBuilderInstrumentChord; export {};