@ianwremmel/pkgshift
Inspired by jscodeshift to help keep package.json consistent
Install
npm install @ianwremmel/pkgshift
or
npm install @ianwremmel/pkgshift
Usage
For the most up to date docs, run pkgshift --help
.
run
`pkgshift run ./package.json -t ./tranform.js
pkgshift
's only command, run
, applies a transform file to a package.json.
A transform file is of the form
module.exports = function transform(pkg, {api}) {
return Object.assign(pkg);
};
where transform
implements the transformCallback and api
is a reference to the TransformAPI.
API
TransformAPI
Helper methods passed to your transform function
Type: Object
setOrReplaceScript
Sets a script, or, if that script already exists, transforms it into the new script
Parameters
-
pkg
Package -
options
Object-
options.from
(string | RegExp) The original script definition. Must be an exact match, but if a RegExp is supplied, the substring matches will be available toto
-
options.name
string The name in pkg.scripts -
options.to
string The final script definition. Iffrom
is a RegExp,to
may include substring references.
-
Package
The Object defined by a package.json
Type: Object
pkgShift
Asynchronously apply the specified transform to the specified package.
Parameters
-
tx
transformCallback -
pkg
Package
transformCallback
Type: Function
Parameters
-
pkg
Package -
options
Object-
options.api
TransformAPI
-
Returns (Package | Promise<Package>)
apply
Asynchronously apply the specified transform to the specified package.
Parameters
-
tx
transformCallback -
pkg
Package
Meta
- deprecated: Please use pkgShift()
cli
Main command line entry point
Parameters
-
options
PkgShiftOptions (optional, default{}
)
PkgShiftOptions
Type: Object
Properties
-
path
string File to transform -
transform
string Path to the transform file. -
verbose
number Show more information about the transform process -
dry
boolean Dry run (no changes are made to files) -
print
boolean Print output, useful for development -
silent
boolean No output
pkgshift
Parameters
-
options
PkgShiftOptions
Meta
- deprecated: please use cli Main command line entry point
Maintainers
Contribute
See CONTRIBUTE
License
© MIT