diff --git a/src/index.ts b/src/index.ts index 2af28dc..8ec4c3e 100644 --- a/src/index.ts +++ b/src/index.ts @@ -17,6 +17,7 @@ export * from './twitch/twitch'; export * from './twitch/clip-fetcher'; export * from './twitch/clip-url-fetcher'; export * from './twitch/clips-downloader'; +export * from './twitch/clip-downloader'; export * from './twitch/video-downloader'; export * from './twitch/video-fragments-fetcher'; diff --git a/src/twitch/clip-downloader.ts b/src/twitch/clip-downloader.ts index 0c05f2f..e1809c3 100644 --- a/src/twitch/clip-downloader.ts +++ b/src/twitch/clip-downloader.ts @@ -26,7 +26,7 @@ export class ClipDownloader extends EventEmitter { } } - async download(): Promise { + async download(): Promise { await this.resolveClip(); const clip = this.clipOrUrl as Clip; @@ -38,7 +38,7 @@ export class ClipDownloader extends EventEmitter { if (existsSync(appPath(mp4Path))) { logger.verbose(`Clip ${clip.title} found at ${appPath(mp4Path)}`); - return; + return clip; } const promises: Promise[] = []; @@ -59,5 +59,7 @@ export class ClipDownloader extends EventEmitter { } await Promise.all(promises); + + return clip; } } diff --git a/tests/utils.test.ts b/tests/utils.test.ts new file mode 100644 index 0000000..be43b9a --- /dev/null +++ b/tests/utils.test.ts @@ -0,0 +1,17 @@ +import {twitchClipUrlToId} from '../src'; + +const urls = [ + [ + 'https://clips.twitch.tv/SassyKawaiiMallardTTours-7vNzQmvsJDGoicMB', + 'SassyKawaiiMallardTTours-7vNzQmvsJDGoicMB', + ], [ + 'https://clips.twitch.tv/EnthusiasticAnnoyingCockroachNotLikeThis-HJPYZFxKOH5mF2oP', + 'EnthusiasticAnnoyingCockroachNotLikeThis-HJPYZFxKOH5mF2oP' + ] +]; + +test.each(urls)('clip id is extracted from url', async (url, expectedId) => { + const id = twitchClipUrlToId(url); + + expect(id).toStrictEqual(expectedId); +});