UNPKG

@omnia/tooling-vue

Version:

Used to bundle and serve manifests web component that build on Vue framework.

115 lines (114 loc) 4.07 kB
import type { OmniaPluginOptions } from '../plugins'; export interface ResolverInstance<Name extends string> extends ResolverConfig { name: Name; } export interface ResolverConfig { test(source: string, importer: string, fileGraph: FileGraph, ctx: RuntimeContext, fromWorker: boolean): boolean; resolve(source: string, importer: string, fileGraph: FileGraph, ctx: RuntimeContext, fromWorker: boolean): string | Promise<string>; } export type Resolver<Name extends string, Args extends any[]> = (...args: Args) => ResolverInstance<Name>; export interface TransformerInstance<Name extends string> extends TransformerConfig { name: Name; } export interface TransformerConfig { test(code: string, id: string, fileGraph: FileGraph, ctx: RuntimeContext, fromWorker: boolean): boolean; transform(code: string, id: string, fileGraph: FileGraph, ctx: RuntimeContext, fromWorker: boolean): string | Promise<string>; } export type Transformer<Name extends string, Args extends any[], R> = (...args: Args) => R extends Promise<any> ? Promise<TransformerInstance<Name>> : TransformerInstance<Name>; export interface OmniaHmrConfig { alias: Record<string, string>; resolvers: Array<ResolverInstance<any>>; transformers: Array<TransformerInstance<any> | Promise<TransformerInstance<any>>>; } export interface RuntimeContext { options: OmniaPluginOptions; serviceId: string; alias: Record<string, string>; toModuleId(unknownId: string): string; toFileGraphId(unknownId: string): string; getFileGraph(unknownId: string): FileGraph; } export interface FileGraph { id: string; entry: boolean; preBundled: boolean; extension: string; resourceId: string; connectedResourceIds: Array<string>; importers: Array<string>; exporters: Array<string>; js: FileGraphJavaScript; bareImport: boolean; timestamp?: number; } export interface FileGraphJavaScript { scanned: boolean; empty: boolean; bareImportVariable?: string; bareImportDynamicResourceId?: string; metadata?: ModuleJS; } export interface ModuleJS { importPaths: Array<string>; exportPaths: Array<string>; namedExports: Array<string>; imports: { namedVariables: Array<ImportedNamedVariableJS>; wildcardVariables: Array<ImportedWildcardVariableJS>; defaultVariables: Array<ImportedDefaultVariableJS>; noneVariables: Array<ImportedNoneVariableJS>; }; exports: { locals: Array<string>; localNamedVariables: Array<ExportedLocalNamedVariableJS>; externalNamedVariables: Array<ExportedExternalNamedVariableJS>; wildcardVariables: Array<ExportedWildcardVariableJS>; wildcards: Array<ExportedWildcardJS>; default: DefaultExportJS; }; requires: Array<CommonJsRequireJS>; } export interface DefaultExportJS { available: boolean; wildcard: ExportedWildcardVariableJS; nameless: boolean; original?: string; path?: string; } export interface NamedVariablesValueJS { values: Array<string>; asValues: Record<string, string>; } export interface PathValueJS { statement: string; path: string; rawPath: string; } export interface NamedVariableJS { value: string; original?: string; } export interface ImportedNamedVariableJS extends NamedVariablesValueJS, PathValueJS { } export interface ImportedWildcardVariableJS extends PathValueJS { value: string; } export interface ImportedDefaultVariableJS extends PathValueJS { default: string; } export interface ImportedNoneVariableJS extends PathValueJS { } export interface ExportedExternalNamedVariableJS extends NamedVariablesValueJS, PathValueJS { default?: string; } export interface ExportedLocalNamedVariableJS extends NamedVariablesValueJS { default?: string; } export interface ExportedWildcardVariableJS extends PathValueJS { value: string; defaultAvailable: boolean; } export interface ExportedWildcardJS extends PathValueJS { } export interface CommonJsRequireJS extends PathValueJS { }