Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

better-name

Package Overview
Dependencies
Maintainers
1
Versions
27
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

better-name

CLI to rename ES2015 module files

  • 0.7.3
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
38
increased by52%
Maintainers
1
Weekly downloads
 
Created
Source

better-name

CircleCI Coverage Status npm version

A CLI to move JavaScript(ES2015) module files keeping dependencies.

If you have the following JavaScript files coupled with import/export dependencies and you want to refactor via moving the target.js to another directory.

// src/index.js

import { someFn } from './oldFile';

export default function main() {
  someFn();
}
// src/oldFile.js

export function someFn() {
  return 'test';
}

This CLI keeps their dependencies. In other words, after better-name src/oldFile.js src/feat/newFile.js, the import declaration in the index.js file gets updated with the new dependencies:

// src/index.js

import { someFn } from './feat/newFile';

export default function main() {
  someFn();
}

Install

npm -g install better-name

Usage

better-name [options] <fromFile> <toFile>

Exec better-name --help if you want more details :smile:

Configure

Project file patterns

By default, this CLI searches files to be replaced via src/**/*.{js,jsx,mjs,ts,tsx} glob pattern. You can customize the glob pattern with --pattern option or configuring in package.json:

  /* package.json */
  "betterName": {
    "patterns": [
      "src/javascript/**/*.{js,jsx}",
      "src/styles/**/*.css"
    ]
  },
Root import

Root path mapping using babel-plugin-root-import is supported. Path mapping configuration is loaded automaticcaly if your .babelrc has babel-plugin-root-import section.

You also can configure path mapping via package.json such as:

  /* package.json */
  "betterName": {
    "rootImport": [{
      "rootPathPrefix": "~",
      "rootPathSuffix": "src/js"
    }, {
      "rootPathPrefix": "@",
      "rootPathSuffix": "other-src/js"
    }, {
      "rootPathPrefix": "#",
      "rootPathSuffix": "../../src/in/parent"
    }]
  }

If you want to avoid prefixing after replacing, --normalize-root-import CLI option or the following package.json setting is available:

  /* package.json */
  "betterName": {
    "normalizeRootImport": true
  }
Format with Prettier

This CLI format your code after replace import declarations if your project has Prettier config file(.prettierrc, .prettierrc.js,,,). You can turn on this behavior passing --prettier options to CLI.

Remarks

Available file types

This CLI can replace import declarations in the following file types:

  • JavaScript: .js, .jsx, .mjs
  • TypeScript: .ts, .tsx

And imports non-JavaScript files are allowed. For example:

/* some.component.jsx */

import styles from './some.component.css';

// ...

However, non-JavaScript import(i.e. @import in CSS) could not be replaced.

License

MIT. See LICENSE file under the this repository.

Keywords

FAQs

Package last updated on 29 Jan 2020

Did you know?

Socket

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
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc