Skip to content

Commit f5a5abf

Browse files
committed
fix(filter): correct the behavior when multiple transform filter options are specified
ref: rollup/rollup#5909
1 parent 2a31638 commit f5a5abf

File tree

1 file changed

+10
-19
lines changed

1 file changed

+10
-19
lines changed

src/utils/filter.ts

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,6 @@ function isAbsolute(path: string): boolean {
1313
return ABSOLUTE_PATH_REGEX.test(path)
1414
}
1515

16-
const FALLBACK_TRUE = 1
17-
const FALLBACK_FALSE = 0
18-
type FallbackValues = typeof FALLBACK_TRUE | typeof FALLBACK_FALSE
19-
type PluginFilterWithFallback = (input: string) => boolean | FallbackValues
20-
2116
export type PluginFilter = (input: string) => boolean
2217
export type TransformHookFilter = (id: string, code: string) => boolean
2318

@@ -67,7 +62,7 @@ function patternToCodeFilter(pattern: StringOrRegExp): PluginFilter {
6762
function createFilter(
6863
exclude: PluginFilter[] | undefined,
6964
include: PluginFilter[] | undefined,
70-
): PluginFilterWithFallback | undefined {
65+
): PluginFilter | undefined {
7166
if (!exclude && !include) {
7267
return
7368
}
@@ -79,7 +74,7 @@ function createFilter(
7974
if (include?.some(filter => filter(input))) {
8075
return true
8176
}
82-
return !!include && include.length > 0 ? FALLBACK_FALSE : FALLBACK_TRUE
77+
return !(include && include.length > 0)
8378
}
8479
}
8580

@@ -100,7 +95,7 @@ function normalizeFilter(filter: StringFilter): NormalizedStringFilter {
10095
}
10196
}
10297

103-
function createIdFilter(filter: StringFilter | undefined): PluginFilterWithFallback | undefined {
98+
function createIdFilter(filter: StringFilter | undefined): PluginFilter | undefined {
10499
if (!filter)
105100
return
106101
const { exclude, include } = normalizeFilter(filter)
@@ -109,7 +104,7 @@ function createIdFilter(filter: StringFilter | undefined): PluginFilterWithFallb
109104
return createFilter(excludeFilter, includeFilter)
110105
}
111106

112-
function createCodeFilter(filter: StringFilter | undefined): PluginFilterWithFallback | undefined {
107+
function createCodeFilter(filter: StringFilter | undefined): PluginFilter | undefined {
113108
if (!filter)
114109
return
115110
const { exclude, include } = normalizeFilter(filter)
@@ -134,18 +129,14 @@ function createFilterForTransform(
134129
return (id, code) => {
135130
let fallback = true
136131
if (idFilterFunction) {
137-
const idResult = idFilterFunction(id)
138-
if (typeof idResult === 'boolean') {
139-
return idResult
140-
}
141-
fallback &&= !!idResult
132+
fallback &&= idFilterFunction(id)
133+
}
134+
if (!fallback) {
135+
return false
142136
}
137+
143138
if (codeFilterFunction) {
144-
const codeResult = codeFilterFunction(code)
145-
if (typeof codeResult === 'boolean') {
146-
return codeResult
147-
}
148-
fallback &&= !!codeResult
139+
fallback &&= codeFilterFunction(code)
149140
}
150141
return fallback
151142
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy