UNPKG

@vtj/renderer

Version:

VTJ 是一款基于 Vue3 + Typescript 的低代码页面可视化设计器。内置低代码引擎、渲染器和代码生成器,面向前端开发者,开箱即用。 无缝嵌入本地开发工程,不改变前端开发流程和编码习惯。

77 lines (76 loc) 2.89 kB
import { App, InjectionKey } from 'vue'; import { Router, RouteRecordName, RouteMeta } from 'vue-router'; import { ProjectSchema, PageFile, BlockFile, Service, BlockSchema, NodeFromPlugin, Base } from '@vtj/core'; import { ContextMode } from '../constants'; import { CreateRendererOptions } from '../render'; import { ProvideAdapter } from './defaults'; import { Context } from '..'; export declare const providerKey: InjectionKey<Provider>; export interface ProviderOptions { service: Service; project?: Partial<ProjectSchema>; modules?: Record<string, () => Promise<any>>; mode?: ContextMode; adapter?: Partial<ProvideAdapter>; router?: Router; dependencies?: Record<string, () => Promise<any>>; materials?: Record<string, () => Promise<any>>; globals?: Record<string, any>; materialPath?: string; nodeEnv?: NodeEnv; install?: (app: App) => void; routeAppendTo?: RouteRecordName; pageRouteName?: string; routeMeta?: RouteMeta; } export declare enum NodeEnv { Production = "production", Development = "development" } export declare class Provider extends Base { options: ProviderOptions; mode: ContextMode; globals: Record<string, any>; modules: Record<string, () => Promise<any>>; adapter: ProvideAdapter; apis: Record<string, (...args: any[]) => Promise<any>>; dependencies: Record<string, () => Promise<any>>; materials: Record<string, () => Promise<any>>; library: Record<string, any>; service: Service; project: ProjectSchema | null; components: Record<string, any>; nodeEnv: NodeEnv; private router; private materialPath; private urlDslCaches; constructor(options: ProviderOptions); createMock(func: (...args: any) => any): (...args: any[]) => Promise<any>; load(project: ProjectSchema): Promise<void>; initMock(global?: any): void; private loadDependencies; private loadAssets; private initRouter; install(app: App): void; getFile(id: string): PageFile | BlockFile | null; getPage(id: string): PageFile | null; getHomepage(): PageFile | null; getDsl(id: string): Promise<BlockSchema | null>; getDslByUrl(url: string): Promise<BlockSchema | null>; createDslRenderer(dsl: BlockSchema, opts?: Partial<CreateRendererOptions>): { renderer: any; context: Context; }; getRenderComponent(id: string, output?: (file: BlockFile | PageFile) => void): Promise<any>; defineUrlSchemaComponent(url: string, name?: string): any; definePluginComponent(from: NodeFromPlugin): any; } export declare function createProvider(options: ProviderOptions): { provider: Provider; onReady: (callback: () => void) => void; }; export interface UseProviderOptions { id?: string; version?: string; } export declare function useProvider(options?: UseProviderOptions): Provider;