UNPKG

next

Version:

The React Framework

31 lines (30 loc) 1.73 kB
import { promises as fs } from 'fs'; import { bold, green } from '../picocolors'; import os from 'os'; import path from 'path'; import * as CommentJson from 'next/dist/compiled/comment-json'; import * as Log from '../../build/output/log'; export async function writeDefaultConfig(baseDir, { exists, emptyEslintrc, emptyPkgJsonConfig }, selectedConfig, eslintrcFile, pkgJsonPath, packageJsonConfig) { if (!exists && emptyEslintrc && eslintrcFile) { const ext = path.extname(eslintrcFile); let newFileContent; if (ext === '.yaml' || ext === '.yml') { newFileContent = "extends: 'next'"; } else { newFileContent = CommentJson.stringify(selectedConfig, null, 2); if (ext === '.js') { newFileContent = 'module.exports = ' + newFileContent; } } await fs.writeFile(eslintrcFile, newFileContent + os.EOL); Log.info(`We detected an empty ESLint configuration file (${bold(path.basename(eslintrcFile))}) and updated it for you!`); } else if (!exists && emptyPkgJsonConfig && packageJsonConfig) { packageJsonConfig.eslintConfig = selectedConfig; if (pkgJsonPath) await fs.writeFile(pkgJsonPath, CommentJson.stringify(packageJsonConfig, null, 2) + os.EOL); Log.info(`We detected an empty ${bold('eslintConfig')} field in package.json and updated it for you!`); } else if (!exists) { await fs.writeFile(path.join(baseDir, '.eslintrc.json'), CommentJson.stringify(selectedConfig, null, 2) + os.EOL); console.log(green(`We created the ${bold('.eslintrc.json')} file for you and included your selected configuration.`)); } } //# sourceMappingURL=writeDefaultConfig.js.map