export class CliArguments { private _extractAudio: boolean; private _noMTime: boolean; private _proxy: string; constructor(extractAudio = false, noMTime = false) { this._extractAudio = extractAudio; this._noMTime = noMTime; this._proxy = "" } public get extractAudio(): boolean { return this._extractAudio; } public toggleExtractAudio() { this._extractAudio = !this._extractAudio; return this; } public disableExtractAudio() { this._extractAudio = false; return this; } public get noMTime(): boolean { return this._noMTime; } public toggleNoMTime() { this._noMTime = !this._noMTime; return this; } public toString(): string { let args = ''; if (this._extractAudio) { args += '-x ' } if (this._noMTime) { args += '--no-mtime ' } return args.trim(); } public fromString(str: string): CliArguments { if (str) { if (str.includes('-x')) { this._extractAudio = true; } if (str.includes('--no-mtime')) { this._noMTime = true; } } return this; } }