TemplateStream Class — vue Architecture
Architecture documentation for the TemplateStream class in template-stream.ts from the vue codebase.
Entity Profile
Dependency Diagram
graph TD 28d68c7e_2c7f_5bb2_b735_7354abc74108["TemplateStream"] 7c3caf9f_7ed4_b48a_352b_1ad68589eac6["template-stream.ts"] 28d68c7e_2c7f_5bb2_b735_7354abc74108 -->|defined in| 7c3caf9f_7ed4_b48a_352b_1ad68589eac6 0ef556f7_d362_84b8_707e_50d668e67c3e["constructor()"] 28d68c7e_2c7f_5bb2_b735_7354abc74108 -->|method| 0ef556f7_d362_84b8_707e_50d668e67c3e 97d5c3f8_7b32_5618_ac83_a1c5068bd623["_transform()"] 28d68c7e_2c7f_5bb2_b735_7354abc74108 -->|method| 97d5c3f8_7b32_5618_ac83_a1c5068bd623 d73c9526_09c0_71b5_ab46_cdd9dcf35673["start()"] 28d68c7e_2c7f_5bb2_b735_7354abc74108 -->|method| d73c9526_09c0_71b5_ab46_cdd9dcf35673 b826801b_639e_be55_d795_731fd2aa3dc5["_flush()"] 28d68c7e_2c7f_5bb2_b735_7354abc74108 -->|method| b826801b_639e_be55_d795_731fd2aa3dc5
Relationship Graph
Source Code
packages/server-renderer/src/template-renderer/template-stream.ts lines 6–81
export default class TemplateStream extends Transform {
started: boolean
renderer: TemplateRenderer
template: ParsedTemplate
context: Record<string, any>
inject: boolean
constructor(
renderer: TemplateRenderer,
template: ParsedTemplate,
context: Record<string, any>
) {
super()
this.started = false
this.renderer = renderer
this.template = template
this.context = context || {}
this.inject = renderer.inject
}
_transform(data: Buffer | string, encoding: string, done: Function) {
if (!this.started) {
this.emit('beforeStart')
this.start()
}
this.push(data)
done()
}
start() {
this.started = true
this.push(this.template.head(this.context))
if (this.inject) {
// inline server-rendered head meta information
if (this.context.head) {
this.push(this.context.head)
}
// inline preload/prefetch directives for initial/async chunks
const links = this.renderer.renderResourceHints(this.context)
if (links) {
this.push(links)
}
// CSS files and inline server-rendered CSS collected by vue-style-loader
const styles = this.renderer.renderStyles(this.context)
if (styles) {
this.push(styles)
}
}
this.push(this.template.neck(this.context))
}
_flush(done: Function) {
this.emit('beforeEnd')
if (this.inject) {
// inline initial store state
const state = this.renderer.renderState(this.context)
if (state) {
this.push(state)
}
// embed scripts needed
const scripts = this.renderer.renderScripts(this.context)
if (scripts) {
this.push(scripts)
}
}
this.push(this.template.tail(this.context))
done()
}
}
Domain
Source
Frequently Asked Questions
What is the TemplateStream class?
TemplateStream is a class in the vue codebase, defined in packages/server-renderer/src/template-renderer/template-stream.ts.
Where is TemplateStream defined?
TemplateStream is defined in packages/server-renderer/src/template-renderer/template-stream.ts at line 6.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free