UNPKG

1.26 kBJavaScriptView Raw
1/* eslint-env node */
2const chalk = require('chalk');
3const path = require('path');
4
5const ensureCanConvertToStateless = require('./utils/ensure-can-convert-to-stateless');
6const getConfigs = require('./utils/get-configs');
7const readFile = require('./utils/read-file');
8const toStatelessTransform = require('./transforms/to-stateless');
9const validateFilePath = require('./utils/validate-file-path');
10const writeFile = require('./utils/write-file');
11
12module.exports = function({ eslintConfig, filePath }) {
13 const _eslintConfig = eslintConfig;
14
15 return new Promise((resolve, reject) => {
16 const { eslintConfig } = getConfigs(_eslintConfig);
17
18 try {
19 validateFilePath(filePath);
20
21 const componentName = path.basename(filePath, '.jsx');
22 const fileContent = readFile(filePath);
23
24 ensureCanConvertToStateless(fileContent, eslintConfig);
25
26 const newFileContent = toStatelessTransform(
27 fileContent,
28 componentName,
29 _eslintConfig
30 );
31
32 writeFile(filePath, newFileContent);
33
34 resolve({
35 messages: [
36 { emoji: `🤖`, text: `${chalk.green(`Beep boop, I'm done!`)}` }
37 ]
38 });
39 } catch (error) {
40 reject(error.message + `\n\n${error.stack || ''}`);
41 }
42 });
43};