From 07fbf265fa864ca0f03cae8323eed1ed178d2128 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Aug 2020 21:59:41 +0800 Subject: [PATCH] Build(deps): Bump cosmiconfig from 6.0.0 to 7.0.0 (#8890) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: fisker --- changelog_unreleased/api/pr-8890.md | 3 +++ docs/configuration.md | 2 +- package.json | 2 +- src/config/resolve-config.js | 2 ++ .../__tests__/config-resolution.js | 23 +++++++++++++++++++ .../package.json | 5 ++++ .../prettier.config.cjs | 4 ++++ .../package.json | 5 ++++ .../prettier.config.cjs | 4 ++++ .../package.json | 4 ++++ .../prettier.config.cjs | 4 ++++ .../.prettierrc.cjs | 4 ++++ .../package.json | 5 ++++ .../.prettierrc.cjs | 4 ++++ .../package.json | 5 ++++ .../.prettierrc.cjs | 4 ++++ .../prettierrc-cjs-in-type-none/package.json | 4 ++++ yarn.lock | 16 ++++++------- 18 files changed, 90 insertions(+), 10 deletions(-) create mode 100644 changelog_unreleased/api/pr-8890.md create mode 100644 tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-commonjs/package.json create mode 100644 tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-commonjs/prettier.config.cjs create mode 100644 tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-module/package.json create mode 100644 tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-module/prettier.config.cjs create mode 100644 tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-none/package.json create mode 100644 tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-none/prettier.config.cjs create mode 100644 tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-commonjs/.prettierrc.cjs create mode 100644 tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-commonjs/package.json create mode 100644 tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-module/.prettierrc.cjs create mode 100644 tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-module/package.json create mode 100644 tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-none/.prettierrc.cjs create mode 100644 tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-none/package.json diff --git a/changelog_unreleased/api/pr-8890.md b/changelog_unreleased/api/pr-8890.md new file mode 100644 index 000000000..ab1882f93 --- /dev/null +++ b/changelog_unreleased/api/pr-8890.md @@ -0,0 +1,3 @@ +#### Support `.prettierrc.cjs` and `prettier.config.cjs` config file ([#8890](https://github.com/prettier/prettier/pull/8890) by [@fisker](https://github.com/fisker)) + +New config files `.prettierrc.cjs` and `prettier.config.cjs` are supported. diff --git a/docs/configuration.md b/docs/configuration.md index b37472c06..e60f00cd4 100644 --- a/docs/configuration.md +++ b/docs/configuration.md @@ -8,7 +8,7 @@ Prettier uses [cosmiconfig](https://github.com/davidtheclark/cosmiconfig) for co - A `"prettier"` key in your `package.json` file. - A `.prettierrc` file written in JSON or YAML. - A `.prettierrc.json`, `.prettierrc.yml`, or `.prettierrc.yaml` file. -- A `.prettierrc.js` or `prettier.config.js` file that exports an object using `module.exports`. +- A `.prettierrc.js`, `.prettierrc.cjs`, `prettier.config.js`, or `prettier.config.cjs` file that exports an object using `module.exports`. - A `.prettierrc.toml` file. The configuration file will be resolved starting from the location of the file being formatted, and searching up the file tree until a config file is (or isn’t) found. diff --git a/package.json b/package.json index 90e92e46f..ede28f15b 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "chalk": "4.1.0", "ci-info": "watson/ci-info#f43f6a1cefff47fb361c88cf4b943fdbcaafe540", "cjk-regex": "2.0.0", - "cosmiconfig": "6.0.0", + "cosmiconfig": "7.0.0", "dashify": "2.0.0", "diff": "4.0.2", "editorconfig": "0.15.3", diff --git a/src/config/resolve-config.js b/src/config/resolve-config.js index 9fa5b85f0..ca7bbf1ea 100644 --- a/src/config/resolve-config.js +++ b/src/config/resolve-config.js @@ -40,7 +40,9 @@ const getExplorerMemoized = mem( ".prettierrc.yaml", ".prettierrc.yml", ".prettierrc.js", + ".prettierrc.cjs", "prettier.config.js", + "prettier.config.cjs", ".prettierrc.toml", ], loaders: { diff --git a/tests_integration/__tests__/config-resolution.js b/tests_integration/__tests__/config-resolution.js index 7d7924321..872fa89f7 100644 --- a/tests_integration/__tests__/config-resolution.js +++ b/tests_integration/__tests__/config-resolution.js @@ -285,3 +285,26 @@ test("API resolveConfig de-references to an external module", () => { semi: false, }); }); + +test(".cjs config file", async () => { + const parentDirectory = path.join(__dirname, "../cli/config/rc-cjs"); + + const config = { + trailingComma: "all", + singleQuote: true, + }; + + for (const directoryName of [ + "prettierrc-cjs-in-type-module", + "prettierrc-cjs-in-type-commonjs", + "prettierrc-cjs-in-type-none", + "prettier-config-cjs-in-type-commonjs", + "prettier-config-cjs-in-type-none", + "prettier-config-cjs-in-type-module", + ]) { + const file = path.join(parentDirectory, directoryName, "foo.js"); + + expect(prettier.resolveConfig.sync(file)).toEqual(config); + await expect(prettier.resolveConfig(file)).resolves.toMatchObject(config); + } +}); diff --git a/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-commonjs/package.json b/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-commonjs/package.json new file mode 100644 index 000000000..4e17bed8e --- /dev/null +++ b/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-commonjs/package.json @@ -0,0 +1,5 @@ +{ + "name": "prettier-cjs-config-test", + "private": true, + "type": "commonjs" +} diff --git a/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-commonjs/prettier.config.cjs b/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-commonjs/prettier.config.cjs new file mode 100644 index 000000000..0310f4895 --- /dev/null +++ b/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-commonjs/prettier.config.cjs @@ -0,0 +1,4 @@ +module.exports = { + "trailingComma": "all", + "singleQuote": true +} diff --git a/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-module/package.json b/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-module/package.json new file mode 100644 index 000000000..6e76d43c2 --- /dev/null +++ b/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-module/package.json @@ -0,0 +1,5 @@ +{ + "name": "prettier-cjs-config-test", + "private": true, + "type": "module" +} diff --git a/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-module/prettier.config.cjs b/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-module/prettier.config.cjs new file mode 100644 index 000000000..0310f4895 --- /dev/null +++ b/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-module/prettier.config.cjs @@ -0,0 +1,4 @@ +module.exports = { + "trailingComma": "all", + "singleQuote": true +} diff --git a/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-none/package.json b/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-none/package.json new file mode 100644 index 000000000..2cec0d75a --- /dev/null +++ b/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-none/package.json @@ -0,0 +1,4 @@ +{ + "name": "prettier-cjs-config-test", + "private": true +} diff --git a/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-none/prettier.config.cjs b/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-none/prettier.config.cjs new file mode 100644 index 000000000..0310f4895 --- /dev/null +++ b/tests_integration/cli/config/rc-cjs/prettier-config-cjs-in-type-none/prettier.config.cjs @@ -0,0 +1,4 @@ +module.exports = { + "trailingComma": "all", + "singleQuote": true +} diff --git a/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-commonjs/.prettierrc.cjs b/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-commonjs/.prettierrc.cjs new file mode 100644 index 000000000..0310f4895 --- /dev/null +++ b/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-commonjs/.prettierrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + "trailingComma": "all", + "singleQuote": true +} diff --git a/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-commonjs/package.json b/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-commonjs/package.json new file mode 100644 index 000000000..4e17bed8e --- /dev/null +++ b/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-commonjs/package.json @@ -0,0 +1,5 @@ +{ + "name": "prettier-cjs-config-test", + "private": true, + "type": "commonjs" +} diff --git a/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-module/.prettierrc.cjs b/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-module/.prettierrc.cjs new file mode 100644 index 000000000..0310f4895 --- /dev/null +++ b/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-module/.prettierrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + "trailingComma": "all", + "singleQuote": true +} diff --git a/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-module/package.json b/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-module/package.json new file mode 100644 index 000000000..6e76d43c2 --- /dev/null +++ b/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-module/package.json @@ -0,0 +1,5 @@ +{ + "name": "prettier-cjs-config-test", + "private": true, + "type": "module" +} diff --git a/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-none/.prettierrc.cjs b/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-none/.prettierrc.cjs new file mode 100644 index 000000000..0310f4895 --- /dev/null +++ b/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-none/.prettierrc.cjs @@ -0,0 +1,4 @@ +module.exports = { + "trailingComma": "all", + "singleQuote": true +} diff --git a/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-none/package.json b/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-none/package.json new file mode 100644 index 000000000..2cec0d75a --- /dev/null +++ b/tests_integration/cli/config/rc-cjs/prettierrc-cjs-in-type-none/package.json @@ -0,0 +1,4 @@ +{ + "name": "prettier-cjs-config-test", + "private": true +} diff --git a/yarn.lock b/yarn.lock index 2d8e918e7..f83c89b94 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2575,16 +2575,16 @@ core-util-is@1.0.2, core-util-is@^1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cosmiconfig@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== +cosmiconfig@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.0.0.tgz#ef9b44d773959cae63ddecd122de23853b60f8d3" + integrity sha512-pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA== dependencies: "@types/parse-json" "^4.0.0" - import-fresh "^3.1.0" + import-fresh "^3.2.1" parse-json "^5.0.0" path-type "^4.0.0" - yaml "^1.7.2" + yaml "^1.10.0" create-ecdh@^4.0.0: version "4.0.3" @@ -4245,7 +4245,7 @@ ignore@^5.1.4: resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz#f150a8b50a34289b33e22f5889abd4d8016f0e57" integrity sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw== -import-fresh@^3.0.0, import-fresh@^3.1.0: +import-fresh@^3.0.0, import-fresh@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== @@ -8431,7 +8431,7 @@ yaml-unist-parser@1.3.0: tslib "^1.10.0" yaml "^1.10.0" -yaml@^1.10.0, yaml@^1.7.2: +yaml@^1.10.0: version "1.10.0" resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" integrity sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==