Remove unnecessary overloads
parent
8036372d1f
commit
05e18eccd5
|
@ -7,35 +7,26 @@ import fetchThreadHandiworkURLs from "./fetch-thread.js";
|
||||||
import HandiworkSearchQuery from "../classes/query/handiwork-search-query.js";
|
import HandiworkSearchQuery from "../classes/query/handiwork-search-query.js";
|
||||||
import LatestSearchQuery from "../classes/query/latest-search-query.js";
|
import LatestSearchQuery from "../classes/query/latest-search-query.js";
|
||||||
import ThreadSearchQuery from "../classes/query/thread-search-query.js";
|
import ThreadSearchQuery from "../classes/query/thread-search-query.js";
|
||||||
|
import { IQuery } from "../interfaces.js";
|
||||||
|
|
||||||
//#region Public methods
|
//#region Public methods
|
||||||
export default async function executeQuery(query: LatestSearchQuery, limit: number): Promise<string[]>
|
|
||||||
|
|
||||||
export default async function executeQuery(query: ThreadSearchQuery, limit: number): Promise<string[]>
|
|
||||||
|
|
||||||
export default async function executeQuery(query: HandiworkSearchQuery, limit: number): Promise<string[]>
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param query Query used for the search
|
* @param query Query used for the search
|
||||||
* @param limit Maximum number of items to get. Default: 30
|
* @param limit Maximum number of items to get. Default: 30
|
||||||
* @returns URLs of the fetched games
|
* @returns URLs of the fetched games
|
||||||
*/
|
*/
|
||||||
export default async function executeQuery(query: any, limit: number = 30): Promise<string[]> {
|
export default async function getURLsFromQuery(query: IQuery, limit: number = 30): Promise<string[]> {
|
||||||
// Local variables
|
switch (query.itype) {
|
||||||
const searchMap = {
|
case "HandiworkSearchQuery":
|
||||||
"latest": fetchLatestHandiworkURLs,
|
return await fetchHandiworkURLs(query as HandiworkSearchQuery, limit);
|
||||||
"thread": fetchThreadHandiworkURLs,
|
case "LatestSearchQuery":
|
||||||
"handiwork": fetchHandiworkURLs,
|
return await fetchLatestHandiworkURLs(query as LatestSearchQuery, limit);
|
||||||
|
case "ThreadSearchQuery":
|
||||||
|
return await fetchThreadHandiworkURLs(query as ThreadSearchQuery, limit);
|
||||||
|
default:
|
||||||
|
throw Error(`Invalid query type: ${query.itype}`);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find the key for the mapping dict
|
|
||||||
const key = query instanceof LatestSearchQuery ?
|
|
||||||
"latest" :
|
|
||||||
(query instanceof ThreadSearchQuery ?
|
|
||||||
"thread" :
|
|
||||||
"handiwork");
|
|
||||||
|
|
||||||
// Fetch and return the urls
|
|
||||||
return searchMap[key](query, limit);
|
|
||||||
}
|
|
||||||
//#endregion
|
//#endregion
|
|
@ -1,18 +1,9 @@
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
// Modules from file
|
// Modules from file
|
||||||
import { IBasic } from "./interfaces.js";
|
import { IBasic, IQuery } from "./interfaces.js";
|
||||||
import HandiworkSearchQuery from "./classes/query/handiwork-search-query.js";
|
|
||||||
import LatestSearchQuery from "./classes/query/latest-search-query.js";
|
|
||||||
import ThreadSearchQuery from "./classes/query/thread-search-query.js";
|
|
||||||
import getHandiworkInformation from "./scrape-data/handiwork-parse.js";
|
import getHandiworkInformation from "./scrape-data/handiwork-parse.js";
|
||||||
import executeQuery from "./fetch-data/fetch-query.js";
|
import getURLsFromQuery from "./fetch-data/fetch-query.js";
|
||||||
|
|
||||||
export async function search<T extends IBasic>(query: LatestSearchQuery, limit: number): Promise<T[]>
|
|
||||||
|
|
||||||
export async function search<T extends IBasic>(query: HandiworkSearchQuery, limit: number): Promise<T[]>
|
|
||||||
|
|
||||||
export async function search<T extends IBasic>(query: ThreadSearchQuery, limit: number): Promise<T[]>
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the handiworks that match the passed parameters.
|
* Gets the handiworks that match the passed parameters.
|
||||||
|
@ -20,9 +11,9 @@ export async function search<T extends IBasic>(query: ThreadSearchQuery, limit:
|
||||||
* @param {Number} limit
|
* @param {Number} limit
|
||||||
* Maximum number of items to get. Default: 30
|
* Maximum number of items to get. Default: 30
|
||||||
*/
|
*/
|
||||||
export default async function search<T extends IBasic>(query: any, limit: number = 30): Promise<T[]> {
|
export default async function search<T extends IBasic>(query: IQuery, limit: number = 30): Promise<T[]> {
|
||||||
// Fetch the URLs
|
// Fetch the URLs
|
||||||
const urls: string[] = await executeQuery(query, limit);
|
const urls: string[] = await getURLsFromQuery(query, limit);
|
||||||
|
|
||||||
// Fetch the data
|
// Fetch the data
|
||||||
const results = urls.map((url, idx) => {
|
const results = urls.map((url, idx) => {
|
||||||
|
|
Loading…
Reference in New Issue