Home / File/ create-bundle-runner.ts — vue Source File

create-bundle-runner.ts — vue Source File

Architecture documentation for create-bundle-runner.ts, a typescript file in the vue codebase. 1 imports, 1 dependents.

File typescript ServerRenderer BundleRenderer 1 imports 1 dependents 4 functions

Entity Profile

Dependency Diagram

graph LR
  5a1c51f2_4876_fec0_df27_1d6ef59f031a["create-bundle-runner.ts"]
  09aa5370_2caa_6b33_3f44_6ac5211bd11b["util"]
  5a1c51f2_4876_fec0_df27_1d6ef59f031a --> 09aa5370_2caa_6b33_3f44_6ac5211bd11b
  f74c7f32_6b84_af20_b750_d2532206091d["create-bundle-renderer.ts"]
  f74c7f32_6b84_af20_b750_d2532206091d --> 5a1c51f2_4876_fec0_df27_1d6ef59f031a
  style 5a1c51f2_4876_fec0_df27_1d6ef59f031a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { isPlainObject } from 'shared/util'

const vm = require('vm')
const path = require('path')
const resolve = require('resolve')
const NativeModule = require('module')

function createSandbox(context?: any) {
  const sandbox = {
    Buffer,
    console,
    process,
    setTimeout,
    setInterval,
    setImmediate,
    clearTimeout,
    clearInterval,
    clearImmediate,
    __VUE_SSR_CONTEXT__: context
  }

  // @ts-expect-error
  sandbox.global = sandbox
  return sandbox
}

function compileModule(files, basedir, runInNewContext) {
  const compiledScripts = {}
  const resolvedModules = {}

  function getCompiledScript(filename) {
    if (compiledScripts[filename]) {
      return compiledScripts[filename]
    }
    const code = files[filename]
    const wrapper = NativeModule.wrap(code)
    const script = new vm.Script(wrapper, {
      filename,
      displayErrors: true
    })
    compiledScripts[filename] = script
    return script
  }

  function evaluateModule(filename, sandbox, evaluatedFiles = {}) {
    if (evaluatedFiles[filename]) {
      return evaluatedFiles[filename]
    }

    const script = getCompiledScript(filename)
    const compiledWrapper =
      runInNewContext === false
        ? script.runInThisContext()
        : script.runInNewContext(sandbox)
    const m = { exports: {} }
    const r = file => {
      file = path.posix.join('.', file)
      if (files[file]) {
        return evaluateModule(file, sandbox, evaluatedFiles)
      } else if (basedir) {
// ... (99 more lines)

Subdomains

Dependencies

  • util

Frequently Asked Questions

What does create-bundle-runner.ts do?
create-bundle-runner.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 create-bundle-runner.ts?
create-bundle-runner.ts defines 4 function(s): compileModule, createBundleRunner, createSandbox, deepClone.
What does create-bundle-runner.ts depend on?
create-bundle-runner.ts imports 1 module(s): util.
What files import create-bundle-runner.ts?
create-bundle-runner.ts is imported by 1 file(s): create-bundle-renderer.ts.
Where is create-bundle-runner.ts in the architecture?
create-bundle-runner.ts is located at packages/server-renderer/src/bundle-renderer/create-bundle-runner.ts (domain: ServerRenderer, subdomain: BundleRenderer, directory: packages/server-renderer/src/bundle-renderer).

Analyze Your Own Codebase

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

Try Supermodel Free