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