plugin.ts

view source

Declarations
#

6 declarations

Plugin
#

plugin.ts view source

Plugin<TPluginContext> import type {Plugin} from '@fuzdev/gro/plugin.js';

Gro Plugins enable custom behavior during gro dev and gro build. In contrast, Adapters use the results of gro build to produce final artifacts.

generics

Plugin<TPluginContext extends PluginContext = PluginContext>
TPluginContext
constraint PluginContext

name

type string

setup?

type (ctx: TPluginContext): void | Promise<void>

ctx

type TPluginContext
returns void | Promise<void>

adapt?

type (ctx: TPluginContext): void | Promise<void>

ctx

type TPluginContext
returns void | Promise<void>

teardown?

type (ctx: TPluginContext): void | Promise<void>

ctx

type TPluginContext
returns void | Promise<void>

plugin_replace
#

plugin.ts view source

(plugins: Plugin<PluginContext<object>>[], new_plugin: Plugin<PluginContext<object>>, name?: string): Plugin<PluginContext<object>>[] import {plugin_replace} from '@fuzdev/gro/plugin.js';

Replaces a plugin by name in plugins without mutating the param. Throws if the plugin name cannot be found.

plugins

accepts the same types as the return value of PluginsCreateConfig

type Plugin<PluginContext<object>>[]

new_plugin

type Plugin<PluginContext<object>>

name

-

type string
default new_plugin.name

returns

Plugin<PluginContext<object>>[]

plugins with new_plugin at the index of the plugin with name

PluginContext
#

plugin.ts view source

PluginContext<TArgs> import type {PluginContext} from '@fuzdev/gro/plugin.js';

generics

PluginContext<TArgs = object>
TArgs
default object

inheritance

extends: TaskContext<TArgs>

dev

type boolean

watch

type boolean

Plugins
#

plugin.ts view source

import {Plugins} from '@fuzdev/gro/plugin.js';

See Plugins.create for a usage example.

generics

Plugins<TPluginContext extends PluginContext>
TPluginContext
constraint PluginContext

ctx

type TPluginContext

readonly

instances

type Plugin<TPluginContext>[]

readonly

constructor

type new <TPluginContext extends PluginContext>(ctx: TPluginContext, instances: Plugin<PluginContext<object>>[]): Plugins<TPluginContext>

ctx

type TPluginContext

instances

type Plugin<PluginContext<object>>[]

create

type <TPluginContext extends PluginContext>(ctx: TPluginContext): Promise<Plugins<TPluginContext>>

static

ctx

type TPluginContext
returns Promise<Plugins<TPluginContext>>

setup

type (): Promise<void>

returns Promise<void>

adapt

type (): Promise<void>

returns Promise<void>

teardown

type (): Promise<void>

returns Promise<void>

PluginsCreateConfig
#

plugin.ts view source

PluginsCreateConfig<TPluginContext> import type {PluginsCreateConfig} from '@fuzdev/gro/plugin.js';

generics

PluginsCreateConfig<TPluginContext extends PluginContext = PluginContext>
TPluginContext
constraint PluginContext

(call)

type (ctx: TPluginContext): Plugin<TPluginContext>[] | Promise<Plugin<TPluginContext>[]>

ctx

type TPluginContext
returns Plugin<TPluginContext>[] | Promise<Plugin<TPluginContext>[]>

to_plugin_context
#

plugin.ts view source

<TArgs>(ctx: TaskContext<TArgs>, dev: boolean, watch: boolean): PluginContext<TArgs> import {to_plugin_context} from '@fuzdev/gro/plugin.js';

Widens a TaskContext to a PluginContext by adding dev and watch. Copies property descriptors rather than spreading, because svelte_config is a lazy getter - spreading would call it, resolving the Svelte config even for a plugin set that never reads it, and pinning whichever promise it returned instead of the memoized one.

ctx

type TaskContext<TArgs>

dev

type boolean

watch

type boolean

returns

PluginContext<TArgs>

generics

to_plugin_context<TArgs>
TArgs

Depends on
#

Imported by
#