UNPKG

1.82 kBJavaScriptView Raw
1/**
2 * copy to https://github.com/facebook/react/blob/master/scripts/prettier/index.js
3 * prettier api doc https://prettier.io/docs/en/api.html
4 *----------*****--------------
5 * prettier all js and all ts.
6 *----------*****--------------
7 */
8
9const glob = require('glob');
10const prettier = require('prettier');
11const fs = require('fs');
12
13const prettierConfigPath = require.resolve('../.prettierrc');
14
15let didError = false;
16
17let files = [];
18
19const 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// get all ts files
34const tsFiles = glob.sync('**/*.ts*', {
35 ignore: ignoreFiles,
36});
37files = files.concat(tsFiles);
38
39// get all js files
40const jsFiles = glob.sync('**/*.js*', {
41 ignore: ignoreFiles,
42});
43files = files.concat(jsFiles);
44
45// get all less files
46const lessFiles = glob.sync('**/*.less', {
47 ignore: ignoreFiles,
48});
49files = files.concat(lessFiles);
50
51if (!files.length) {
52 return;
53}
54
55files.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 // eslint-disable-next-line no-console
73 console.log(`\x1b[34m ${file} is prettier`);
74 }
75 } catch (e) {
76 didError = true;
77 }
78});
79
80if (didError) {
81 process.exit(1);
82}
83// eslint-disable-next-line no-console
84console.log('\x1b[32m prettier success!');