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 LatestSearchQuery from "../classes/query/latest-search-query.js";
 | 
			
		||||
import ThreadSearchQuery from "../classes/query/thread-search-query.js";
 | 
			
		||||
import { IQuery } from "../interfaces.js";
 | 
			
		||||
 | 
			
		||||
//#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 limit Maximum number of items to get. Default: 30
 | 
			
		||||
 * @returns URLs of the fetched games
 | 
			
		||||
 */
 | 
			
		||||
export default async function executeQuery(query: any, limit: number = 30): Promise<string[]> {
 | 
			
		||||
    // Local variables
 | 
			
		||||
    const searchMap = {
 | 
			
		||||
        "latest": fetchLatestHandiworkURLs,
 | 
			
		||||
        "thread": fetchThreadHandiworkURLs,
 | 
			
		||||
        "handiwork": fetchHandiworkURLs,
 | 
			
		||||
export default async function getURLsFromQuery(query: IQuery, limit: number = 30): Promise<string[]> {
 | 
			
		||||
    switch (query.itype) {
 | 
			
		||||
        case "HandiworkSearchQuery":
 | 
			
		||||
            return await fetchHandiworkURLs(query as HandiworkSearchQuery, limit);
 | 
			
		||||
        case "LatestSearchQuery":
 | 
			
		||||
            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
 | 
			
		||||
| 
						 | 
				
			
			@ -1,18 +1,9 @@
 | 
			
		|||
"use strict";
 | 
			
		||||
 | 
			
		||||
// Modules from file
 | 
			
		||||
import { IBasic } 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 { IBasic, IQuery } from "./interfaces.js";
 | 
			
		||||
import getHandiworkInformation from "./scrape-data/handiwork-parse.js";
 | 
			
		||||
import executeQuery 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[]>
 | 
			
		||||
import getURLsFromQuery from "./fetch-data/fetch-query.js";
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 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
 | 
			
		||||
 * 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
 | 
			
		||||
    const urls: string[] = await executeQuery(query, limit);
 | 
			
		||||
    const urls: string[] = await getURLsFromQuery(query, limit);
 | 
			
		||||
 | 
			
		||||
    // Fetch the data
 | 
			
		||||
    const results = urls.map((url, idx) => {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue