func newResolver()

in lib/notifiers/jsonpath.go [35:56]


func newResolver(cfg *Config) (BindingResolver, error) {
	jps := map[string]*inputAndJSONPath{}
	for name, path := range cfg.Spec.Notification.Params {
		p, err := makeJSONPath(path)
		if err != nil {
			return nil, fmt.Errorf("failed to derive substitution path from %q: %v", path, err)
		}
		j := jsonpath.New(name).AllowMissingKeys(false)
		if err := j.Parse(p); err != nil {
			return nil, fmt.Errorf("failed to parse JSONPath expression from %q: %v", path, err)
		}

		jps[name] = &inputAndJSONPath{
			j: j,
			p: path, // Use the user-provided path so error messages are easier to understand.
		}
	}
	return &jpResolver{
		jps: jps,
		cfg: cfg,
	}, nil
}