Skip to content

Commit 39c38b5

Browse files
authored
feat: make the cli work with/without prettier-eslint peer (#438)
BREAKING CHANGE: bump all upgradable (dev)Dependencies except pure ESM
1 parent 58101c1 commit 39c38b5

File tree

5 files changed

+29
-4
lines changed

5 files changed

+29
-4
lines changed

package.json

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,16 @@
2626
"JounQin (https://www.1stG.me) <[email protected]>"
2727
],
2828
"license": "MIT",
29+
"peerDependencies": {
30+
"prettier-eslint": "*"
31+
},
32+
"peerDependenciesMeta": {
33+
"prettier-eslint": {
34+
"optional": true
35+
}
36+
},
2937
"dependencies": {
38+
"@prettier/eslint": "npm:prettier-eslint@^15.0.1",
3039
"arrify": "^2.0.1",
3140
"boolify": "^1.0.1",
3241
"camelcase-keys": "^7.0.2",
@@ -42,7 +51,6 @@
4251
"lodash.memoize": "^4.1.2",
4352
"loglevel-colored-level-prefix": "^1.0.0",
4453
"messageformat": "^2.3.0",
45-
"prettier-eslint": "^15.0.1",
4654
"rxjs": "^7.5.6",
4755
"yargs": "^13.1.1"
4856
},

src/format-files.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import fs from 'fs';
55
import glob from 'glob';
66
import { bindNodeCallback, from, of } from 'rxjs';
77
import { catchError, concatAll, distinct, map, mergeMap } from 'rxjs/operators';
8-
import format from 'prettier-eslint';
98
import chalk from 'chalk';
109
import getStdin from 'get-stdin';
1110
import nodeIgnore from 'ignore';
1211
import findUp from 'find-up';
1312
import memoize from 'lodash.memoize';
1413
import indentString from 'indent-string';
1514
import getLogger from 'loglevel-colored-level-prefix';
15+
import format from './prettier-eslint';
1616
import * as messages from './messages';
1717

1818
const LINE_SEPERATOR_REGEX = /(\r|\n|\r\n)/;

src/format-files.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
/* eslint no-console:0 */
22
import fsMock from 'fs';
33
import findUpMock from 'find-up';
4-
import formatMock from 'prettier-eslint';
54
import globMock from 'glob';
65
import mockGetStdin from 'get-stdin';
76
import getLogger from 'loglevel-colored-level-prefix';
7+
import formatMock from './prettier-eslint';
88
import formatFiles from './format-files';
99

1010
jest.mock('fs');

src/prettier-eslint.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const getLogger = require('loglevel-colored-level-prefix');
2+
3+
const logger = getLogger({ prefix: 'prettier-eslint-cli' });
4+
5+
try {
6+
// if `prettier-eslint` is installed by the user manually
7+
module.exports = require('prettier-eslint');
8+
} catch (err) /* istanbul ignore next */ {
9+
logger.info('We detected that no `prettier-eslint` is installed.');
10+
logger.info('We will use our internal fallback one instead.');
11+
logger.info(
12+
'You can install `prettier-eslint` as dependency to skip this message.'
13+
);
14+
15+
// it is an internal dependency using `prettier-eslint` as fallback
16+
module.exports = require('@prettier/eslint');
17+
}

test/tests/cli.spec.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ test('help outputs usage information and flags', async () => {
2424
// terminal I think)...
2525
const stdout = await runPrettierESLintCLI('--help');
2626
expect(stdout).toMatch(/Usage:.*?<globs>.../);
27-
expect(stdout).toContain('Options:\n');
27+
expect(stdout).toContain('Valid options:\n');
2828
// just a sanity check.
2929
// If it's ever longer than 2000 then we've probably got a problem...
3030
// eslint-disable-next-line jest/no-conditional-in-test

0 commit comments

Comments
 (0)