8.3.0 β€’ Published 10 months ago

@putout/plugin-package-json v8.3.0

Weekly downloads
1,004
License
MIT
Repository
github
Last release
10 months ago

@putout/plugin-package-json NPM version

🐊Putout plugin helps to automate fixing package.json.

Install

npm i @putout/plugin-package-json -D

Rules

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.json produces 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"
}

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

8.1.0

11 months ago

8.0.0

11 months ago

8.3.0

10 months ago

8.2.1

10 months ago

8.2.0

10 months ago

8.2.3

10 months ago

8.2.2

10 months ago

7.0.0

2 years ago

7.2.0

2 years ago

7.1.0

2 years ago

6.0.0

2 years ago

5.0.1

2 years ago

5.0.0

2 years ago

4.1.0

3 years ago

4.0.0

3 years ago

3.0.0

4 years ago

2.0.0

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

5 years ago

1.0.0

5 years ago