This API exposes esbuild's two main operations: building and transforming. It's intended for integrating esbuild into other tools as a library. If you are just trying to run esbuild from Go without the overhead of creating a child process, there is also an API for the command-line interface itself: https://godoc.org/github.com/evanw/esbuild/pkg/cli. Build API This function runs an end-to-end build operation. It takes an array of file paths as entry points, parses them and all of their dependencies, and returns the output files to write to the file system. The available options roughly correspond to esbuild's command-line flags. Example usage: package main import ( "os" "github.com/evanw/esbuild/pkg/api" ) func main() { result := api.Build(api.BuildOptions{ EntryPoints: []string{"input.js"}, Outfile: "output.js", Bundle: true, Write: true, LogLevel: api.LogLevelInfo, }) if len(result.Errors) > 0 { os.Exit(1) } } Transform API This function transforms a string of source code into JavaScript. It can be used to minify JavaScript, convert TypeScript/JSX to JavaScript, or convert newer JavaScript to older JavaScript. The available options roughly correspond to esbuild's command-line flags. Example usage: package main import ( "fmt" "os" "github.com/evanw/esbuild/pkg/api" ) func main() { jsx := ` import * as React from 'react' import * as ReactDOM from 'react-dom' ReactDOM.render( <h1>Hello, world!</h1>, document.getElementById('root') ); ` result := api.Transform(jsx, api.TransformOptions{ Loader: api.LoaderJSX, }) fmt.Printf("%d errors and %d warnings\n", len(result.Errors), len(result.Warnings)) os.Stdout.Write(result.Code) }
Optional user-specified data that is passed through unmodified. You can use this to stash the original error, for example.
////////////////////////////////////////////////////////////////////////////// Build API
////////////////////////////////////////////////////////////////////////////// Serve API

type ServeOptions struct {
	Port      uint16
	Host      string
	Servedir  string
	OnRequest func(ServeOnRequestArgs)
}

type ServeOnRequestArgs struct {
	RemoteAddress string
	Method        string
	Path          string
	Status        int
	TimeInMS      int // The time to generate the response, not to send it
}

type ServeResult struct {
	Port uint16
	Host string
	Wait func() error
	Stop func()
}

func ( ServeOptions,  BuildOptions) (ServeResult, error) {
	return serveImpl(, )
}