Skip to content

Releases: facebook/jscodeshift

v17.1.1

01 Nov 01:18
Compare
Choose a tag to compare

[17.1.1] 2024-10-31

Fixed

  • Republished with temp dependency properly removed (#638, thanks @trivikr for reporting)

17.1.0

31 Oct 00:46
Compare
Choose a tag to compare

[17.1.0] 2024-10-30

Added

  • pkg.pr.new will now be used to build an npm pakage for each commit to the repo, allowing you to more easily test changes or use new features before an official release is cut. (#622, @Aslemammad)

Changed

Fixed

  • Removed old docs command from package.json since the new docs are in the website folder, which has instructions in its README.

17.0.0

06 Aug 19:58
Compare
Choose a tag to compare

[17.0.0] 2024-08-06

We needed to go from v0.x to a major release, and it may as well happen now. jscodeshift has been around for nine years though, so going to v1.0.0 didn't feel quite right. I've instead promoted the minor version number to a major version number, similar to what React did when it went from 0.14 to 15.0.

Fixed

  • Node.js 16 is now explicitly specified as the minimum required version. It was already required due to some dependencies requiring it, but this makes it explicit (#607, @trivikr)

Added

Changed

0.13.1

10 Jan 14:32
Compare
Choose a tag to compare

Changed

  • Switched from colors to chalk to mitigate a security vulnerability in [email protected].

Full Changelog: 0.13.0...0.13.1

v0.7.0

11 Dec 17:48
308e246
Compare
Choose a tag to compare

Added

Changed

  • Moved from BSD to MIT license

Fixed

  • No longer throw an error when calling jscodeshift on a non-existent path (#334, @threepointone)
  • Preserve the original file extension in remote files (#317, @samselikoff)

v0.6.4

30 Apr 16:29
Compare
Choose a tag to compare

Changed

  • Allow writing tests in TypeScript (#308)
  • Better handling of .gitingore files: Ignore comments and support \r\n line breaks (#306)

v0.6.3

22 Jan 21:10
Compare
Choose a tag to compare

Fixed

  • Don't throw an error when jscodeshift processes an empty set of files (#295, @skovhus).
  • renameTo should not rename class properties (#296, @henryqdineen).
  • Custom/unknown CLI parameters are parsed as JSON, just like nomnom used to do.

v0.6.2

06 Dec 01:01
Compare
Choose a tag to compare

Changed

  • @babel/register/@babel/preset-env is configured to not transpile any
    language features that the running Node process supports. That means if you use
    features in your transform code supported by the Node version you are running,
    they will be left as is. Most of ES2015 is actually supported since Node v6.
  • Do not transpile object rest/spread in transform code if supported by running
    Node version.

Fixed

  • Presets and plugins passed to @babel/register are now properly named and
    loaded.

v0.6.1

05 Dec 07:10
Compare
Choose a tag to compare

Added

  • Tranform files can be written in Typescript. If the file extension of the
    transform file is .ts or .tsx, @babel/preset-typescript is used to
    convert them. This requires the --babel option to be set (which it is by
    default). ( #287 , @brieb )

Changed

  • The preset and plugins for converting the transform file itself via babeljs
    have been updated to work with babel v7. This included removing
    babel-preset-es2015 and babel-preset-stage-1 in favor of
    @babel/preset-env. Only @babel/proposal-class-properties and
    @babel/proposal-object-rest-spread are enabled as experimental features. If
    you want to use other's in your transform file, please create a PR.

Fixed

  • Typescript parses use @babel/parser instead of Babylon ( #291, @elliottsj )

Bumped

  • micromatch => v3.1.10, which doesn't (indirectly) depend on randomatic <
    v3 anymore (see #292).

v0.6.0

04 Dec 00:54
Compare
Choose a tag to compare

A bunch of changes to get jscodeshift in a better shape. This is minor version update because important dependencies and parser configurations have changed.


New

  • New CLI option --parser-config: This option accepts a path to a JSON file and overrides the default options for flow or babylon. This allows you to tweak parser settings (e.g. legacy decorators). (46d250f)
  • New CLI option --stdin: If provided, the list of files/directories is read from stdin. This makes it easier to pass large lists of files. (b6eaa0a)
  • New API in transforms: api.report lets you print arbitrary text to stdout. Useful if another tools consumes jscodeshift's stdout. (c902a00) Example:
// In the transform
api.report('some data');

// in stdout
 REP path/to/file.js some data
  • Support for Typescript source code, via babylon ( #286 ; @brieb). Use --parser=ts or --parser=tsx.

Improvements

Fixes

  • JSXElements's hasAttributes method understands value-less Boolean attributes (#277 , @artemruts )
  • More reliable printing to stdout (62b12ad)

Internal

  • Replaces deprecated nomnom with own implementation (a2becc5)
  • Remove direct dependency on lodash (4701096)