Home / File/ ssr-template.spec.ts — vue Source File

ssr-template.spec.ts — vue Source File

Architecture documentation for ssr-template.spec.ts, a typescript file in the vue codebase. 7 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  067998f7_6426_812d_2e2b_24555482bfb9["ssr-template.spec.ts"]
  80ffdb31_30bf_204b_ee64_bbb38151ebd9["compile-with-webpack.ts"]
  067998f7_6426_812d_2e2b_24555482bfb9 --> 80ffdb31_30bf_204b_ee64_bbb38151ebd9
  d504e56d_e99f_6cae_8673_b0fba3808e2b["compileWithWebpack"]
  067998f7_6426_812d_2e2b_24555482bfb9 --> d504e56d_e99f_6cae_8673_b0fba3808e2b
  62c7c384_07e0_9b4d_0470_4dbef04321eb["createWebpackBundleRenderer"]
  067998f7_6426_812d_2e2b_24555482bfb9 --> 62c7c384_07e0_9b4d_0470_4dbef04321eb
  c5601857_7faf_30c6_efca_20de90db006c["vue"]
  067998f7_6426_812d_2e2b_24555482bfb9 --> c5601857_7faf_30c6_efca_20de90db006c
  e470ee39_c7fb_5d09_8d77_4de2a23d9ce8["index"]
  067998f7_6426_812d_2e2b_24555482bfb9 --> e470ee39_c7fb_5d09_8d77_4de2a23d9ce8
  a7ba45f8_4dbf_6206_075e_7f8c0d260880["client"]
  067998f7_6426_812d_2e2b_24555482bfb9 --> a7ba45f8_4dbf_6206_075e_7f8c0d260880
  750d5325_1865_c1ad_961b_9000d660dd28["create-renderer"]
  067998f7_6426_812d_2e2b_24555482bfb9 --> 750d5325_1865_c1ad_961b_9000d660dd28
  style 067998f7_6426_812d_2e2b_24555482bfb9 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

// @vitest-environment node

import Vue from 'vue'
import {
  compileWithWebpack,
  createWebpackBundleRenderer
} from './compile-with-webpack'
import { createRenderer } from 'server/index'
import VueSSRClientPlugin from 'server/webpack-plugin/client'
import { RenderOptions } from 'server/create-renderer'

const defaultTemplate = `<html><head></head><body><!--vue-ssr-outlet--></body></html>`
const interpolateTemplate = `<html><head><title>{{ title }}</title></head><body><!--vue-ssr-outlet-->{{{ snippet }}}</body></html>`

async function generateClientManifest(file: string) {
  const fs = await compileWithWebpack(file, {
    output: {
      path: '/',
      publicPath: '/',
      filename: '[name].js'
    },
    optimization: {
      runtimeChunk: {
        name: 'manifest'
      }
    },
    plugins: [new VueSSRClientPlugin()]
  })
  return JSON.parse(fs.readFileSync('/vue-ssr-client-manifest.json', 'utf-8'))
}

async function createRendererWithManifest(
  file: string,
  options?: RenderOptions
) {
  const clientManifest = await generateClientManifest(file)
  return createWebpackBundleRenderer(
    file,
    Object.assign(
      {
        asBundle: true,
        template: defaultTemplate,
        clientManifest
      },
      options
    )
  )
}

describe('SSR: template option', () => {
  it('renderToString', async () => {
    const renderer = createRenderer({
      template: defaultTemplate
    })

    const context = {
      head: '<meta name="viewport" content="width=device-width">',
      styles: '<style>h1 { color: red }</style>',
      state: { a: 1 }
    }
// ... (571 more lines)

Domain

Subdomains

Frequently Asked Questions

What does ssr-template.spec.ts do?
ssr-template.spec.ts is a source file in the vue codebase, written in typescript. It belongs to the CompilerSFC domain, TemplateTransformer subdomain.
What functions are defined in ssr-template.spec.ts?
ssr-template.spec.ts defines 2 function(s): createRendererWithManifest, generateClientManifest.
What does ssr-template.spec.ts depend on?
ssr-template.spec.ts imports 7 module(s): client, compile-with-webpack.ts, compileWithWebpack, create-renderer, createWebpackBundleRenderer, index, vue.
Where is ssr-template.spec.ts in the architecture?
ssr-template.spec.ts is located at packages/server-renderer/test/ssr-template.spec.ts (domain: CompilerSFC, subdomain: TemplateTransformer, directory: packages/server-renderer/test).

Analyze Your Own Codebase

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

Try Supermodel Free