Home / Function/ parseFilters() — vue Function Reference

parseFilters() — vue Function Reference

Architecture documentation for the parseFilters() function in filter-parser.ts from the vue codebase.

Function typescript VueCore VDom calls 1 called by 3

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

Calls

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