Skip to content

@mrmt/vite / lib/context

lib/context ​

Classes ​

DefaultVitePluginContext ​

Defined in: packages/vite/src/lib/context.ts:187

Extends ​

Constructors ​

Constructor ​

new DefaultVitePluginContext(input): DefaultVitePluginContext

Defined in: packages/vite/src/lib/context.ts:165

Parameters ​
input ​

ContextInput<{ sourceDir: string; }, { }>

Returns ​

DefaultVitePluginContext

Inherited from ​

contextFactory( {}, { paths: { sourceDir: "./src" }, }, ).constructor

Properties ​

generator ​

generator: object

Defined in: packages/vite/src/lib/context.ts:63

Defines the generator info used when calling VitePluginContext.writeAutoGeneratedFile and VitePluginContext.writeDefaultFile You can (and should) override this when extending context

name ​

name: string

version ​

version: string

Inherited from ​

VitePluginContext.generator

options ​

readonly options: ContextResolved<{ sourceDir: string; }, { }>

Defined in: packages/vite/src/lib/context.ts:57

Inherited from ​

VitePluginContext.options

Methods ​

resolve() ​

resolve(base, ...paths): string

Defined in: packages/vite/src/lib/context.ts:81

Parameters ​
base ​

"root" | "sourceDir"

paths ​

...string[]

Returns ​

string

Absolute path to desired resource

Inherited from ​

VitePluginContext.resolve

resolveBase() ​

resolveBase(base): string

Defined in: packages/vite/src/lib/context.ts:70

resolves a base path using options or defaults

Parameters ​
base ​

"root" | "sourceDir"

Returns ​

string

Inherited from ​

VitePluginContext.resolveBase

resolvePackageJson() ​

resolvePackageJson(): Promise<{[key: string]: unknown; dependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>; description: string; name: string; version: string; }>

Defined in: packages/vite/src/lib/context.ts:86

Returns ​

Promise<{[key: string]: unknown; dependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>; description: string; name: string; version: string; }>

Inherited from ​

VitePluginContext.resolvePackageJson

writeAutoGeneratedFile() ​

writeAutoGeneratedFile(file, content, ctx?): Promise<void>

Defined in: packages/vite/src/lib/context.ts:94

Parameters ​
file ​

string

content ​

string

ctx? ​

Partial<CodeGenContext>

Returns ​

Promise<void>

Inherited from ​

VitePluginContext.writeAutoGeneratedFile

writeDefaultFile() ​

writeDefaultFile(file, content, options?, ctx?): Promise<void>

Defined in: packages/vite/src/lib/context.ts:101

Parameters ​
file ​

string

content ​

string

options? ​
force? ​

boolean

still writes even if file exists

noHeader? ​

boolean

don't write the default header

ctx? ​

Partial<CodeGenContext>

Returns ​

Promise<void>

Inherited from ​

VitePluginContext.writeDefaultFile

Interfaces ​

VitePluginContext ​

Defined in: packages/vite/src/lib/context.ts:56

Extended by ​

Type Parameters ​

Paths ​

Paths

Opts ​

Opts

Properties ​

generator ​

generator: object

Defined in: packages/vite/src/lib/context.ts:63

Defines the generator info used when calling VitePluginContext.writeAutoGeneratedFile and VitePluginContext.writeDefaultFile You can (and should) override this when extending context

name ​

name: string

version ​

version: string

options ​

readonly options: ContextResolved<Paths, Opts>

Defined in: packages/vite/src/lib/context.ts:57

Methods ​

resolve() ​

resolve(base, ...paths): string

Defined in: packages/vite/src/lib/context.ts:81

Parameters ​
base ​

"root" | keyof Paths & string

paths ​

...string[]

Returns ​

string

Absolute path to desired resource

resolveBase() ​

resolveBase(base): string

Defined in: packages/vite/src/lib/context.ts:70

resolves a base path using options or defaults

Parameters ​
base ​

"root" | keyof Paths & string

Returns ​

string

resolvePackageJson() ​

resolvePackageJson(): Promise<{[key: string]: unknown; dependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>; description: string; name: string; version: string; }>

Defined in: packages/vite/src/lib/context.ts:86

Returns ​

Promise<{[key: string]: unknown; dependencies: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>; description: string; name: string; version: string; }>

writeAutoGeneratedFile() ​

writeAutoGeneratedFile(file, content, ctx?): Promise<void>

Defined in: packages/vite/src/lib/context.ts:94

Parameters ​
file ​

string

content ​

string

ctx? ​

Partial<CodeGenContext>

Returns ​

Promise<void>

writeDefaultFile() ​

writeDefaultFile(file, content, options?, ctx?): Promise<void>

Defined in: packages/vite/src/lib/context.ts:101

Parameters ​
file ​

string

content ​

string

options? ​
force? ​

boolean

still writes even if file exists

noHeader? ​

boolean

don't write the default header

ctx? ​

Partial<CodeGenContext>

Returns ​

Promise<void>

Type Aliases ​

ContextInput ​

ContextInput<Paths, Opts> = object & { [K in keyof Paths]?: string } & { [K in keyof Opts]?: Opts[K] }

Defined in: packages/vite/src/lib/context.ts:22

What the user passes to the context constructor. All path and option keys are optional overrides.

Type Parameters ​

Paths ​

Paths

Opts ​

Opts

Type Declaration ​

root ​

root: string


contextOptions ​

contextOptions<C> = C extends VitePluginContext<infer _Paths, infer _Opts> ? C["options"] : never

Defined in: packages/vite/src/lib/context.ts:183

Extracts the resolved options type (ctx.options) from a VitePluginContext instance or class.

Type Parameters ​

C ​

C


ContextResolved ​

ContextResolved<Paths, Opts> = object & { [K in keyof Paths]?: string } & Opts

Defined in: packages/vite/src/lib/context.ts:27

What ctx.options holds after construction. Path overrides are still optional; option defaults have been applied.

Type Parameters ​

Paths ​

Paths

Opts ​

Opts

Type Declaration ​

root ​

root: string


getPathMap ​

getPathMap<C> = C extends VitePluginContext<infer Paths, infer _Opts> ? keyof Paths & string : never

Defined in: packages/vite/src/lib/context.ts:179

Extracts the union of path names from a VitePluginContext instance or class.

Type Parameters ​

C ​

C

Functions ​

contextFactory() ​

contextFactory<Opts, Paths>(opts, config): (input) => VitePluginContext<Paths, Opts>

Defined in: packages/vite/src/lib/context.ts:159

Creates a typed VitePluginContext subclass with custom options and named paths.

Type Parameters ​

Opts ​

Opts extends Record<string, unknown>

Paths ​

Paths extends PathDefaults<keyof Paths & string>

Parameters ​

opts ​

Opts

Plugin option defaults. Keys become non-optional on ctx.options with their inferred type (e.g. string | false). Pass {} when you have no options.

config ​

object & NoOverlap<Opts, Paths>

Factory configuration.

Returns ​

(input) => VitePluginContext<Paths, Opts>

Example ​

ts
const MyContext = contextFactory(
  { serve: "/docs/" as string | false },
  { paths: { sourceDir: "./src", docsDir: "./docs" } },
);

class Context extends MyContext {
  generator = { name: "my-plugin", version: "1.0.0" };
}

const ctx = new Context({ root: config.root, serve: false });
ctx.options.serve      // false
ctx.options.sourceDir  // string | undefined
ctx.resolve("docsDir") // "<root>/docs"