resolve-async-component.ts — vue Source File
Architecture documentation for resolve-async-component.ts, a typescript file in the vue codebase. 5 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 09295df1_b45f_f0ad_013e_ae62374b3068["resolve-async-component.ts"] 02e43f4a_da65_7acd_5a98_0f017554a159["index"] 09295df1_b45f_f0ad_013e_ae62374b3068 --> 02e43f4a_da65_7acd_5a98_0f017554a159 f6868225_acf7_afdc_ebd3_15704ddb6566["vnode"] 09295df1_b45f_f0ad_013e_ae62374b3068 --> f6868225_acf7_afdc_ebd3_15704ddb6566 bc678658_2cac_d008_2877_1b29fd284f7d["render"] 09295df1_b45f_f0ad_013e_ae62374b3068 --> bc678658_2cac_d008_2877_1b29fd284f7d 81ed4f13_7d68_6e21_7425_cf978f68576f["vnode"] 09295df1_b45f_f0ad_013e_ae62374b3068 --> 81ed4f13_7d68_6e21_7425_cf978f68576f 907f4994_ea28_43b1_7976_0db9f0e97637["component"] 09295df1_b45f_f0ad_013e_ae62374b3068 --> 907f4994_ea28_43b1_7976_0db9f0e97637 style 09295df1_b45f_f0ad_013e_ae62374b3068 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import {
warn,
once,
isDef,
isUndef,
isTrue,
isObject,
hasSymbol,
isPromise,
remove
} from 'core/util/index'
import VNode, { createEmptyVNode } from 'core/vdom/vnode'
import { currentRenderingInstance } from 'core/instance/render'
import type { VNodeData } from 'types/vnode'
import type { Component } from 'types/component'
function ensureCtor(comp: any, base) {
if (comp.__esModule || (hasSymbol && comp[Symbol.toStringTag] === 'Module')) {
comp = comp.default
}
return isObject(comp) ? base.extend(comp) : comp
}
export function createAsyncPlaceholder(
factory: Function,
data: VNodeData | undefined,
context: Component,
children: Array<VNode> | undefined,
tag?: string
): VNode {
const node = createEmptyVNode()
node.asyncFactory = factory
node.asyncMeta = { data, context, children, tag }
return node
}
export function resolveAsyncComponent(
factory: { (...args: any[]): any; [keye: string]: any },
baseCtor: typeof Component
): typeof Component | void {
if (isTrue(factory.error) && isDef(factory.errorComp)) {
return factory.errorComp
}
if (isDef(factory.resolved)) {
return factory.resolved
}
const owner = currentRenderingInstance
if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {
// already pending
factory.owners.push(owner)
}
if (isTrue(factory.loading) && isDef(factory.loadingComp)) {
return factory.loadingComp
}
if (owner && !isDef(factory.owners)) {
// ... (98 more lines)
Domain
Subdomains
Dependencies
- component
- index
- render
- vnode
- vnode
Source
Frequently Asked Questions
What does resolve-async-component.ts do?
resolve-async-component.ts is a source file in the vue codebase, written in typescript. It belongs to the CoreRuntime domain, Instance subdomain.
What functions are defined in resolve-async-component.ts?
resolve-async-component.ts defines 3 function(s): createAsyncPlaceholder, ensureCtor, resolveAsyncComponent.
What does resolve-async-component.ts depend on?
resolve-async-component.ts imports 5 module(s): component, index, render, vnode, vnode.
Where is resolve-async-component.ts in the architecture?
resolve-async-component.ts is located at src/core/vdom/helpers/resolve-async-component.ts (domain: CoreRuntime, subdomain: Instance, directory: src/core/vdom/helpers).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free