Skip to content

Commit f7ec090

Browse files
committed
Can pass in a public configuration that does not use higher-order usage for the null type
1 parent 2393934 commit f7ec090

File tree

3 files changed

+21
-25
lines changed

3 files changed

+21
-25
lines changed

src/api.ts

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -393,15 +393,12 @@ function createCrawlFileConfig(
393393
advancedConfig = originalConfig as CrawlFileAdvancedConfig
394394
crawlFileConfig.detailTargets.push(...transformToDetailTargets(targets))
395395
} else {
396-
// string | CrawlFileDetailConfig | (string | CrawlFileDetailConfig)[] 处理
397-
const detailTargets = transformToDetailTargets(
398-
originalConfig as
399-
| string
400-
| CrawlFileDetailConfig
401-
| (string | CrawlFileDetailConfig)[]
396+
// CrawlFileDetailConfig | CrawlFileDetailConfig[] 处理
397+
crawlFileConfig.detailTargets.push(
398+
...(isArray(originalConfig)
399+
? originalConfig
400+
: [originalConfig as CrawlFileDetailConfig])
402401
)
403-
404-
crawlFileConfig.detailTargets.push(...detailTargets)
405402
}
406403

407404
loaderCommonConfig(xCrawlConfig, advancedConfig, crawlFileConfig)
@@ -453,9 +450,11 @@ async function pageSingleCrawlHandle(
453450
}
454451

455452
if (detailTarget.cookies) {
456-
await page.setCookie(
457-
...parsePageCookies(detailTarget.url, detailTarget.cookies)
458-
)
453+
const cookies = parsePageCookies(detailTarget.url, detailTarget.cookies)
454+
await page.setCookie(...cookies)
455+
} else {
456+
const cookies = await page.cookies(detailTarget.url)
457+
await page.deleteCookie(...cookies)
459458
}
460459

461460
if (detailTarget.headers) {
@@ -547,10 +546,7 @@ function fileSingleResultHandle(
547546
const fileExtension =
548547
detailTarget.extension ?? `.${mimeType.split('/').pop()}`
549548

550-
if (
551-
!isUndefined(detailTarget.storeDir) &&
552-
!fs.existsSync(detailTarget.storeDir)
553-
) {
549+
if (detailTarget.storeDir && !fs.existsSync(detailTarget.storeDir)) {
554550
mkdirDirSync(detailTarget.storeDir)
555551
}
556552

src/controller.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ export async function controller<
5151
const isPriorityCrawl = !detailTargets.every(
5252
(item) => item.priority === detailTargets[0].priority
5353
)
54-
const targetRequestConfigs = isPriorityCrawl
54+
const detailTargetConfigs = isPriorityCrawl
5555
? priorityQueueMergeSort(
5656
detailTargets.map((item) => ({
5757
...item,
@@ -61,7 +61,7 @@ export async function controller<
6161
: detailTargets
6262

6363
// 通过映射生成新的配置数组
64-
const detailInfos: DetailInfo<T, R>[] = targetRequestConfigs.map(
64+
const detailInfos: DetailInfo<T, R>[] = detailTargetConfigs.map(
6565
(detailTarget, index) => ({
6666
id: index + 1,
6767
isSuccess: false,

src/types/api.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -46,31 +46,31 @@ export interface CrawlCommonConfig {
4646
// 1.Detail
4747
export interface CrawlPageDetailConfig extends CrawlCommonConfig {
4848
url: string
49-
headers?: AnyObject
50-
cookies?: PageCookies
49+
headers?: AnyObject | null
50+
cookies?: PageCookies | null
5151
priority?: number
5252
viewport?: {
5353
width?: number
5454
height?: number
55-
}
55+
} | null
5656
}
5757

5858
export interface CrawlDataDetailConfig extends CrawlCommonConfig {
5959
url: string
6060
method?: Method
61-
headers?: AnyObject
61+
headers?: AnyObject | null
6262
params?: AnyObject
6363
data?: any
6464
priority?: number
6565
}
6666

6767
export interface CrawlFileDetailConfig extends CrawlCommonConfig {
6868
url: string
69-
headers?: AnyObject
69+
headers?: AnyObject | null
7070
priority?: number
71-
storeDir?: string
71+
storeDir?: string | null
7272
fileName?: string
73-
extension?: string
73+
extension?: string | null
7474
}
7575

7676
// 2.Advanced
@@ -105,13 +105,13 @@ export interface CrawlFileAdvancedConfig extends CrawlCommonConfig {
105105
storeDir?: string
106106
extension?: string
107107

108+
onCrawlItemComplete?: (crawlFileSingleRes: CrawlFileSingleRes) => void
108109
onBeforeSaveFile?: (info: {
109110
id: number
110111
fileName: string
111112
filePath: string
112113
data: Buffer
113114
}) => Promise<Buffer>
114-
onCrawlItemComplete?: (crawlFileSingleRes: CrawlFileSingleRes) => void
115115
}
116116

117117
export interface StartPollingConfig {

0 commit comments

Comments
 (0)