A WASM shell parser and formatter with bash support, based on mvdan/sh
# yarn
yarn add sh-syntax
# npm
npm i sh-syntax
// node
import { parse, print } from 'sh-syntax'
const text = "echo 'Hello World!'"
const ast = await parse(text)
const newText = await print(ast, {
// `originalText` is required for now, hope we will find better solution later
originalText: text,
})
// browser
import { getProcessor } from 'sh-syntax'
const processor = getProcessor(() =>
fetch('sh-syntax/main.wasm').then(res => res.arrayBuffer()),
)
const parse = (text, options) => processor(text, options)
const print = (textOrAst, options) => {
if (typeof textOrAst === 'string') {
return processor(textOrAst, {
...options,
print: true,
})
}
return processor(textOrAst, options)
}
// just like node again
const text = "echo 'Hello World!'"
const ast = await parse(text)
const newText = await print(ast, { originalText: text })
1stG | RxTS | UnTS |
---|---|---|
1stG | RxTS | UnTS |
---|---|---|
Detailed changes for each release are documented in CHANGELOG.md.