@putout/plugin-package-json
v9.1.1
Published
🐊Putout plugin for package.json
Maintainers
Readme
@putout/plugin-package-json 
🐊Putout plugin helps to automate fixing package.json.
Install
npm i @putout/plugin-package-json -DRules
- ✅ add-type;
- ✅ apply-https-to-repository-url;
- ✅ find-file;
- ✅ remove-nyc;
- ✅ remove-commit-type;
- ✅ remove-duplicate-keywords;
- ✅ remove-exports-with-missing-files;
Config
{
"rules": {
"package-json/add-type": "on",
"package-json/apply-https-to-repository-url": "on",
"package-json/remove-nyc": "on",
"package-json/remove-commit-type": "on",
"package-json/remove-exports-with-missing-files": "off",
"package-json/find-file": "off"
}
}add-type
Add type field to package.json:
{
"name": "hello",
"version": "1.0.0",
+ "type": "commonjs"
}apply-https-to-repository-url
The git:// protocol for GitHub repos should not be used due security concerns.
Checkout in 🐊Putout Editor.
{
"repository": {
"type": "git",
- "url": "git://github.com/coderaiser/putout.git"
+ "url": "git+https://github.com/coderaiser/putout.git"
}remove-nyc
- additional fields in
package.jsonproduces more traffic then users of your package really need; - c8 uses same config name and format so transition between tools will be much easier;
❌ Example of incorrect code
nyc section in package.json:
{
"nyc": {
"check-coverage": "on",
"all": "on",
"exclude": [
"**/*.spec.js",
"**/fixture",
"test",
".*.js"
],
"branches": 100,
"lines": 100,
"functions": 100,
"statements": 100
}
}✅ Example of correct code
File .nycrc.json:
{
"check-coverage": "on",
"all": "on",
"exclude": [
"**/*.spec.js",
"**/fixture",
"test",
".*.js"
],
"branches": 100,
"lines": 100,
"functions": 100,
"statements": 100
}remove-commit-type
Since 🎁Wisdom v14 commitType set to colon be default, so it can be dropped from package.json if it's value not paren:
Check out in 🐊Putout Editor.
{
"name": "hello",
"version": "1.0.0",
"commitType": "colon"
}remove-duplicate-keywords
Check out in 🐊Putout Editor.
__putout_processor_json({
"keywords": [
"putout",
"putout-plugin",
- "plugin",
- "putout"
+ "plugin"
],
});find-file
Find package.json inside of .filesystem.json and applies all other package-json rules.
Checkout in 🐊Putout Editor.
{
"name": "hello",
"version": "1.0.0",
+ "type": "commonjs"
}remove-exports-with-missing-files
Find package.json inside of .filesystem.json and removes exports with missing files.
Checkout in 🐊Putout Editor:
__putout_processor_filesystem([
"/",
["/package.json", `{
"exports": {
"./parse-options": "./lib/parse-options/index.js",
- "./loader": "./lib/loader.mjs"
}
}`],
"/lib/",
"/lib/parse-options/",
["/lib/parse-options/index.js", "export const a = 5"],
]);License
MIT
