From 6c5cb2d715c4244f7013fe6090ffe7557a4d83b8 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sun, 19 Jan 2025 08:37:52 +0000 Subject: [PATCH] chore(release): 0.3.0 [skip ci] # [0.3.0](https://github.com/suzuki3jp/youtubes.js/compare/v0.2.0...v0.3.0) (2025-01-19) ### Bug Fixes * **Pagination:** Improve nullish checks for resultsPerPage and totalResults in Pagination class ([aaeae08](https://github.com/suzuki3jp/youtubes.js/commit/aaeae082364668e1d721c1594315eed3851858f0)) ### Features * Implement Result-based error handling ([6e1aaf0](https://github.com/suzuki3jp/youtubes.js/commit/6e1aaf0f15750833ddc273b55519cb2893ef482a)) --- CHANGELOG.md | 12 ++++ docs/api/youtubes.js.pagination.all.md | 4 +- docs/api/youtubes.js.pagination.next.md | 4 +- docs/api/youtubes.js.pagination.prev.md | 4 +- ...tubes.js.paginationoptions.getwithtoken.md | 2 +- docs/api/youtubes.js.paginationoptions.md | 2 +- docs/api/youtubes.js.playlist.from.md | 4 +- docs/api/youtubes.js.playlist.frommany.md | 63 +++++++++++++++++++ docs/api/youtubes.js.playlist.md | 14 +++++ .../api/youtubes.js.playlistmanager.create.md | 8 ++- .../youtubes.js.playlistmanager.deletebyid.md | 4 +- ...tubes.js.playlistmanager.getbychannelid.md | 12 ++-- .../youtubes.js.playlistmanager.getbyids.md | 12 ++-- .../youtubes.js.playlistmanager.getmine.md | 12 ++-- docs/api/youtubes.js.playlistmanager.md | 20 ++++-- docs/api/youtubes.js.thumbnails.from.md | 4 +- package-lock.json | 4 +- package.json | 2 +- 18 files changed, 148 insertions(+), 39 deletions(-) create mode 100644 docs/api/youtubes.js.playlist.frommany.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d5963e..35f07dd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [0.3.0](https://github.com/suzuki3jp/youtubes.js/compare/v0.2.0...v0.3.0) (2025-01-19) + + +### Bug Fixes + +* **Pagination:** Improve nullish checks for resultsPerPage and totalResults in Pagination class ([aaeae08](https://github.com/suzuki3jp/youtubes.js/commit/aaeae082364668e1d721c1594315eed3851858f0)) + + +### Features + +* Implement Result-based error handling ([6e1aaf0](https://github.com/suzuki3jp/youtubes.js/commit/6e1aaf0f15750833ddc273b55519cb2893ef482a)) + # [0.2.0](https://github.com/suzuki3jp/youtubes.js/compare/v0.1.2...v0.2.0) (2025-01-18) diff --git a/docs/api/youtubes.js.pagination.all.md b/docs/api/youtubes.js.pagination.all.md index a694a42..5632e94 100644 --- a/docs/api/youtubes.js.pagination.all.md +++ b/docs/api/youtubes.js.pagination.all.md @@ -9,11 +9,11 @@ Fetches all pages data. - \*\*NOTE\*\*: This method may consume unnecessary quot **Signature:** ```typescript -all(): Promise; +all(): Promise>; ``` **Returns:** -Promise<T\[\]> +Promise<Result<T\[\], YouTubesJsErrors>> All pages data in an array. If several items are in a page, this method will return a 2D array. Use `flat()` to convert it to a 1D array. diff --git a/docs/api/youtubes.js.pagination.next.md b/docs/api/youtubes.js.pagination.next.md index f3f61d8..b9fee5c 100644 --- a/docs/api/youtubes.js.pagination.next.md +++ b/docs/api/youtubes.js.pagination.next.md @@ -9,11 +9,11 @@ Fetches the next page. - \*\*NOTE\*\*: This method will use the same quotas as t **Signature:** ```typescript -next(): Promise | null>; +next(): Promise, YouTubesJsErrors> | null>; ``` **Returns:** -Promise<[Pagination](./youtubes.js.pagination.md)<T> \| null> +Promise<Result<[Pagination](./youtubes.js.pagination.md)<T>, YouTubesJsErrors> \| null> The next page. If there is no next page, returns `null`. diff --git a/docs/api/youtubes.js.pagination.prev.md b/docs/api/youtubes.js.pagination.prev.md index bd22b82..4b591e4 100644 --- a/docs/api/youtubes.js.pagination.prev.md +++ b/docs/api/youtubes.js.pagination.prev.md @@ -9,11 +9,11 @@ Fetches the previous page. - \*\*NOTE\*\*: This method will use the same quotas **Signature:** ```typescript -prev(): Promise | null>; +prev(): Promise, YouTubesJsErrors> | null>; ``` **Returns:** -Promise<[Pagination](./youtubes.js.pagination.md)<T> \| null> +Promise<Result<[Pagination](./youtubes.js.pagination.md)<T>, YouTubesJsErrors> \| null> The previous page. If there is no previous page, returns `null`. diff --git a/docs/api/youtubes.js.paginationoptions.getwithtoken.md b/docs/api/youtubes.js.paginationoptions.getwithtoken.md index af87f81..160b103 100644 --- a/docs/api/youtubes.js.paginationoptions.getwithtoken.md +++ b/docs/api/youtubes.js.paginationoptions.getwithtoken.md @@ -7,5 +7,5 @@ **Signature:** ```typescript -getWithToken: (token: string) => Promise>; +getWithToken: (token: string) => Promise, YouTubesJsErrors>>; ``` diff --git a/docs/api/youtubes.js.paginationoptions.md b/docs/api/youtubes.js.paginationoptions.md index a987f39..3aa62bb 100644 --- a/docs/api/youtubes.js.paginationoptions.md +++ b/docs/api/youtubes.js.paginationoptions.md @@ -60,7 +60,7 @@ T -(token: string) => Promise<[Pagination](./youtubes.js.pagination.md)<T>> +(token: string) => Promise<Result<[Pagination](./youtubes.js.pagination.md)<T>, YouTubesJsErrors>> diff --git a/docs/api/youtubes.js.playlist.from.md b/docs/api/youtubes.js.playlist.from.md index 22746ab..b0e432d 100644 --- a/docs/api/youtubes.js.playlist.from.md +++ b/docs/api/youtubes.js.playlist.from.md @@ -7,7 +7,7 @@ **Signature:** ```typescript -static from(data: youtube_v3.Schema$Playlist, logger: Logger): Result; +static from(data: youtube_v3.Schema$Playlist, logger: Logger): Result; ``` ## Parameters @@ -59,5 +59,5 @@ Logger **Returns:** -Result<[Playlist](./youtubes.js.playlist.md), string> +Result<[Playlist](./youtubes.js.playlist.md), LikelyBugError> diff --git a/docs/api/youtubes.js.playlist.frommany.md b/docs/api/youtubes.js.playlist.frommany.md new file mode 100644 index 0000000..c21eaa1 --- /dev/null +++ b/docs/api/youtubes.js.playlist.frommany.md @@ -0,0 +1,63 @@ + + +[Home](./index.md) > [youtubes.js](./youtubes.js.md) > [Playlist](./youtubes.js.playlist.md) > [fromMany](./youtubes.js.playlist.frommany.md) + +## Playlist.fromMany() method + +**Signature:** + +```typescript +static fromMany(data: youtube_v3.Schema$Playlist[], logger: Logger): Result; +``` + +## Parameters + + + + +
+ +Parameter + + + + +Type + + + + +Description + + +
+ +data + + + + +youtube\_v3.Schema$Playlist\[\] + + + + + +
+ +logger + + + + +Logger + + + + + +
+**Returns:** + +Result<[Playlist](./youtubes.js.playlist.md)\[\], LikelyBugError> + diff --git a/docs/api/youtubes.js.playlist.md b/docs/api/youtubes.js.playlist.md index b5c7b1b..47b2bdf 100644 --- a/docs/api/youtubes.js.playlist.md +++ b/docs/api/youtubes.js.playlist.md @@ -275,5 +275,19 @@ Description + + + +[fromMany(data, logger)](./youtubes.js.playlist.frommany.md) + + + + +`static` + + + + + diff --git a/docs/api/youtubes.js.playlistmanager.create.md b/docs/api/youtubes.js.playlistmanager.create.md index a0f54af..9c480b0 100644 --- a/docs/api/youtubes.js.playlistmanager.create.md +++ b/docs/api/youtubes.js.playlistmanager.create.md @@ -4,14 +4,16 @@ ## PlaylistManager.create() method -Creates a playlist. - This operation uses 50 quota units. - There is a limit of approximately 10 playlists per day for creation. - For more details, see the issue: https://issuetracker.google.com/issues/255216949 +Creates a playlist. + +- This operation uses 50 quota units. - There is a limit of approximately 10 playlists per day for creation. - For more details, see the issue: https://issuetracker.google.com/issues/255216949 \[YouTube Data API Reference\](https://developers.google.com/youtube/v3/docs/playlists/insert) **Signature:** ```typescript -create(options: CreatePlaylistOptions): Promise; +create(options: CreatePlaylistOptions): Promise>; ``` ## Parameters @@ -51,5 +53,5 @@ Options for creating a playlist. **Returns:** -Promise<[Playlist](./youtubes.js.playlist.md)> +Promise<Result<[Playlist](./youtubes.js.playlist.md), YouTubesJsErrors>> diff --git a/docs/api/youtubes.js.playlistmanager.deletebyid.md b/docs/api/youtubes.js.playlistmanager.deletebyid.md index 27eecf6..396d9a6 100644 --- a/docs/api/youtubes.js.playlistmanager.deletebyid.md +++ b/docs/api/youtubes.js.playlistmanager.deletebyid.md @@ -4,7 +4,9 @@ ## PlaylistManager.deleteById() method -Deletes a playlist by its ID. - This operation uses 50 quota units. +Deletes a playlist by its ID. + +- This operation uses 50 quota units. \[YouTube Data API Reference\](https://developers.google.com/youtube/v3/docs/playlists/delete) diff --git a/docs/api/youtubes.js.playlistmanager.getbychannelid.md b/docs/api/youtubes.js.playlistmanager.getbychannelid.md index 1933358..f3175dc 100644 --- a/docs/api/youtubes.js.playlistmanager.getbychannelid.md +++ b/docs/api/youtubes.js.playlistmanager.getbychannelid.md @@ -4,14 +4,16 @@ ## PlaylistManager.getByChannelId() method -Fetches the playlists of a channel by its ID. - This operation uses 1 quota unit. - Retrieves all playlists when given an authenticated user's channel ID. Otherwise, only public playlists are accessible. +Fetches the playlists of a channel by its ID. + +- This operation uses 1 quota unit. - Retrieves all playlists when given an authenticated user's channel ID. Otherwise, only public playlists are accessible. \[YouTube Data API Reference\](https://developers.google.com/youtube/v3/docs/playlists/list) **Signature:** ```typescript -getByChannelId(id: string, pageToken?: string): Promise>; +getByChannelId(id: string, pageToken?: string): Promise, YouTubesJsErrors>>; ``` ## Parameters @@ -67,7 +69,7 @@ _(Optional)_ The token for pagination. **Returns:** -Promise<[Pagination](./youtubes.js.pagination.md)<[Playlist](./youtubes.js.playlist.md)\[\]>> +Promise<Result<[Pagination](./youtubes.js.pagination.md)<[Playlist](./youtubes.js.playlist.md)\[\]>, YouTubesJsErrors>> ## Example @@ -80,7 +82,7 @@ const oauth = new StaticOAuthProvider({ }); const client = new ApiClient({ oauth }); -const playlists = await client.playlists.getByChannelId("CHANNEL_ID"); -console.log(playlists.data); // Playlist[] +// THIS IS UNSAFE ERROR HANDLING. See the safe error handling in the README.md Introduction. +const playlists = (await client.playlists.getByChannelId("CHANNEL_ID")).throw(); // Pagination ``` diff --git a/docs/api/youtubes.js.playlistmanager.getbyids.md b/docs/api/youtubes.js.playlistmanager.getbyids.md index a58b998..25df1c5 100644 --- a/docs/api/youtubes.js.playlistmanager.getbyids.md +++ b/docs/api/youtubes.js.playlistmanager.getbyids.md @@ -4,14 +4,16 @@ ## PlaylistManager.getByIds() method -Fetches a playlist by its ID. - This operation uses 1 quota unit. +Fetches a playlist by its ID. + +- This operation uses 1 quota unit. - Note: The YouTube API returns empty data instead of an error when a playlist with the specified ID is not found. \[YouTube Data API Reference\](https://developers.google.com/youtube/v3/docs/playlists/list) **Signature:** ```typescript -getByIds(ids: string[], pageToken?: string): Promise>; +getByIds(ids: string[], pageToken?: string): Promise, YouTubesJsErrors>>; ``` ## Parameters @@ -67,7 +69,7 @@ _(Optional)_ The token for pagination. **Returns:** -Promise<[Pagination](./youtubes.js.pagination.md)<[Playlist](./youtubes.js.playlist.md)\[\]>> +Promise<Result<[Pagination](./youtubes.js.pagination.md)<[Playlist](./youtubes.js.playlist.md)\[\]>, YouTubesJsErrors>> ## Example @@ -80,7 +82,7 @@ const oauth = new StaticOAuthProvider({ }); const client = new ApiClient({ oauth }); -const playlists = await client.playlists.getByIds(["ID1", "ID2"]); -console.log(playlists.data); // [Playlist, Playlist] +// THIS IS UNSAFE ERROR HANDLING. See the safe error handling in the README.md Introduction. +const playlists = (await client.playlists.getByIds(["ID1", "ID2"])).throw(); // Pagination ``` diff --git a/docs/api/youtubes.js.playlistmanager.getmine.md b/docs/api/youtubes.js.playlistmanager.getmine.md index f58e1dd..4c02214 100644 --- a/docs/api/youtubes.js.playlistmanager.getmine.md +++ b/docs/api/youtubes.js.playlistmanager.getmine.md @@ -4,14 +4,16 @@ ## PlaylistManager.getMine() method -Fetches the playlists owned by the authenticated user. - This operation uses 1 quota unit. +Fetches the playlists owned by the authenticated user. + +- This operation uses 1 quota unit. \[YouTube Data API Reference\](https://developers.google.com/youtube/v3/docs/playlists/list) **Signature:** ```typescript -getMine(pageToken?: string): Promise>; +getMine(pageToken?: string): Promise, YouTubesJsErrors>>; ``` ## Parameters @@ -51,7 +53,7 @@ _(Optional)_ The token for pagination. **Returns:** -Promise<[Pagination](./youtubes.js.pagination.md)<[Playlist](./youtubes.js.playlist.md)\[\]>> +Promise<Result<[Pagination](./youtubes.js.pagination.md)<[Playlist](./youtubes.js.playlist.md)\[\]>, YouTubesJsErrors>> ## Example @@ -64,7 +66,7 @@ const oauth = new StaticOAuthProvider({ }); const client = new ApiClient({ oauth }); -const playlists = await client.playlists.getMine(); -console.log(playlists.data); // Playlist[] +// THIS IS UNSAFE ERROR HANDLING. See the safe error handling in the README.md Introduction. +const playlists = (await client.playlists.getMine()).throw(); // Pagination ``` diff --git a/docs/api/youtubes.js.playlistmanager.md b/docs/api/youtubes.js.playlistmanager.md index f53c18a..8cb7a34 100644 --- a/docs/api/youtubes.js.playlistmanager.md +++ b/docs/api/youtubes.js.playlistmanager.md @@ -76,7 +76,9 @@ Description -Creates a playlist. - This operation uses 50 quota units. - There is a limit of approximately 10 playlists per day for creation. - For more details, see the issue: https://issuetracker.google.com/issues/255216949 +Creates a playlist. + +- This operation uses 50 quota units. - There is a limit of approximately 10 playlists per day for creation. - For more details, see the issue: https://issuetracker.google.com/issues/255216949 \[YouTube Data API Reference\](https://developers.google.com/youtube/v3/docs/playlists/insert) @@ -92,7 +94,9 @@ Creates a playlist. - This operation uses 50 quota units. - There is a limit of -Deletes a playlist by its ID. - This operation uses 50 quota units. +Deletes a playlist by its ID. + +- This operation uses 50 quota units. \[YouTube Data API Reference\](https://developers.google.com/youtube/v3/docs/playlists/delete) @@ -108,7 +112,9 @@ Deletes a playlist by its ID. - This operation uses 50 quota units. -Fetches the playlists of a channel by its ID. - This operation uses 1 quota unit. - Retrieves all playlists when given an authenticated user's channel ID. Otherwise, only public playlists are accessible. +Fetches the playlists of a channel by its ID. + +- This operation uses 1 quota unit. - Retrieves all playlists when given an authenticated user's channel ID. Otherwise, only public playlists are accessible. \[YouTube Data API Reference\](https://developers.google.com/youtube/v3/docs/playlists/list) @@ -124,7 +130,9 @@ Fetches the playlists of a channel by its ID. - This operation uses 1 quota unit -Fetches a playlist by its ID. - This operation uses 1 quota unit. +Fetches a playlist by its ID. + +- This operation uses 1 quota unit. - Note: The YouTube API returns empty data instead of an error when a playlist with the specified ID is not found. \[YouTube Data API Reference\](https://developers.google.com/youtube/v3/docs/playlists/list) @@ -140,7 +148,9 @@ Fetches a playlist by its ID. - This operation uses 1 quota unit. -Fetches the playlists owned by the authenticated user. - This operation uses 1 quota unit. +Fetches the playlists owned by the authenticated user. + +- This operation uses 1 quota unit. \[YouTube Data API Reference\](https://developers.google.com/youtube/v3/docs/playlists/list) diff --git a/docs/api/youtubes.js.thumbnails.from.md b/docs/api/youtubes.js.thumbnails.from.md index 47ec253..b9d2c01 100644 --- a/docs/api/youtubes.js.thumbnails.from.md +++ b/docs/api/youtubes.js.thumbnails.from.md @@ -9,7 +9,7 @@ Generates a `Thumbnails` instance from the YouTube API raw data. **Signature:** ```typescript -static from(data: youtube_v3.Schema$ThumbnailDetails, logger: Logger): Result; +static from(data: youtube_v3.Schema$ThumbnailDetails, logger: Logger): Result; ``` ## Parameters @@ -63,5 +63,5 @@ Logger **Returns:** -Result<[Thumbnails](./youtubes.js.thumbnails.md), string> +Result<[Thumbnails](./youtubes.js.thumbnails.md), LikelyBugError> diff --git a/package-lock.json b/package-lock.json index e8928b2..e2c43b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "youtubes.js", - "version": "0.2.0", + "version": "0.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "youtubes.js", - "version": "0.2.0", + "version": "0.3.0", "license": "MIT", "dependencies": { "googleapis": "^144.0.0", diff --git a/package.json b/package.json index 9fc7ad2..e2f00b5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "youtubes.js", "description": "A JavaScript client for YouTube Data API v3.", - "version": "0.2.0", + "version": "0.3.0", "main": "dist/index.js", "types": "dist/index.d.ts", "keywords": [