Skip to content

Advanced Plugin Features v3.5.0

Decorators

go
plugins.FuncSpec{
	Name:      "add",
	Decorates: "@gripmock/add",
	Fn: func(base func(context.Context, ...any) (any, error)) func(context.Context, ...any) (any, error) {
		return func(ctx context.Context, args ...any) (any, error) {
			val, err := base(ctx, args...)
			if err != nil {
				return nil, err
			}
			switch v := val.(type) {
			case float64:
				return v + 1, nil
			case int:
				return v + 1, nil
			default:
				return val, nil
			}
		}
	},
}

Groups

go
plugins.FuncSpec{
	Name:  "crc32",
	Fn:    crc32Function,
	Group: "crc",
}

Replacement

go
plugins.FuncSpec{
	Name:        "md5",
	Fn:          md5Function,
	Replacement: "sha256",
}