js

package
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 10, 2023 License: AGPL-3.0 Imports: 19 Imported by: 1

Documentation

Overview

Package js the JavaScript implementation

Index

Constants

View Source
const (
	// DefaultMaxTimeToWaitGetVM default retries time
	DefaultMaxTimeToWaitGetVM = 500 * time.Millisecond
	// DefaultMaxRetriesGetVM default retries times
	DefaultMaxRetriesGetVM = 3
)

Variables

View Source
var (

	// ErrSchedulerClosed the scheduler is closed error
	ErrSchedulerClosed = errors.New("scheduler is closed")
)

Functions

func EnableConsole

func EnableConsole(vm *goja.Runtime)

EnableConsole enables the console

func Run

func Run(ctx context.Context, p common.Program) (goja.Value, error)

Run the js program

func RunString

func RunString(ctx context.Context, script string) (goja.Value, error)

RunString the js string

func SetScheduler

func SetScheduler(s Scheduler)

SetScheduler makes s the default Scheduler.

Types

type Cat

type Cat struct {
	BaseURL string
	URL     string `js:"url"`
	// contains filtered or unexported fields
}

Cat an analyzer context

func NewCat

func NewCat(ctx *parser.Context) *Cat

NewCat returns a new Cat instance

func (*Cat) Cancel

func (c *Cat) Cancel()

Cancel this context releases resources associated with it, so code should call cancel as soon as the operations running in this Context complete.

func (*Cat) ClearVar

func (c *Cat) ClearVar()

ClearVar clean all values

func (*Cat) GetElement

func (c *Cat) GetElement(key string, value any, arg string) (str string, err error)

GetElement gets the string of the content with the given arguments

func (*Cat) GetElements

func (c *Cat) GetElements(key string, value any, arg string) (str []string, err error)

GetElements gets the string of the content with the given arguments

func (*Cat) GetString

func (c *Cat) GetString(key string, value any, arg string) (str string, err error)

GetString gets the string of the content with the given arguments

func (*Cat) GetStrings

func (c *Cat) GetStrings(key string, value any, arg string) (str []string, err error)

GetStrings gets the string of the content with the given arguments

func (*Cat) GetVar

func (c *Cat) GetVar(call goja.FunctionCall, vm *goja.Runtime) goja.Value

GetVar returns the value associated with this context for key, or nil if no value is associated with key.

func (*Cat) Log

func (c *Cat) Log(call goja.FunctionCall, vm *goja.Runtime) goja.Value

Log print the msg to logger

func (*Cat) SetVar

func (c *Cat) SetVar(key string, value goja.Value) error

SetVar value associated with key is val.

type Options

type Options struct {
	InitialVMs         int           `yaml:"initial-vms"`
	MaxVMs             int           `yaml:"max-vms"`
	MaxRetriesGetVM    int           `yaml:"max-retries-get-vm"`
	MaxTimeToWaitGetVM time.Duration `yaml:"max-time-to-wait-get-vm"`
	UseStrict          bool          `yaml:"use-strict"`
	ModulePath         []string      `yaml:"module-path"`
}

Options Scheduler options

type Scheduler

type Scheduler interface {
	// Get the VM
	Get() (VM, error)
	// Release the VM
	Release(VM)
	// Close the scheduler
	Close() error
}

Scheduler the VM scheduler

func GetScheduler

func GetScheduler() Scheduler

GetScheduler returns the default Scheduler.

func NewScheduler

func NewScheduler(opt Options) Scheduler

NewScheduler returns a new Scheduler

type VM

type VM interface {
	// Run the js program
	Run(context.Context, common.Program) (goja.Value, error)
	// RunString the js string
	RunString(context.Context, string) (goja.Value, error)
}

VM the js runtime. An instance of VM can only be used by a single goroutine at a time.

Directories

Path Synopsis
Package common the js common
Package common the js common
Package modules the JS module
Package modules the JS module
cache
Package cache the cache JS implementation
Package cache the cache JS implementation
cookie
Package cookie the cookie JS implementation
Package cookie the cookie JS implementation
crypto
Package crypto the crypto JS implementation
Package crypto the crypto JS implementation
encoding
Package encoding the encoding JS implementation
Package encoding the encoding JS implementation
http
Package http the http JS implementation
Package http the http JS implementation
Package modulestest the module test vm
Package modulestest the module test vm

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL