npm promotes metadefinitions

    ast-transform

    0.0.0 • Public • Published

    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.

    Install

    npm i ast-transform

    DownloadsWeekly Downloads

    639,801

    Version

    0.0.0

    License

    MIT

    Last publish

    Collaborators

    • avatar