| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
parent directory.. | ||||
This package is a JavaScript version of a shell package written in Go, available at https://github.com/mvdan/sh.
It is transpiled from Go to JS using GopherJS, available at https://github.com/gopherjs/gopherjs
const sh = require('mvdan-sh')
const syntax = sh.syntax
var parser = syntax.NewParser()
var printer = syntax.NewPrinter()
var src = "echo 'foo'"
var f = parser.Parse(src, "src.sh")
// print out the syntax tree
syntax.DebugPrint(f)
console.log()
// replace all single quoted string values
syntax.Walk(f, function(node) {
if (syntax.NodeType(node) == "SglQuoted") {
node.Value = "bar"
}
return true
})
// print the code back out
console.log(printer.Print(f)) // echo 'bar'
You can find more samples in testmain.js.
The APIs listed below are wrapped to be usable in JavaScript. Follow the links to read their documentation.
Constructor options like syntax.KeepComments are also available.
The original io.Reader parameters can take a string or a stream.Readable object. io.Writer parameters are replaced by string returns.
The nodes you will find in the syntax tree are all equivalent to the nodes you will see on the Go API. To get the type of a node, use syntax.NodeType as the example above shows. Some of the most common node types include:
The five above will show up in your syntax tree if you parse a echo foo command, which you can see if you use syntax.DebugPrint to inspect the syntax tree.
| Back | FazBrowse Home | New Git URL |