@@ -29,12 +29,9 @@ import {
2929 StartPollingConfig ,
3030 LoaderCrawlPageConfig ,
3131 CrawlPageConfigObject ,
32- CrawlPageRes ,
3332 LoaderCrawlDataConfig ,
3433 LoaderCrawlFileConfig ,
3534 CrawlDataSingleRes ,
36- CrawlDataRes ,
37- CrawlFileRes ,
3835 CrawlFileSingleRes ,
3936 CrawlDataConfigObject ,
4037 LoaderPageRequestConfig ,
@@ -320,10 +317,30 @@ export function createCrawlPage(baseConfig: LoaderXCrawlBaseConfig) {
320317 // 通过 爬取cId 找到对应爬取, 再通过 爬取id 找到 page
321318 const errorPageContainer = new Map < number , Map < number , Page > > ( )
322319
323- async function crawlPage < T extends CrawlPageConfig > (
324- config : T ,
320+ function crawlPage (
321+ config : string ,
325322 callback ?: ( res : CrawlPageSingleRes ) => void
326- ) : Promise < CrawlPageRes < T > > {
323+ ) : Promise < CrawlPageSingleRes >
324+
325+ function crawlPage (
326+ config : PageRequestConfig ,
327+ callback ?: ( res : CrawlPageSingleRes ) => void
328+ ) : Promise < CrawlPageSingleRes >
329+
330+ function crawlPage (
331+ config : ( string | PageRequestConfig ) [ ] ,
332+ callback ?: ( res : CrawlPageSingleRes ) => void
333+ ) : Promise < CrawlPageSingleRes [ ] >
334+
335+ function crawlPage (
336+ config : CrawlPageConfigObject ,
337+ callback ?: ( res : CrawlPageSingleRes ) => void
338+ ) : Promise < CrawlPageSingleRes [ ] >
339+
340+ async function crawlPage (
341+ config : CrawlPageConfig ,
342+ callback ?: ( res : CrawlPageSingleRes ) => void
343+ ) : Promise < CrawlPageSingleRes | CrawlPageSingleRes [ ] > {
327344 const cId = ++ cIdCount
328345
329346 // 创建浏览器
@@ -405,7 +422,7 @@ export function createCrawlPage(baseConfig: LoaderXCrawlBaseConfig) {
405422 ? crawlResArr
406423 : crawlResArr [ 0 ]
407424
408- return crawlRes as CrawlPageRes < T >
425+ return crawlRes
409426 }
410427
411428 async function crawlPageSingle (
@@ -466,10 +483,30 @@ export function createCrawlPage(baseConfig: LoaderXCrawlBaseConfig) {
466483}
467484
468485export function createCrawlData ( baseConfig : LoaderXCrawlBaseConfig ) {
469- async function crawlData < D = any , T extends CrawlDataConfig = any > (
470- config : T ,
471- callback ?: ( res : CrawlDataSingleRes < D > ) => void
472- ) : Promise < CrawlDataRes < D , T > > {
486+ function crawlData < T = any > (
487+ config : string ,
488+ callback ?: ( res : CrawlDataSingleRes < T > ) => void
489+ ) : Promise < CrawlDataSingleRes < T > >
490+
491+ function crawlData < T = any > (
492+ config : DataRequestConfig ,
493+ callback ?: ( res : CrawlDataSingleRes < T > ) => void
494+ ) : Promise < CrawlDataSingleRes < T > >
495+
496+ function crawlData < T = any > (
497+ config : ( string | DataRequestConfig ) [ ] ,
498+ callback ?: ( res : CrawlDataSingleRes < T > ) => void
499+ ) : Promise < CrawlDataSingleRes < T > [ ] >
500+
501+ function crawlData < T = any > (
502+ config : CrawlDataConfigObject ,
503+ callback ?: ( res : CrawlDataSingleRes < T > ) => void
504+ ) : Promise < CrawlDataSingleRes < T > [ ] >
505+
506+ async function crawlData < T = any > (
507+ config : CrawlDataConfig ,
508+ callback ?: ( res : CrawlDataSingleRes < T > ) => void
509+ ) : Promise < CrawlDataSingleRes < T > | CrawlDataSingleRes < T > [ ] > {
473510 const { requestConfigs, intervalTime } = loaderDataConfig (
474511 baseConfig ,
475512 config
@@ -484,7 +521,7 @@ export function createCrawlData(baseConfig: LoaderXCrawlBaseConfig) {
484521 crawlRequestSingle
485522 )
486523
487- const crawlResArr : CrawlDataSingleRes < D > [ ] = controllerRes . map ( ( item ) => {
524+ const crawlResArr : CrawlDataSingleRes < T > [ ] = controllerRes . map ( ( item ) => {
488525 const {
489526 id,
490527 isSuccess,
@@ -494,7 +531,7 @@ export function createCrawlData(baseConfig: LoaderXCrawlBaseConfig) {
494531 crawlSingleRes
495532 } = item
496533
497- const crawlRes : CrawlDataSingleRes < D > = {
534+ const crawlRes : CrawlDataSingleRes < T > = {
498535 id,
499536 isSuccess,
500537 maxRetry,
@@ -507,7 +544,7 @@ export function createCrawlData(baseConfig: LoaderXCrawlBaseConfig) {
507544 if ( isSuccess && crawlSingleRes ) {
508545 const contentType = crawlSingleRes . headers [ 'content-type' ] ?? ''
509546
510- const data : D = contentType . includes ( 'text' )
547+ const data : T = contentType . includes ( 'text' )
511548 ? crawlSingleRes . data . toString ( )
512549 : JSON . parse ( crawlSingleRes . data . toString ( ) )
513550
@@ -527,17 +564,32 @@ export function createCrawlData(baseConfig: LoaderXCrawlBaseConfig) {
527564 ? crawlResArr
528565 : crawlResArr [ 0 ]
529566
530- return crawlRes as CrawlDataRes < D , T >
567+ return crawlRes
531568 }
532569
533570 return crawlData
534571}
535572
536573export function createCrawlFile ( baseConfig : LoaderXCrawlBaseConfig ) {
537- async function crawlFile < T extends CrawlFileConfig > (
538- config : T ,
574+ function crawlFile (
575+ config : FileRequestConfig ,
576+ callback ?: ( res : CrawlFileSingleRes ) => void
577+ ) : Promise < CrawlFileSingleRes >
578+
579+ function crawlFile (
580+ config : FileRequestConfig [ ] ,
581+ callback ?: ( res : CrawlFileSingleRes ) => void
582+ ) : Promise < CrawlFileSingleRes [ ] >
583+
584+ function crawlFile (
585+ config : CrawlFileConfigObject ,
586+ callback ?: ( res : CrawlFileSingleRes ) => void
587+ ) : Promise < CrawlFileSingleRes [ ] >
588+
589+ async function crawlFile (
590+ config : CrawlFileConfig ,
539591 callback ?: ( res : CrawlFileSingleRes ) => void
540- ) : Promise < CrawlFileRes < T > > {
592+ ) : Promise < CrawlFileSingleRes | CrawlFileSingleRes [ ] > {
541593 const { requestConfigs, intervalTime, fileConfig } = loaderFileConfig (
542594 baseConfig ,
543595 config
@@ -685,7 +737,7 @@ export function createCrawlFile(baseConfig: LoaderXCrawlBaseConfig) {
685737 ? crawlResArr
686738 : crawlResArr [ 0 ]
687739
688- return crawlRes as CrawlFileRes < T >
740+ return crawlRes
689741 }
690742
691743 return crawlFile
0 commit comments