//go:build with_script

package script

import (
	"context"

	"github.com/sagernet/sing-box/adapter"
	C "github.com/sagernet/sing-box/constant"
	"github.com/sagernet/sing-box/option"
	E "github.com/sagernet/sing/common/exceptions"
	"github.com/sagernet/sing/common/logger"
)

func NewScript(ctx context.Context, logger logger.ContextLogger, options option.Script) (adapter.Script, error) {
	switch options.Type {
	case C.ScriptTypeSurge:
		return NewSurgeScript(ctx, logger, options)
	default:
		return nil, E.New("unknown script type: ", options.Type)
	}
}
