Home / File/ apiSetup.ts — vue Source File

apiSetup.ts — vue Source File

Architecture documentation for apiSetup.ts, a typescript file in the vue codebase. 17 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85["apiSetup.ts"]
  dfb2b3e1_ffba_6029_124e_b43a30f0f999["dep.ts"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> dfb2b3e1_ffba_6029_124e_b43a30f0f999
  f641f94c_5096_9084_3285_10f3d148c139["popTarget"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> f641f94c_5096_9084_3285_10f3d148c139
  46145e02_0be2_a179_3c66_d786e8df82f3["pushTarget"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> 46145e02_0be2_a179_3c66_d786e8df82f3
  2a298df2_21b8_7e5a_c372_51ba50c9d92d["index.ts"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> 2a298df2_21b8_7e5a_c372_51ba50c9d92d
  a13b4a2c_7af7_bcfd_03a9_13286f908ca0["vnode.ts"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> a13b4a2c_7af7_bcfd_03a9_13286f908ca0
  6a05321e_c7cd_43ad_21be_69c7e5fd4488["VNode"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> 6a05321e_c7cd_43ad_21be_69c7e5fd4488
  ce303fd5_0a15_37d7_872a_d1ca73ec7f6a["util.ts"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> ce303fd5_0a15_37d7_872a_d1ca73ec7f6a
  13ab3a27_e98e_1f11_fa3d_2ae15be5c797["isFunction"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> 13ab3a27_e98e_1f11_fa3d_2ae15be5c797
  b9b5088c_fb08_6800_f248_ef1b18619844["isObject"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> b9b5088c_fb08_6800_f248_ef1b18619844
  08d717e5_b9dd_701c_e7a2_51d83681d28a["currentInstance.ts"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> 08d717e5_b9dd_701c_e7a2_51d83681d28a
  d1e6589c_ca32_48f9_4b75_7ccf5ae438ec["setCurrentInstance"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> d1e6589c_ca32_48f9_4b75_7ccf5ae438ec
  abfe3078_bfec_252c_2107_7cdf0dd06f08["reactive.ts"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> abfe3078_bfec_252c_2107_7cdf0dd06f08
  94784772_3664_4cb1_fcad_0275dfc601d0["shallowReactive"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> 94784772_3664_4cb1_fcad_0275dfc601d0
  ada43310_8d32_ee2a_f18b_1e24fd4f8a1d["ref.ts"]
  4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 --> ada43310_8d32_ee2a_f18b_1e24fd4f8a1d
  style 4ad51b1f_61ec_31ba_dbb7_667d6a0a8c85 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { Component } from 'types/component'
import { PropOptions } from 'types/options'
import { popTarget, pushTarget } from '../core/observer/dep'
import { def, invokeWithErrorHandling, isReserved, warn } from '../core/util'
import VNode from '../core/vdom/vnode'
import {
  bind,
  emptyObject,
  isArray,
  isFunction,
  isObject
} from '../shared/util'
import { currentInstance, setCurrentInstance } from './currentInstance'
import { shallowReactive } from './reactivity/reactive'
import { proxyWithRefUnwrap } from './reactivity/ref'

/**
 * @internal
 */
export interface SetupContext {
  attrs: Record<string, any>
  listeners: Record<string, Function | Function[]>
  slots: Record<string, () => VNode[]>
  emit: (event: string, ...args: any[]) => any
  expose: (exposed: Record<string, any>) => void
}

export function initSetup(vm: Component) {
  const options = vm.$options
  const setup = options.setup
  if (setup) {
    const ctx = (vm._setupContext = createSetupContext(vm))

    setCurrentInstance(vm)
    pushTarget()
    const setupResult = invokeWithErrorHandling(
      setup,
      null,
      [vm._props || shallowReactive({}), ctx],
      vm,
      `setup`
    )
    popTarget()
    setCurrentInstance()

    if (isFunction(setupResult)) {
      // render function
      // @ts-ignore
      options.render = setupResult
    } else if (isObject(setupResult)) {
      // bindings
      if (__DEV__ && setupResult instanceof VNode) {
        warn(
          `setup() should not return VNodes directly - ` +
            `return a render function instead.`
        )
      }
      vm._setupState = setupResult
      // __sfc indicates compiled bindings from <script setup>
      if (!setupResult.__sfc) {
// ... (187 more lines)

Domain

Subdomains

Types

Frequently Asked Questions

What does apiSetup.ts do?
apiSetup.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 apiSetup.ts?
apiSetup.ts defines 14 function(s): VNode, createSetupContext, defineProxyAttr, event, exposed, getContext, initSetup, initSlotsProxy, mergeDefaults, syncSetupProxy, and 4 more.
What does apiSetup.ts depend on?
apiSetup.ts imports 17 module(s): VNode, component, currentInstance.ts, dep.ts, index.ts, isFunction, isObject, options, and 9 more.
Where is apiSetup.ts in the architecture?
apiSetup.ts is located at src/v3/apiSetup.ts (domain: CompilerSFC, subdomain: TemplateTransformer, directory: src/v3).

Analyze Your Own Codebase

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

Try Supermodel Free