parseFilters() — vue Function Reference
Architecture documentation for the parseFilters() function in filter-parser.ts from the vue codebase.
Entity Profile
Dependency Diagram
graph TD b1101a58_6379_8514_36a1_9d7f75b2b23f["parseFilters()"] 9fe9aa1f_3948_0a47_c873_c987dae2f0ed["filter-parser.ts"] b1101a58_6379_8514_36a1_9d7f75b2b23f -->|defined in| 9fe9aa1f_3948_0a47_c873_c987dae2f0ed 4ed4ecb1_33ab_6e92_8439_f0a81ee997fa["getBindingAttr()"] 4ed4ecb1_33ab_6e92_8439_f0a81ee997fa -->|calls| b1101a58_6379_8514_36a1_9d7f75b2b23f 94cd3ed6_4fec_eddb_c90a_1c38249e5b02["processAttrs()"] 94cd3ed6_4fec_eddb_c90a_1c38249e5b02 -->|calls| b1101a58_6379_8514_36a1_9d7f75b2b23f dbffbbee_5e53_d952_4e1c_509b08e0b3e2["parseText()"] dbffbbee_5e53_d952_4e1c_509b08e0b3e2 -->|calls| b1101a58_6379_8514_36a1_9d7f75b2b23f d751c51a_c04b_9c2d_5d77_7fc0e875b54a["wrapFilter()"] b1101a58_6379_8514_36a1_9d7f75b2b23f -->|calls| d751c51a_c04b_9c2d_5d77_7fc0e875b54a style b1101a58_6379_8514_36a1_9d7f75b2b23f fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
src/compiler/parser/filter-parser.ts lines 3–104
export function parseFilters(exp: string): string {
let inSingle = false
let inDouble = false
let inTemplateString = false
let inRegex = false
let curly = 0
let square = 0
let paren = 0
let lastFilterIndex = 0
let c, prev, i, expression, filters
for (i = 0; i < exp.length; i++) {
prev = c
c = exp.charCodeAt(i)
if (inSingle) {
if (c === 0x27 && prev !== 0x5c) inSingle = false
} else if (inDouble) {
if (c === 0x22 && prev !== 0x5c) inDouble = false
} else if (inTemplateString) {
if (c === 0x60 && prev !== 0x5c) inTemplateString = false
} else if (inRegex) {
if (c === 0x2f && prev !== 0x5c) inRegex = false
} else if (
c === 0x7c && // pipe
exp.charCodeAt(i + 1) !== 0x7c &&
exp.charCodeAt(i - 1) !== 0x7c &&
!curly &&
!square &&
!paren
) {
if (expression === undefined) {
// first filter, end of expression
lastFilterIndex = i + 1
expression = exp.slice(0, i).trim()
} else {
pushFilter()
}
} else {
switch (c) {
case 0x22:
inDouble = true
break // "
case 0x27:
inSingle = true
break // '
case 0x60:
inTemplateString = true
break // `
case 0x28:
paren++
break // (
case 0x29:
paren--
break // )
case 0x5b:
square++
break // [
case 0x5d:
square--
break // ]
case 0x7b:
curly++
break // {
case 0x7d:
curly--
break // }
}
if (c === 0x2f) {
// /
let j = i - 1
let p
// find first non-whitespace prev char
for (; j >= 0; j--) {
p = exp.charAt(j)
if (p !== ' ') break
}
if (!p || !validDivisionCharRE.test(p)) {
inRegex = true
}
}
}
Domain
Subdomains
Defined In
Calls
Source
Frequently Asked Questions
What does parseFilters() do?
parseFilters() is a function in the vue codebase, defined in src/compiler/parser/filter-parser.ts.
Where is parseFilters() defined?
parseFilters() is defined in src/compiler/parser/filter-parser.ts at line 3.
What does parseFilters() call?
parseFilters() calls 1 function(s): wrapFilter.
What calls parseFilters()?
parseFilters() is called by 3 function(s): getBindingAttr, parseText, processAttrs.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free