babel

package module
v0.0.0-...-d1b44b0 Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2024 License: BSD-3-Clause Imports: 7 Imported by: 12

README

goja-babel

CI

Uses github.com/dop251/goja to run babel.js within Go.

Usage

package main

import (
	"fmt"
	"io"
	"os"
	"strings"

	"github.com/jvatic/goja-babel"
)

func main() {
	babel.Init(4) // Setup 4 transformers (can be any number > 0)
	res, err := babel.Transform(strings.NewReader(`let foo = 1;
	<div>
		Hello JSX!
		The value of foo is {foo}.
	</div>`), map[string]interface{}{
		"plugins": []string{
			"transform-react-jsx",
			"transform-block-scoping",
		},
	})
	if err != nil {
		panic(err)
	}
	io.Copy(os.Stdout, res)
	fmt.Println("")
}
$ go run main.go
var foo = 1;

/*#__PURE__*/
React.createElement("div", null, "Hello JSX! The value of foo is ", foo, ".");

Benchmarks

go test -bench Transform -benchmem
goos: darwin
goarch: amd64
pkg: github.com/jvatic/goja-babel
cpu: Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz
BenchmarkTransformString-8                    	      81	  15642708 ns/op	 3069085 B/op	   37243 allocs/op
BenchmarkTransformStringWithSingletonPool-8   	      67	  15820676 ns/op	 3070920 B/op	   37244 allocs/op
BenchmarkTransformStringWithLargePool-8       	      78	  15497562 ns/op	 3070015 B/op	   37243 allocs/op
PASS
ok  	github.com/jvatic/goja-babel	4.993s

Documentation

Index

Constants

View Source
const DefaultPoolSize = 1

Variables

This section is empty.

Functions

func Init

func Init(poolSize int) (err error)

func Transform

func Transform(src io.Reader, opts map[string]interface{}) (io.Reader, error)

func TransformString

func TransformString(src string, opts map[string]interface{}) (string, error)

Types

This section is empty.

Jump to

Keyboard shortcuts

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