@aak.lear/eslint-config
Version:
This package simplifies the initial setup of eslint and prettier. It installs and apply eslint-config-airbnb to your project, also resolves peerDependencies that are required for eslint-config-airbnb package.
40 lines (32 loc) • 855 B
JavaScript
import { writeTemplate } from './writeTemplate.js';
import fs from 'fs';
import path from 'path';
export const writeConfigs = async ({
root,
extendsList,
withTypescript,
withPrettier,
}) => {
const eslintConfig = { extends: extendsList };
const writeTemplateToRoot = writeTemplate(root);
if (withPrettier) {
writeTemplateToRoot('.prettierrc');
}
if (withTypescript) {
writeTemplateToRoot('tsconfig.eslint.json');
eslintConfig.overrides = [
{
files: ['*.ts', '*.tsx'],
parserOptions: {
project: './tsconfig.eslint.json',
},
},
];
}
const eslintConfigPath = path.resolve(root, '.eslintrc.js');
fs.writeFileSync(
eslintConfigPath,
`module.exports = ${JSON.stringify(eslintConfig, null, 2)}\n`,
);
console.log(`File created:\n${eslintConfigPath}\n`);
};