@mongez/gnz
Version:
Generator Z, the next generation of scaffolding tools.
79 lines (78 loc) • 2.49 kB
JavaScript
;var eslint$1=require('eslint'),prettier=require('prettier');const eslintConfig = {
env: {
browser: true,
es2021: true,
node: true,
},
extends: [
"eslint:recommended",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended",
"plugin:import/recommended",
],
overrides: [],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
},
plugins: ["react", "@typescript-eslint", "prettier"],
rules: {
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-unused-vars": "off",
"no-unused-vars": "off",
"unused-imports/no-unused-vars": [
"warn",
{
vars: "all",
varsIgnorePattern: "^_",
args: "after-used",
argsIgnorePattern: "^_",
},
],
"react/react-in-jsx-scope": "off",
"unused-imports/no-unused-imports": "error",
"import/no-duplicates": ["error", { considerQueryString: true }],
},
};
/**
* Use prettier to prettify Typescript code
* Use .prettierrc to configure prettier from cwd
*/
async function prettifyTypescript(code) {
const format = prettier.format(code, {
parser: "typescript",
semi: true,
tabWidth: 2,
printWidth: 80,
singleQuote: false,
arrowParens: "avoid",
trailingComma: "all",
bracketSameLine: true,
endOfLine: "auto",
});
return format;
}
const format = {
typescript: prettifyTypescript,
};
const eslint = {
formatFile: eslintFormatFile,
};
async function eslintFormatFile(filePath) {
// 1. Create an instance with the `fix` option.
const eslint = new eslint$1.ESLint({
fix: true,
fixTypes: ["layout", "problem", "suggestion"],
useEslintrc: false,
overrideConfig: eslintConfig,
});
// 2. Lint files. This doesn't modify target files.
const results = await eslint.lintFiles([filePath]);
// 3. Modify the files with the fixed code.
await eslint$1.ESLint.outputFixes(results);
// 4. Format the results.
const formatter = await eslint.loadFormatter("stylish");
const output = await formatter.format(results);
return output;
}exports.eslint=eslint;exports.format=format;exports.prettifyTypescript=prettifyTypescript;//# sourceMappingURL=prettifier.js.map