1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | const glob = require('glob');
|
10 | const prettier = require('prettier');
|
11 | const fs = require('fs');
|
12 |
|
13 | const prettierConfigPath = require.resolve('../.prettierrc');
|
14 |
|
15 | let didError = false;
|
16 |
|
17 | let files = [];
|
18 |
|
19 | const ignoreFiles = [
|
20 | '**/node_modules/**',
|
21 | 'package.json',
|
22 | 'build/**',
|
23 | 'es/**',
|
24 | 'lib/**',
|
25 | 'dist/**',
|
26 | '**/**.snap',
|
27 | '**/**.map',
|
28 | '**/components/style/color/**',
|
29 | '**/dist/**',
|
30 | '_site/**',
|
31 | ];
|
32 |
|
33 |
|
34 | const tsFiles = glob.sync('**/*.ts*', {
|
35 | ignore: ignoreFiles,
|
36 | });
|
37 | files = files.concat(tsFiles);
|
38 |
|
39 |
|
40 | const jsFiles = glob.sync('**/*.js*', {
|
41 | ignore: ignoreFiles,
|
42 | });
|
43 | files = files.concat(jsFiles);
|
44 |
|
45 |
|
46 | const lessFiles = glob.sync('**/*.less', {
|
47 | ignore: ignoreFiles,
|
48 | });
|
49 | files = files.concat(lessFiles);
|
50 |
|
51 | if (!files.length) {
|
52 | return;
|
53 | }
|
54 |
|
55 | files.forEach(file => {
|
56 | const options = prettier.resolveConfig.sync(file, {
|
57 | config: prettierConfigPath,
|
58 | });
|
59 | const fileInfo = prettier.getFileInfo.sync(file);
|
60 | if (fileInfo.ignored) {
|
61 | return;
|
62 | }
|
63 | try {
|
64 | const input = fs.readFileSync(file, 'utf8');
|
65 | const withParserOptions = {
|
66 | ...options,
|
67 | parser: fileInfo.inferredParser,
|
68 | };
|
69 | const output = prettier.format(input, withParserOptions);
|
70 | if (output !== input) {
|
71 | fs.writeFileSync(file, output, 'utf8');
|
72 |
|
73 | console.log(`\x1b[34m ${file} is prettier`);
|
74 | }
|
75 | } catch (e) {
|
76 | didError = true;
|
77 | }
|
78 | });
|
79 |
|
80 | if (didError) {
|
81 | process.exit(1);
|
82 | }
|
83 |
|
84 | console.log('\x1b[32m prettier success!');
|