@argdown/core
    Preparing search index...

    Class ExplodeArgumentsPlugin

    A plugin that can be added to an [[ArgdownApplication]] with app.AddPlugin(plugin, processorId).

    Can walk the Argdown AST by using tokenListeners and ruleListeners. Should use the run method for everything else.

    Plugins should avoid keeping any local mutable state. Instead they should use the provided request object for configuration and the provided response object for returning any produced or transformed data. The only exceptions are I/O operations (e.g. loading or saving files).

    See the guide on writing custom plugins for more information.


    import {IArgdownRequest, IArgdownResponse, IArgdownPlugin, IRequestHandler, IRuleTokenHandler, ArgdownPluginError, RuleNames} from "@argdown/core";

    export interface IGreetingSettings{
    addHello?:boolean;
    }
    // We augment the request and response types from @argdown/core
    // to add our plugin settings and data:
    declare module "@argdown/core"{
    interface IArgdownRequest{
    greeting?:IGreetingSettings;
    }
    interface IArgdownResponse{
    greeting:string;
    }
    }

    export class GreetingPlugin implements IArgdownPlugin{
    name = "GreetingPlugin";
    prepare:IRequestHandler = (request, response)=>{
    // check if requirements are met
    if(!response.ast){
    throw new ArgdownPluginError(this.name, "No ast found in response.");
    }
    // create default settings
    if(!request.greeting){
    request.greeting = {};
    }
    if(request.greeting.sayHello === undefined){
    request.greeting.sayHello = true;
    }
    };
    run:IRequestHandler = (request, response)=>{
    if(request.greeting && request.greeting.addHello){
    // adding data to response object
    response.greeting = "Hallo World!";
    }
    };
    ruleListeners = {
    [RuleNames.STATEMENT + "Entry"]: (request, response, node, parentNode, childIndex, logger)=>{
    // use the logger parameter instead of console.log
    logger.log("verbose", `Statement: ${node.statement.text}`);
    }
    }
    }

    Implements

    Index

    Constructors

    Properties

    name: string = "ExplodeArgumentsPlugin"

    The name of the plugin

    run: IRequestHandler = ...

    Use this method to do the main work outside of the Argdown AST. This is the last method to be called by the [[ArgdownApplication]].

    Methods