Home / File/ parse-template.ts — vue Source File

parse-template.ts — vue Source File

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

File typescript ServerRenderer BundleRenderer 2 dependents 2 functions

Entity Profile

Dependency Diagram

graph LR
  1ca1acca_d1ee_7141_7af0_637ac6a95f5f["parse-template.ts"]
  dd60f8d3_0510_6c88_43e7_0031a6d72263["index.ts"]
  dd60f8d3_0510_6c88_43e7_0031a6d72263 --> 1ca1acca_d1ee_7141_7af0_637ac6a95f5f
  7c3caf9f_7ed4_b48a_352b_1ad68589eac6["template-stream.ts"]
  7c3caf9f_7ed4_b48a_352b_1ad68589eac6 --> 1ca1acca_d1ee_7141_7af0_637ac6a95f5f
  style 1ca1acca_d1ee_7141_7af0_637ac6a95f5f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

const compile = require('lodash.template')
const compileOptions = {
  escape: /{{([^{][\s\S]+?[^}])}}/g,
  interpolate: /{{{([\s\S]+?)}}}/g
}

export type ParsedTemplate = {
  head: (data: any) => string
  neck: (data: any) => string
  tail: (data: any) => string
}

export function parseTemplate(
  template: string,
  contentPlaceholder: string = '<!--vue-ssr-outlet-->'
): ParsedTemplate {
  if (typeof template === 'object') {
    return template
  }

  let i = template.indexOf('</head>')
  const j = template.indexOf(contentPlaceholder)

  if (j < 0) {
    throw new Error(`Content placeholder not found in template.`)
  }

  if (i < 0) {
    i = template.indexOf('<body>')
    if (i < 0) {
      i = j
    }
  }

  return {
    head: compile(template.slice(0, i), compileOptions),
    neck: compile(template.slice(i, j), compileOptions),
    tail: compile(template.slice(j + contentPlaceholder.length), compileOptions)
  }
}

Subdomains

Frequently Asked Questions

What does parse-template.ts do?
parse-template.ts is a source file in the vue codebase, written in typescript. It belongs to the ServerRenderer domain, BundleRenderer subdomain.
What functions are defined in parse-template.ts?
parse-template.ts defines 2 function(s): data, parseTemplate.
What files import parse-template.ts?
parse-template.ts is imported by 2 file(s): index.ts, template-stream.ts.
Where is parse-template.ts in the architecture?
parse-template.ts is located at packages/server-renderer/src/template-renderer/parse-template.ts (domain: ServerRenderer, subdomain: BundleRenderer, directory: packages/server-renderer/src/template-renderer).

Analyze Your Own Codebase

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

Try Supermodel Free