parseFilters() — vue Function Reference
Architecture documentation for the parseFilters() function in filter-parser.ts from the vue codebase.
Entity Profile
Dependency Diagram
graph TD b4977dfa_c8a9_400f_00e1_dac785ffde86["parseFilters()"] 452898a7_6631_766c_1752_d0d7f2ce2517["filter-parser.ts"] b4977dfa_c8a9_400f_00e1_dac785ffde86 -->|defined in| 452898a7_6631_766c_1752_d0d7f2ce2517 58594d31_46d6_b10c_c378_911111359052["getBindingAttr()"] 58594d31_46d6_b10c_c378_911111359052 -->|calls| b4977dfa_c8a9_400f_00e1_dac785ffde86 89ae2d84_ca61_4847_7313_0974c1948730["processAttrs()"] 89ae2d84_ca61_4847_7313_0974c1948730 -->|calls| b4977dfa_c8a9_400f_00e1_dac785ffde86 2ed64a28_b078_3038_149f_d30cf6867ba3["parseText()"] 2ed64a28_b078_3038_149f_d30cf6867ba3 -->|calls| b4977dfa_c8a9_400f_00e1_dac785ffde86 f9145d99_497e_16eb_4e89_e9dadd234e2d["wrapFilter()"] b4977dfa_c8a9_400f_00e1_dac785ffde86 -->|calls| f9145d99_497e_16eb_4e89_e9dadd234e2d style b4977dfa_c8a9_400f_00e1_dac785ffde86 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