A fast JavaScript/TypeScript parser library for Go, forked from esbuild.
Skyfire exposes esbuild's internal JavaScript parser as a public Go API. This enables:
- AST access: Full access to the parsed JavaScript/TypeScript AST
- Speed: Leverages esbuild's extremely fast parser
- ES6+ support: Handles modern JavaScript including modules, decorators, and class fields
- Error reporting: Detailed parse errors with line and column numbers
- Static analysis of JavaScript/TypeScript code
- Extracting metadata from ES6 modules (imports, exports, decorators)
- Building development tools that need to understand JS/TS structure
go get github.com/octoberswimmer/skyfirepackage main
import (
"fmt"
"github.com/octoberswimmer/skyfire/parser"
)
func main() {
source := `
import { foo } from 'bar';
export default class MyClass {
@api myProperty;
}
`
ast, err := parser.Parse(source, parser.Options{})
if err != nil {
fmt.Printf("Parse error: %v\n", err)
return
}
// Access imports, exports, classes, decorators, etc.
for _, imp := range ast.Imports {
fmt.Printf("Import: %s\n", imp.Path)
}
}MIT License - see LICENSE.md
This project is a fork of esbuild by Evan Wallace. The core parser code is from esbuild with modifications to expose it as a public API.