Modify code like a cheese! Using recast for AST modifications.
Install npm package:
# using yarn
yarn add --dev paneer
# using npm
npm install -D paneer
Import utilities:
// ESM / Bundler
import { parse, compile } from 'paneer'
import * as p from 'paneer'
// CommonJS
const { parse, compile } = require('panner')
const p = require('panner')
Example: Modify a file:
config.js
:
export default {
foo: ['a']
}
Code to modify and append b
to foo
prop of defaultExport:
import { load, write } from 'paneer'
const ast = await load('config.js')
ast.exports.default.props.foo.push('b')
await write(ast)
Updated config.js
:
export default {
foo: ['a', "b"]
}
Example: Directly use AST utils:
import * as p from 'paneer'
// Parse to AST
const ast = p.parse(`export default { foo: ['a'] }`)
// Find default export
const defaultExport = p.defaultExport(ast)
// Get foo prop of object
const foo = p.get(p.defaultExport(ast), 'foo')
// Push 'b' literal to array
p.push(foo, 'b')
// Generate code
const { code, map } = p.generate(node)
MIT