babel

package module
v0.0.0-...-0fd7cbe Latest Latest
Warning

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

Go to latest
Published: Aug 25, 2020 License: BSD-3-Clause Imports: 11 Imported by: 0

README

goja-babel

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

WARNING: This uses Babel v6.26 which is not the latest. Feel free to create a PR updating it to the latest.

WARNING: This is largely untested and the exposed API may change at any time.

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-es2015-block-scoping",
		},
	})
	if err != nil {
		panic(err)
	}
	io.Copy(os.Stdout, res)
	fmt.Println("")
}
var foo = 1;
React.createElement(
	"div",
	null,
	"Hello JSX! The value of foo is ",
	foo,
	"."
);

Benchmarks

$ go test -bench Transform -benchmem
BenchmarkTransformString-8                    	     200	   6042202 ns/op	  925350 B/op	   15779 allocs/op
BenchmarkTransformStringWithSingletonPool-8   	     200	   5976874 ns/op	  927350 B/op	   15809 allocs/op
BenchmarkTransformStringWithLargePool-8       	     300	   5892891 ns/op	  926572 B/op	   15799 allocs/op
PASS
ok  	github.com/jvatic/goja-babel	20.346s

Documentation

Index

Constants

View Source
const DefaultPoolSize = 1

Variables

This section is empty.

Functions

func Asset

func Asset(name string) ([]byte, error)

Asset loads and returns the asset for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetDir

func AssetDir(name string) ([]string, error)

AssetDir returns the file names below a certain directory embedded in the file by go-bindata. For example if you run go-bindata on data/... and data contains the following hierarchy:

data/
  foo.txt
  img/
    a.png
    b.png

then AssetDir("data") would return []string{"foo.txt", "img"} AssetDir("data/img") would return []string{"a.png", "b.png"} AssetDir("foo.txt") and AssetDir("notexist") would return an error AssetDir("") will return []string{"data"}.

func AssetInfo

func AssetInfo(name string) (os.FileInfo, error)

AssetInfo loads and returns the asset info for the given name. It returns an error if the asset could not be found or could not be loaded.

func AssetNames

func AssetNames() []string

AssetNames returns the names of the assets.

func Init

func Init(poolSize int) (err error)

func MustAsset

func MustAsset(name string) []byte

MustAsset is like Asset but panics when Asset would return an error. It simplifies safe initialization of global variables.

func RestoreAsset

func RestoreAsset(dir, name string) error

RestoreAsset restores an asset under the given directory

func RestoreAssets

func RestoreAssets(dir, name string) error

RestoreAssets restores an asset under the given directory recursively

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