Home / File/ parse.ts — vue Source File

parse.ts — vue Source File

Architecture documentation for parse.ts, a typescript file in the vue codebase. 14 imports, 2 dependents.

File typescript CompilerSFC StyleProcessor 14 imports 2 dependents 2 functions

Entity Profile

Dependency Diagram

graph LR
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93["parse.ts"]
  1502a238_61f0_9afa_8c3c_71d2bb769820["types.ts"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> 1502a238_61f0_9afa_8c3c_71d2bb769820
  333cfdf9_515e_e6a3_80fb_5ff2a2c28fe6["RawSourceMap"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> 333cfdf9_515e_e6a3_80fb_5ff2a2c28fe6
  09bb3830_deee_4e9b_d8db_82733e2801f2["TemplateCompiler"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> 09bb3830_deee_4e9b_d8db_82733e2801f2
  ecb7777f_63cc_7bf6_1f6a_fedf933d43a4["parseComponent.ts"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> ecb7777f_63cc_7bf6_1f6a_fedf933d43a4
  4fedf5e2_2642_82d1_7b8c_20a3078d10a3["parseComponent"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> 4fedf5e2_2642_82d1_7b8c_20a3078d10a3
  e394db8a_23b2_2ccc_8242_160fbdbaf92c["VueTemplateCompilerParseOptions"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> e394db8a_23b2_2ccc_8242_160fbdbaf92c
  723c94a2_276b_7491_3957_5f4e8a659b73["SFCDescriptor"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> 723c94a2_276b_7491_3957_5f4e8a659b73
  b9f12a63_b611_1b00_0717_3ff21d7ce156["compileScript.ts"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> b9f12a63_b611_1b00_0717_3ff21d7ce156
  77a507e4_1c27_8178_ab4a_e01ee29e1b0d["hmrShouldReload"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> 77a507e4_1c27_8178_ab4a_e01ee29e1b0d
  b08241c7_738d_9e08_b885_fad82facd4f3["cssVars.ts"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> b08241c7_738d_9e08_b885_fad82facd4f3
  e9d55bf3_a525_60d3_e948_546c1b25721c["parseCssVars"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> e9d55bf3_a525_60d3_e948_546c1b25721c
  0bf310ff_b73a_1898_7a5a_dca10146cbe0["source-map"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> 0bf310ff_b73a_1898_7a5a_dca10146cbe0
  47553a6e_bec9_3256_f70a_cfd5dfa0f98e["hash-sum"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> 47553a6e_bec9_3256_f70a_cfd5dfa0f98e
  6fcaf176_90d1_c9f9_2b0f_f5b1f7ebd4a8["lru-cache"]
  c09840ce_bc86_fdc3_93a1_cf7e368a9a93 --> 6fcaf176_90d1_c9f9_2b0f_f5b1f7ebd4a8
  style c09840ce_bc86_fdc3_93a1_cf7e368a9a93 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { SourceMapGenerator } from 'source-map'
import { RawSourceMap, TemplateCompiler } from './types'
import {
  parseComponent,
  VueTemplateCompilerParseOptions,
  SFCDescriptor,
  DEFAULT_FILENAME
} from './parseComponent'

import hash from 'hash-sum'
import LRU from 'lru-cache'
import { hmrShouldReload } from './compileScript'
import { parseCssVars } from './cssVars'

const cache = new LRU<string, SFCDescriptor>(100)

const splitRE = /\r?\n/g
const emptyRE = /^(?:\/\/)?\s*$/

export interface SFCParseOptions {
  source: string
  filename?: string
  compiler?: TemplateCompiler
  compilerParseOptions?: VueTemplateCompilerParseOptions
  sourceRoot?: string
  sourceMap?: boolean
  /**
   * @deprecated use `sourceMap` instead.
   */
  needMap?: boolean
}

export function parse(options: SFCParseOptions): SFCDescriptor {
  const {
    source,
    filename = DEFAULT_FILENAME,
    compiler,
    compilerParseOptions = { pad: false } as VueTemplateCompilerParseOptions,
    sourceRoot = '',
    needMap = true,
    sourceMap = needMap
  } = options
  const cacheKey = hash(
    filename + source + JSON.stringify(compilerParseOptions)
  )

  let output = cache.get(cacheKey)
  if (output) {
    return output
  }

  if (compiler) {
    // user-provided compiler
    output = compiler.parseComponent(source, compilerParseOptions)
  } else {
    // use built-in compiler
    output = parseComponent(source, compilerParseOptions)
  }

  output.filename = filename
// ... (70 more lines)

Domain

Subdomains

Frequently Asked Questions

What does parse.ts do?
parse.ts is a source file in the vue codebase, written in typescript. It belongs to the CompilerSFC domain, StyleProcessor subdomain.
What functions are defined in parse.ts?
parse.ts defines 2 function(s): generateSourceMap, parse.
What does parse.ts depend on?
parse.ts imports 14 module(s): RawSourceMap, SFCDescriptor, TemplateCompiler, VueTemplateCompilerParseOptions, compileScript.ts, cssVars.ts, hash-sum, hmrShouldReload, and 6 more.
What files import parse.ts?
parse.ts is imported by 2 file(s): compileStyle.spec.ts, compileTemplate.spec.ts.
Where is parse.ts in the architecture?
parse.ts is located at packages/compiler-sfc/src/parse.ts (domain: CompilerSFC, subdomain: StyleProcessor, directory: packages/compiler-sfc/src).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free