Neoanthropic Preternatural Murmurings

    jscodeshift-collections

    2.0.2 • Public • Published

    jscodeshift-collections

    Build and Deploy npm version Coverage Status semantic-release Conventional Commits

    Some more Collections for jscodeshift for easy and terse api for writing Codemods

    Install

    npm install jscodeshift-collections
    

    Usage

    const jscsCollections = require('jscodeshift-collections');
    
    module.exports = function(fileInfo, api) {
      const j =  api.jscodeshift;
    
      jscsCollections.registerCollections(j);
    
      return j(fileInfo.source)
        .findFunctionDeclarations('foo')
        .renameTo('bar')
        .toSource();
    }

    FunctionDeclaration

    Say for example, if you want to rename a function declaration foo to bar

    Transform with new Collection API

    j.findFunctionDeclarations('foo')
     .renameTo('bar')

    Before

    function foo() {
    }

    After

    function bar() {
    }

    List of Collections:

    FunctionDeclaration

    // Find all function declarations
    j.findFunctionDeclarations()
    
    // Find all function declarations with name=foo and rename them to bar
    j.findFunctionDeclarations('foo')
        .renameTo('xyz');
    
    // Find and remove params
      j.findFunctionDeclarations('bar')
        .removeParam('a');
    
    // Find and add params
      j.findFunctionDeclarations('bar')
        .addParam('d');

    CallExpression

    // Find all call expressions
      j.findCallExpressions();
    
    // Find all member expressions
      j.findCallExpressions('foo.bar');
    
    
    // Find all nested member expressions
      j.findCallExpressions('foo.bar.baz');
    
    // Find and rename call expressions
      j.findCallExpressions('foo')
      .renameTo('xyz');
    
    // Find and rename member expressions
      j.findCallExpressions('foo')
      .renameTo('foo.bar');
    
    //  Find and remove params
      j.findCallExpressions('bar')
      .removeParam('a');
    
    // Find and add params
      j.findCallExpressions('bar')
      .addParam('d');

    ImportDeclaration

    // Find all import declarations
      j.findImportDeclarations();
    
    // Find and rename
      j.findImportDeclarations('a')
      .renameTo('xyz');
    
    // Find and remove specifiers
      j.findImportDeclarations('a')
      .removeSpecifier('a');
    
    // Find and add specifiers
      j.findImportDeclarations('a')
      .addSpecifier('c');

    Install

    npm i jscodeshift-collections

    DownloadsWeekly Downloads

    5

    Version

    2.0.2

    License

    MIT

    Unpacked Size

    266 kB

    Total Files

    17

    Last publish

    Collaborators

    • rajasegar