Home / File/ render.ts — vue Source File

render.ts — vue Source File

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

File typescript ServerRenderer TemplateRenderer 15 imports 2 dependents 16 functions

Entity Profile

Dependency Diagram

graph LR
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f["render.ts"]
  a0033b88_b768_84c8_da01_e6315f54737c["util.ts"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> a0033b88_b768_84c8_da01_e6315f54737c
  1e08374e_4b7f_6901_4657_b7f1d04e4395["escape"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> 1e08374e_4b7f_6901_4657_b7f1d04e4395
  e3bc34d0_0f87_61e0_6d65_02d5d090ee45["render-context.ts"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> e3bc34d0_0f87_61e0_6d65_02d5d090ee45
  1f378302_3376_98d6_8ce8_9b6280a10bfa["RenderContext"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> 1f378302_3376_98d6_8ce8_9b6280a10bfa
  60900fe4_f4b0_dfb1_f1c9_8f4c042c826e["compiler.ts"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> 60900fe4_f4b0_dfb1_f1c9_8f4c042c826e
  b4035da1_cf86_9027_2643_66e42fd3924f["runtime-helpers.ts"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> b4035da1_cf86_9027_2643_66e42fd3924f
  28ad8384_f7b2_0454_204e_37323319fd93["installSSRHelpers"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> 28ad8384_f7b2_0454_204e_37323319fd93
  19d0b34b_7289_2457_32d9_273105740f2a["constants"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> 19d0b34b_7289_2457_32d9_273105740f2a
  4a8e435e_c7a9_53f9_6746_e42fcef03a74["options"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> 4a8e435e_c7a9_53f9_6746_e42fcef03a74
  5e280904_7607_16e2_62e5_1d6d092f34a6["debug"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> 5e280904_7607_16e2_62e5_1d6d092f34a6
  156bf2e1_8a13_f22d_5437_54f14bcef8fa["util"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> 156bf2e1_8a13_f22d_5437_54f14bcef8fa
  96423614_f522_3ab1_46f2_474306df888a["create-component"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> 96423614_f522_3ab1_46f2_474306df888a
  f6868225_acf7_afdc_ebd3_15704ddb6566["vnode"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> f6868225_acf7_afdc_ebd3_15704ddb6566
  81ed4f13_7d68_6e21_7425_cf978f68576f["vnode"]
  affe67c1_b5f5_cf58_e5d3_d3d820ab290f --> 81ed4f13_7d68_6e21_7425_cf978f68576f
  style affe67c1_b5f5_cf58_e5d3_d3d820ab290f fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { escape } from './util'
import { SSR_ATTR } from 'shared/constants'
import { RenderContext } from './render-context'
import { resolveAsset } from 'core/util/options'
import { generateComponentTrace } from 'core/util/debug'
import { ssrCompileToFunctions } from './compiler'
import { installSSRHelpers } from './optimizing-compiler/runtime-helpers'

import { isDef, isUndef, isTrue } from 'shared/util'

import {
  createComponent,
  createComponentInstanceForVnode
} from 'core/vdom/create-component'
import VNode from 'core/vdom/vnode'
import type { VNodeDirective } from 'types/vnode'
import type { Component } from 'types/component'

let warned = Object.create(null)
const warnOnce = msg => {
  if (!warned[msg]) {
    warned[msg] = true
    // eslint-disable-next-line no-console
    console.warn(`\n\u001b[31m${msg}\u001b[39m\n`)
  }
}

const onCompilationError = (err, vm) => {
  const trace = vm ? generateComponentTrace(vm) : ''
  throw new Error(`\n\u001b[31m${err}${trace}\u001b[39m\n`)
}

const normalizeRender = vm => {
  const { render, template, _scopeId } = vm.$options
  if (isUndef(render)) {
    if (template) {
      const compiled = ssrCompileToFunctions(
        template,
        {
          scopeId: _scopeId,
          warn: onCompilationError
        },
        vm
      )

      vm.$options.render = compiled.render
      vm.$options.staticRenderFns = compiled.staticRenderFns
    } else {
      throw new Error(
        `render function or template not defined in component: ${
          vm.$options.name || vm.$options._componentTag || 'anonymous'
        }`
      )
    }
  }
}

function waitForServerPrefetch(vm, resolve, reject) {
  let handlers = vm.$options.serverPrefetch
  if (isDef(handlers)) {
// ... (400 more lines)

Subdomains

Dependencies

Frequently Asked Questions

What does render.ts do?
render.ts is a source file in the vue codebase, written in typescript. It belongs to the ServerRenderer domain, TemplateRenderer subdomain.
What functions are defined in render.ts?
render.ts defines 16 function(s): createRenderFunction, getVShowDirectiveInfo, hasAncestorData, normalizeRender, onCompilationError, registerComponentForCache, renderAsyncComponent, renderComponent, renderComponentInner, renderComponentWithCache, and 6 more.
What does render.ts depend on?
render.ts imports 15 module(s): RenderContext, compiler.ts, component, constants, create-component, debug, escape, installSSRHelpers, and 7 more.
What files import render.ts?
render.ts is imported by 2 file(s): create-basic-renderer.ts, create-renderer.ts.
Where is render.ts in the architecture?
render.ts is located at packages/server-renderer/src/render.ts (domain: ServerRenderer, subdomain: TemplateRenderer, directory: packages/server-renderer/src).

Analyze Your Own Codebase

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

Try Supermodel Free