Type alias Plugin<PluginParameters, Input, Output>

Plugin<PluginParameters, Input, Output>: ((this, ...parameters) => Input extends string
    ? Output extends Node | undefined
        ? undefined | void
        : never
    : Output extends CompileResults
        ? Input extends Node | undefined
            ? undefined | void
            : never
        : Transformer<Input extends Node
            ? Input
            : Node, Output extends Node
            ? Output
            : Node> | undefined | void)

Single plugin.

Plugins configure the processors they are applied on in the following ways:

  • they change the processor, such as the parser, the compiler, or by configuring data
  • they specify how to handle trees and files

In practice, they are functions that can receive options and configure the processor (this).

👉 Note: plugins are called when the processor is frozen, not when they are applied.

Type Parameters

Type declaration

    • (this, ...parameters): Input extends string
          ? Output extends Node | undefined
              ? undefined | void
              : never
          : Output extends CompileResults
              ? Input extends Node | undefined
                  ? undefined | void
                  : never
              : Transformer<Input extends Node
                  ? Input
                  : Node, Output extends Node
                  ? Output
                  : Node> | undefined | void
    • Parameters

      Returns Input extends string
          ? Output extends Node | undefined
              ? undefined | void
              : never
          : Output extends CompileResults
              ? Input extends Node | undefined
                  ? undefined | void
                  : never
              : Transformer<Input extends Node
                  ? Input
                  : Node, Output extends Node
                  ? Output
                  : Node> | undefined | void