Socket
Socket
Sign inDemoInstall

grunt-jscodeshift

Package Overview
Dependencies
308
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    grunt-jscodeshift

Grunt task to run codemods using jscodeshift


Version published
Weekly downloads
609
decreased by-23.4%
Maintainers
1
Install size
23.9 MB
Created
Weekly downloads
 

Readme

Source

grunt-jscodeshift

Grunt task to run codemods using jscodeshift

Common Usage

jscodeshift is a tool for running codemods over multiple js files in parallel, which is great for refactoring large codebases. Read more about it here.
grunt-jscodeshift is a simple Grunt task that wraps the jscodeshift runner and lets you execute transformations as part of your Grunt workflow.

Example (somewhat contrived)

Original source code file code.js

var myHeading = document.querySelector('h1');
myHeading.textContent = 'Hello world!';

Transform file transform.js

module.exports = function transformer(file, api) {
  var j = api.jscodeshift;

  return j(file.source)
    .find(j.Identifier)
    .replaceWith(function(p) {
      return j.identifier(p.node.name.split('').reverse().join('')); })
    .toSource();
};

Transformed source code file code.js

var gnidaeHym = tnemucod.rotceleSyreuq('h1');
gnidaeHym.tnetnoCtxet = 'Hello world!';

Getting Started

This plugin requires Grunt ~0.4.5

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-jscodeshift --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-jscodeshift');

The "jscodeshift" task

grunt.initConfig({
  "jscodeshift": {
    "some-target": {
      "options": {
        "transform": "./transform.js"
      },
      "src": ["src/**/*.js"]
    }
  },
});

Since jscodeshift is designed for code-modifications, it overwrites the source files it iterates over.
If this is not your desired behavior, clone the files beforehand with grunt-contrib-copy.

Options

The options object is passed to jscodeshift. See the jscodeshift documentation for all options.

options.transform

Type: String Default value: './transform.js'

Path to the transform file.

Contributing

Feel free to open issues and send pull-requests.

Running tests

Run npm test

Keywords

FAQs

Last updated on 08 Mar 2016

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc