good morning!!!!

Skip to content
Snippets Groups Projects
dialer.go 556 B
Newer Older
a's avatar
a committed
package codecs

import (
	"context"
a's avatar
a committed
	"errors"
	"fmt"
a's avatar
a committed
	"net/url"

a's avatar
a committed
	"gfx.cafe/open/jrpc/pkg/jsonrpc"
a's avatar
a committed
)

a's avatar
a committed
var ErrSchemeNotSupported = errors.New("url scheme not supported")

a's avatar
a committed
func DialContext(ctx context.Context, u string) (jsonrpc.Conn, error) {
a's avatar
a committed
	pu, err := url.Parse(u)
	if err != nil {
		return nil, err
	}
a's avatar
a committed
	dialer := dialers[pu.Scheme]
	if dialer == nil {
		return nil, fmt.Errorf("%w: %s", ErrSchemeNotSupported, pu.Scheme)
a's avatar
a committed
	}
a's avatar
a committed
	return dialer(ctx, u)
a's avatar
a committed
}

a's avatar
a committed
func Dial(u string) (jsonrpc.Conn, error) {
a's avatar
a committed
	ctx := context.Background()
	return DialContext(ctx, u)
}