Home / Function/ createBundleRendererCreator() — vue Function Reference

createBundleRendererCreator() — vue Function Reference

Architecture documentation for the createBundleRendererCreator() function in create-bundle-renderer.ts from the vue codebase.

Entity Profile

Dependency Diagram

graph TD
  12e2c88e_c7c5_fea0_a285_dc96ab9156f5["createBundleRendererCreator()"]
  f74c7f32_6b84_af20_b750_d2532206091d["create-bundle-renderer.ts"]
  12e2c88e_c7c5_fea0_a285_dc96ab9156f5 -->|defined in| f74c7f32_6b84_af20_b750_d2532206091d
  53c38896_e852_adea_86c6_0c45a1a6707f["createSourceMapConsumers()"]
  12e2c88e_c7c5_fea0_a285_dc96ab9156f5 -->|calls| 53c38896_e852_adea_86c6_0c45a1a6707f
  1c60f0eb_7fcc_3a6b_d886_ed0ac8152d52["createRenderer()"]
  12e2c88e_c7c5_fea0_a285_dc96ab9156f5 -->|calls| 1c60f0eb_7fcc_3a6b_d886_ed0ac8152d52
  e142ddd7_db7e_6e31_6600_9ceabc3f3fa2["createBundleRunner()"]
  12e2c88e_c7c5_fea0_a285_dc96ab9156f5 -->|calls| e142ddd7_db7e_6e31_6600_9ceabc3f3fa2
  46da04ac_8d5c_f991_fddd_ba38b64b6398["createPromiseCallback()"]
  12e2c88e_c7c5_fea0_a285_dc96ab9156f5 -->|calls| 46da04ac_8d5c_f991_fddd_ba38b64b6398
  da88ddd6_89c9_1ce7_3552_bd114f03e481["rewriteErrorTrace()"]
  12e2c88e_c7c5_fea0_a285_dc96ab9156f5 -->|calls| da88ddd6_89c9_1ce7_3552_bd114f03e481
  style 12e2c88e_c7c5_fea0_a285_dc96ab9156f5 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/server-renderer/src/bundle-renderer/create-bundle-renderer.ts lines 32–159

export function createBundleRendererCreator(
  createRenderer: (options?: RenderOptions) => Renderer
) {
  return function createBundleRenderer(
    bundle: string | RenderBundle,
    rendererOptions: RenderOptions = {}
  ) {
    let files, entry, maps
    let basedir = rendererOptions.basedir

    // load bundle if given filepath
    if (
      typeof bundle === 'string' &&
      /\.js(on)?$/.test(bundle) &&
      path.isAbsolute(bundle)
    ) {
      if (fs.existsSync(bundle)) {
        const isJSON = /\.json$/.test(bundle)
        basedir = basedir || path.dirname(bundle)
        bundle = fs.readFileSync(bundle, 'utf-8')
        if (isJSON) {
          try {
            // @ts-expect-error
            bundle = JSON.parse(bundle)
          } catch (e: any) {
            throw new Error(`Invalid JSON bundle file: ${bundle}`)
          }
        }
      } else {
        throw new Error(`Cannot locate bundle file: ${bundle}`)
      }
    }

    if (typeof bundle === 'object') {
      entry = bundle.entry
      files = bundle.files
      basedir = basedir || bundle.basedir
      maps = createSourceMapConsumers(bundle.maps)
      if (typeof entry !== 'string' || typeof files !== 'object') {
        throw new Error(INVALID_MSG)
      }
    } else if (typeof bundle === 'string') {
      entry = '__vue_ssr_bundle__'
      files = { __vue_ssr_bundle__: bundle }
      maps = {}
    } else {
      throw new Error(INVALID_MSG)
    }

    const renderer = createRenderer(rendererOptions)

    const run = createBundleRunner(
      entry,
      files,
      basedir,
      rendererOptions.runInNewContext
    )

    return {
      renderToString: (context?: Object | undefined, cb?: any) => {
        if (typeof context === 'function') {
          cb = context
          context = {}
        }

        let promise
        if (!cb) {
          ;({ promise, cb } = createPromiseCallback())
        }

        run(context)
          .catch(err => {
            rewriteErrorTrace(err, maps)
            cb(err)
          })
          .then(app => {
            if (app) {
              //@ts-expect-error
              renderer.renderToString(app, context, (err, res) => {
                rewriteErrorTrace(err, maps)
                cb(err, res)

Subdomains

Frequently Asked Questions

What does createBundleRendererCreator() do?
createBundleRendererCreator() is a function in the vue codebase, defined in packages/server-renderer/src/bundle-renderer/create-bundle-renderer.ts.
Where is createBundleRendererCreator() defined?
createBundleRendererCreator() is defined in packages/server-renderer/src/bundle-renderer/create-bundle-renderer.ts at line 32.
What does createBundleRendererCreator() call?
createBundleRendererCreator() calls 5 function(s): createBundleRunner, createPromiseCallback, createRenderer, createSourceMapConsumers, rewriteErrorTrace.

Analyze Your Own Codebase

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

Try Supermodel Free