-
Notifications
You must be signed in to change notification settings - Fork 0
Remove unsupported fetch option note for browser #211
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -14,6 +14,10 @@ import type NarouNovel from "./narou.js"; | |||||||||||||
| import type { SearchResultFields } from "./narou-search-results.js"; | ||||||||||||||
| import { addDays, formatDate } from "./util/date.js"; | ||||||||||||||
|
|
||||||||||||||
| function isRequestInit(value: unknown): value is RequestInit { | ||||||||||||||
| return typeof value == "object" && value !== null && !Array.isArray(value); | ||||||||||||||
| } | ||||||||||||||
|
|
||||||||||||||
| /** | ||||||||||||||
| * なろう小説ランキングAPIのヘルパークラス。 | ||||||||||||||
| * | ||||||||||||||
|
|
@@ -108,21 +112,22 @@ export default class RankingBuilder { | |||||||||||||
| * 設定されたパラメータに基づき、なろう小説ランキングAPIへのリクエストを実行します。 | ||||||||||||||
| * | ||||||||||||||
| * 返される結果には、Nコード、ポイント、順位が含まれます。 | ||||||||||||||
| * @param {RequestInit} [fetchOptions] fetch のオプション | ||||||||||||||
| * @returns {Promise<NarouRankingResult[]>} ランキング結果の配列 | ||||||||||||||
| * @see https://dev.syosetu.com/man/rankapi/#output | ||||||||||||||
| */ | ||||||||||||||
| execute(): Promise<NarouRankingResult[]> { | ||||||||||||||
| execute(fetchOptions?: RequestInit): Promise<NarouRankingResult[]> { | ||||||||||||||
| const date = formatDate(this.date$); | ||||||||||||||
| this.set({ rtype: `${date}-${this.type$}` }); | ||||||||||||||
| return this.api.executeRanking(this.params as RankingParams); | ||||||||||||||
| return this.api.executeRanking(this.params as RankingParams, fetchOptions); | ||||||||||||||
| } | ||||||||||||||
|
|
||||||||||||||
| /** | ||||||||||||||
| * ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。 | ||||||||||||||
| */ | ||||||||||||||
| async executeWithFields(): Promise< | ||||||||||||||
| RankingResult<DefaultSearchResultFields>[] | ||||||||||||||
| >; | ||||||||||||||
| async executeWithFields( | ||||||||||||||
| fetchOptions?: RequestInit | ||||||||||||||
| ): Promise<RankingResult<DefaultSearchResultFields>[]>; | ||||||||||||||
| /** | ||||||||||||||
| * ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。 | ||||||||||||||
| * | ||||||||||||||
|
|
@@ -131,7 +136,8 @@ export default class RankingBuilder { | |||||||||||||
| * @returns {Promise<RankingResult<SearchResultFields<TFields>>[]>} 詳細情報を含むランキング結果の配列 | ||||||||||||||
| */ | ||||||||||||||
| async executeWithFields<TFields extends Fields>( | ||||||||||||||
| fields: TFields | TFields[] | ||||||||||||||
| fields: TFields | TFields[], | ||||||||||||||
| fetchOptions?: RequestInit | ||||||||||||||
| ): Promise<RankingResult<SearchResultFields<TFields>>[]>; | ||||||||||||||
| /** | ||||||||||||||
| * ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。 | ||||||||||||||
|
|
@@ -141,7 +147,8 @@ export default class RankingBuilder { | |||||||||||||
| */ | ||||||||||||||
| async executeWithFields( | ||||||||||||||
| fields: never[], | ||||||||||||||
| opt: OptionalFields | OptionalFields[] | ||||||||||||||
| opt: OptionalFields | OptionalFields[], | ||||||||||||||
| fetchOptions?: RequestInit | ||||||||||||||
| ): Promise<RankingResult<DefaultSearchResultFields | "weekly_unique">[]>; | ||||||||||||||
| /** | ||||||||||||||
| * ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。 | ||||||||||||||
|
|
@@ -153,7 +160,8 @@ export default class RankingBuilder { | |||||||||||||
| */ | ||||||||||||||
| async executeWithFields<TFields extends Fields>( | ||||||||||||||
| fields: TFields | TFields[], | ||||||||||||||
| opt: OptionalFields | OptionalFields[] | ||||||||||||||
| opt: OptionalFields | OptionalFields[], | ||||||||||||||
| fetchOptions?: RequestInit | ||||||||||||||
| ): Promise<RankingResult<SearchResultFields<TFields> | "weekly_unique">[]>; | ||||||||||||||
| /** | ||||||||||||||
| * ランキングAPIを実行し、取得したNコードを元になろう小説APIで詳細情報を取得して結合します。 | ||||||||||||||
|
|
@@ -162,16 +170,30 @@ export default class RankingBuilder { | |||||||||||||
| * @template TOpt - オプショナルな取得フィールドの型 | ||||||||||||||
| * @param fields - 取得するフィールドの配列 (省略時はデフォルトフィールド) | ||||||||||||||
| * @param opt - オプショナルな取得フィールド (`weekly` など) | ||||||||||||||
| * @returns {Promise<RankingResult<SearchResultFields<TFields>>[]>} 詳細情報を含むランキング結果の配列 | ||||||||||||||
| */ | ||||||||||||||
| * @param fetchOptions fetch のオプション | ||||||||||||||
| * @returns {Promise<RankingResult<SearchResultFields<TFields>>[]>} 詳細情報を含むランキング結果の配列 | ||||||||||||||
| */ | ||||||||||||||
|
Comment on lines
+173
to
+175
|
||||||||||||||
| * @param fetchOptions fetch のオプション | |
| * @returns {Promise<RankingResult<SearchResultFields<TFields>>[]>} 詳細情報を含むランキング結果の配列 | |
| */ | |
| * @param fetchOptions fetch のオプション | |
| * @returns {Promise<RankingResult<SearchResultFields<TFields>>[]>} 詳細情報を含むランキング結果の配列 | |
| */ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -28,10 +28,13 @@ export default class SearchBuilderR18< | |
| /** | ||
| * なろう小説APIへの検索リクエストを実行する | ||
| * @override | ||
| * @param fetchOptions fetchのオプション | ||
| * @returns {Promise<NarouSearchResults>} 検索結果 | ||
| */ | ||
| execute(): Promise<NarouSearchResults<NarouSearchResult, T | TOpt>> { | ||
| return this.api.executeNovel18(this.params); | ||
| execute( | ||
| fetchOptions?: RequestInit | ||
| ): Promise<NarouSearchResults<NarouSearchResult, T | TOpt>> { | ||
| return this.api.executeNovel18(this.params, fetchOptions); | ||
|
Comment on lines
+34
to
+37
|
||
| } | ||
|
|
||
| /** | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -472,10 +472,11 @@ export abstract class NovelSearchBuilderBase< | |
|
|
||
| /** | ||
| * なろう小説APIへの検索リクエストを実行する | ||
| * @param fetchOptions fetchのオプション | ||
| * @returns {Promise<NarouSearchResults>} 検索結果 | ||
| */ | ||
| execute(): Promise<NarouSearchResults<NarouSearchResult, T>> { | ||
| return this.api.executeNovel(this.params); | ||
| execute(fetchOptions?: RequestInit): Promise<NarouSearchResults<NarouSearchResult, T>> { | ||
| return this.api.executeNovel(this.params, fetchOptions); | ||
| } | ||
|
Comment on lines
+478
to
480
|
||
| } | ||
|
|
||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -102,9 +102,15 @@ export default class UserSearchBuilder< | |
|
|
||
| /** | ||
| * なろう小説APIへのリクエストを実行する | ||
| * @param fetchOptions fetchのオプション | ||
| * @returns ランキング | ||
| */ | ||
| execute(): Promise<NarouSearchResults<UserSearchResult, TField>> { | ||
| return this.api.executeUserSearch(this.params as UserSearchParams); | ||
| execute( | ||
| fetchOptions?: RequestInit | ||
| ): Promise<NarouSearchResults<UserSearchResult, TField>> { | ||
| return this.api.executeUserSearch( | ||
| this.params as UserSearchParams, | ||
| fetchOptions | ||
| ); | ||
| } | ||
|
Comment on lines
+108
to
115
|
||
| } | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Use strict equality (
===) instead of loose equality (==) for type checking. While this works correctly in this case, using===is a best practice in TypeScript/JavaScript to avoid unexpected type coercion.