yjryu / UI_Layout star
File name
Commit message
Commit date
yjryu 01-10 08c2192 240110 류윤주 commit UNIX

ast-transform Flattr this!experimental#

Convenience wrapper for performing AST transformations with
browserify transform streams. Note that it doesn't
handle source maps nicely, though pull requests are welcome!

Usage#

ast-transform

ast(transform[, opts])#

Where transform is a function that takes a filename and returns a function,
e.g.:

var replace = require('replace-method')
var ast = require('ast-transform')
var path = require('path')

module.exports = ast(function (file) {
  if (path.extname(file) !== '.js') return

  return function(ast, done) {
    // replace require calls with
    // strings for some reason
    replace(ast)(['require'], function(node) {
      return { type: 'Literal', value: 'replaced!' }
    })

    done()
  }
})

Note that you can return a falsey value instead of a function to bail the
stream early and avoid the parse/deparse overhead. Here's an example of using
the above with browserify:

var browserify = require('browserify')
var example = require('./example')
var fs = require('fs')

browserify('./index.js')
  .transform(example)
  .bundle()
  .pipe(fs.createWriteStream(__filename + '/bundle.js'))

License#

MIT. See LICENSE.md for details.