ruins
Version:
> [!IMPORTANT] > This is in beta. Not everything is ironed out and some modules might misbehave
32 lines (28 loc) • 1.08 kB
text/typescript
import { execSync } from "child_process";
import { writeFile } from "node:fs/promises";
import { getConfig } from "../config/getConfig.js";
import { resolve } from "node:path";
import consola from "consola";
/**
* Create a lint file
*
* @param {string} ruinsPath - path to Ruins project directory
* @returns {Promise<void>}
*/
export const createLintFile = async (ruinsPath: string, binPath: string) => {
const settings = await getConfig();
const outputFile = resolve(settings.dir, settings.files.eslintIssues);
const ignoresFile = resolve(settings.dir, settings.files.eslintIgnores);
consola.info(`Searching for linting issues`);
// reset to avoid skipping already ignored issues
const resetConent = `export const ruinsIgnores = [];`;
await writeFile(ignoresFile, resetConent);
try {
await execSync(
`${binPath}/eslint --quiet -o ${outputFile} -f ${ruinsPath}/dist/cli/formatters/output.js`
);
consola.success(`Collected issues in ${settings.dir}${settings.files.eslintIssues}`);
} catch {
// It always has a non-zero exit code
}
};