5 releases (3 breaking)

0.4.0 May 9, 2021
0.3.0 May 7, 2021
0.2.2 May 7, 2021
0.2.0 May 4, 2021
0.1.0 Apr 26, 2021

#4 in #mv

MIT license

105KB
719 lines

mvts: like mv but for TypeScript files

mvts is a a tool for moving TypeScript files and updating their relative imports and affected files. This is WIP but works on my machine :).

Usage

mvts takes two arguments: source_file_path and target_file_path.

mvts source_file.ts some_folder/another_folder/moved_source_file.ts

mvts moves source file to target_file_path and edits it's imports so that they are correct in the new location. mvts finds all files that import moved file and updates them accordingly.

Screenshot of git status after using mvts

A screenshot of a sample move with mvts

Installation

mvts can be installed with cargo

cargo install mvts

Building

$ git clone https://github.com/pheis/mvts
$ cd mvts
$ cargo build --release
$ ./target/release/mvts --version
0.2.0

Features and missing features

  • Handling relateive node import statements (no .ts/tsx suffix)
  • Moving single ts/tsx file and updating it's imports
  • Updatating affected files imports to moved file
  • Parallel processing
  • Renaming folder containing multiple files
  • Handling require() and import functions()
  • Handling Deno imports (with .ts/tsx suffix)
  • Handling .svg etc imports
  • Handling glob patters in argumentsts

Dependencies

~27–36MB
~816K SLoC