Move prettier file globs into .prettierrc.js file.

This allows us to DRY up the `package.json` file and allows editors which
understand Prettier support to be aware of exactly which files are meant to
be covered, rather than including it within the CLI flags.
This commit is contained in:
Jesse Rosenberger 2018-09-25 14:22:20 +03:00
parent e0b6e8dd90
commit 2733189462
No known key found for this signature in database
GPG key ID: C0CCCF81AA6C08D8
3 changed files with 30 additions and 4 deletions

View file

@ -1,3 +1,5 @@
*.json
*.md
*.snap
dist/

View file

@ -1,4 +1,26 @@
module.exports = {
trailingComma: 'all',
singleQuote: true,
// Unfortunately, prettierrc doesn't support explicitly enumerating the files
// we wish to "prettify", instead relying on them being passed as a glob on
// the CLI. See https://github.com/prettier/prettier/issues/3764.
//
// Unfortunately, that complicates the `package.json` scripts since it
// requires duplicating globs in multiple places, and also prevents
// Prettier-enabled editors from knowing what files are to be covered.
//
// We can DRY this up a bit by leveraging "requirePragma", an instruction
// that tells prettier to only prettify files which contain `@prettier`
// (which none of the files in this repository have) and then specifying the
// exact files to be prettified. As the issue above notes, this should become
// more succinct in Prettier 2.x.
requirePragma: true,
overrides: [
{
files: '{docs/{,source/**},.,packages/**,test}/{*.js,*.ts}',
options: {
requirePragma: false,
trailingComma: 'all',
singleQuote: true,
},
},
],
};

View file

@ -9,8 +9,10 @@
"scripts": {
"postinstall": "lerna run prepare",
"compile": "lerna run compile",
"lint": "prettier-check --ignore-path .gitignore \"{docs/{,source/**},.,packages/**,test}/{*.js,*.ts}\"",
"lint-fix": "prettier --write --ignore-path .gitignore \"{docs/{,source/**},.,packages/**,test}/{*.js,*.ts}\"",
"lint": "prettier-check '**/*.{js,ts}'",
"lint-fix": "prettier '**/*.{js,ts}' --write",
"test": "jest --verbose",
"posttest": "npm run lint",
"testonly": "npm test",