UNPKG

@fenge/eslint-config

Version:

A super strict eslint config for linting js/ts/package.json.

44 lines 5.61 kB
import childProcess from "node:child_process"; export function base(options, enabled) { const filesMap = { js: "**/*.{js,cjs,mjs,jsx}", ts: "**/*.{ts,cts,mts,tsx}", pkg: "package.json", }; const files = [...enabled].map((key) => filesMap[key]); return [ // Global ignore. Refer: https://eslint.org/docs/latest/use/configure/configuration-files#specifying-files-and-ignores. { name: "fenge/gitignore", // There are 2 kinds of exception when running `git ls-files`: // 1. Git is not installed. The `stdout` will be null. // 2. The running directory is not initialized by `git init` command. The `stdout` will an empty string. ignores: (childProcess.spawnSync("git", [ "ls-files", "--others", "--ignored", "--exclude-standard", "--directory", ], { encoding: "utf8" }).stdout || "") .split("\n") .filter(Boolean), }, { name: "fenge/common", files, linterOptions: options, }, // Ignore unsupported files. // This config is for suppressing error when linting a directory which does not contain supported files. { name: "fenge/ignore", files: ["**"], // I've tried all. Only '**' works. ignores: files, processor: { preprocess: (_text, _filename) => [""], postprocess: (_messages) => [], // Returning empty array to ignore all errors }, }, ]; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb25maWcvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFlBQVksTUFBTSxvQkFBb0IsQ0FBQztBQUs5QyxNQUFNLFVBQVUsSUFBSSxDQUNsQixPQUFvQixFQUNwQixPQUFpQztJQUVqQyxNQUFNLFFBQVEsR0FBRztRQUNmLEVBQUUsRUFBRSx1QkFBdUI7UUFDM0IsRUFBRSxFQUFFLHVCQUF1QjtRQUMzQixHQUFHLEVBQUUsY0FBYztLQUNYLENBQUM7SUFDWCxNQUFNLEtBQUssR0FBRyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2RCxPQUFPO1FBQ0wsdUhBQXVIO1FBQ3ZIO1lBQ0UsSUFBSSxFQUFFLGlCQUFpQjtZQUN2Qiw4REFBOEQ7WUFDOUQsc0RBQXNEO1lBQ3RELHdHQUF3RztZQUN4RyxPQUFPLEVBQUUsQ0FDUCxZQUFZLENBQUMsU0FBUyxDQUNwQixLQUFLLEVBQ0w7Z0JBQ0UsVUFBVTtnQkFDVixVQUFVO2dCQUNWLFdBQVc7Z0JBQ1gsb0JBQW9CO2dCQUNwQixhQUFhO2FBQ2QsRUFDRCxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FDckIsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUNmO2lCQUNFLEtBQUssQ0FBQyxJQUFJLENBQUM7aUJBQ1gsTUFBTSxDQUFDLE9BQU8sQ0FBQztTQUNuQjtRQUNEO1lBQ0UsSUFBSSxFQUFFLGNBQWM7WUFDcEIsS0FBSztZQUNMLGFBQWEsRUFBRSxPQUFPO1NBQ3ZCO1FBQ0QsNEJBQTRCO1FBQzVCLHdHQUF3RztRQUN4RztZQUNFLElBQUksRUFBRSxjQUFjO1lBQ3BCLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLG1DQUFtQztZQUNsRCxPQUFPLEVBQUUsS0FBSztZQUNkLFNBQVMsRUFBRTtnQkFDVCxVQUFVLEVBQUUsQ0FBQyxLQUFhLEVBQUUsU0FBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3RELFdBQVcsRUFBRSxDQUFDLFNBQXNCLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSw2Q0FBNkM7YUFDM0Y7U0FDRjtLQUNPLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNoaWxkUHJvY2VzcyBmcm9tIFwibm9kZTpjaGlsZF9wcm9jZXNzXCI7XG5pbXBvcnQgdHlwZSB7IExpbnRlciB9IGZyb20gXCJlc2xpbnRcIjtcblxuZXhwb3J0IHR5cGUgQmFzZU9wdGlvbnMgPSBMaW50ZXIuTGludGVyT3B0aW9ucztcblxuZXhwb3J0IGZ1bmN0aW9uIGJhc2UoXG4gIG9wdGlvbnM6IEJhc2VPcHRpb25zLFxuICBlbmFibGVkOiBTZXQ8XCJqc1wiIHwgXCJ0c1wiIHwgXCJwa2dcIj4sXG4pOiBMaW50ZXIuQ29uZmlnW10ge1xuICBjb25zdCBmaWxlc01hcCA9IHtcbiAgICBqczogXCIqKi8qLntqcyxjanMsbWpzLGpzeH1cIixcbiAgICB0czogXCIqKi8qLnt0cyxjdHMsbXRzLHRzeH1cIixcbiAgICBwa2c6IFwicGFja2FnZS5qc29uXCIsXG4gIH0gYXMgY29uc3Q7XG4gIGNvbnN0IGZpbGVzID0gWy4uLmVuYWJsZWRdLm1hcCgoa2V5KSA9PiBmaWxlc01hcFtrZXldKTtcbiAgcmV0dXJuIFtcbiAgICAvLyBHbG9iYWwgaWdub3JlLiBSZWZlcjogaHR0cHM6Ly9lc2xpbnQub3JnL2RvY3MvbGF0ZXN0L3VzZS9jb25maWd1cmUvY29uZmlndXJhdGlvbi1maWxlcyNzcGVjaWZ5aW5nLWZpbGVzLWFuZC1pZ25vcmVzLlxuICAgIHtcbiAgICAgIG5hbWU6IFwiZmVuZ2UvZ2l0aWdub3JlXCIsXG4gICAgICAvLyBUaGVyZSBhcmUgMiBraW5kcyBvZiBleGNlcHRpb24gd2hlbiBydW5uaW5nIGBnaXQgbHMtZmlsZXNgOlxuICAgICAgLy8gMS4gR2l0IGlzIG5vdCBpbnN0YWxsZWQuIFRoZSBgc3Rkb3V0YCB3aWxsIGJlIG51bGwuXG4gICAgICAvLyAyLiBUaGUgcnVubmluZyBkaXJlY3RvcnkgaXMgbm90IGluaXRpYWxpemVkIGJ5IGBnaXQgaW5pdGAgY29tbWFuZC4gVGhlIGBzdGRvdXRgIHdpbGwgYW4gZW1wdHkgc3RyaW5nLlxuICAgICAgaWdub3JlczogKFxuICAgICAgICBjaGlsZFByb2Nlc3Muc3Bhd25TeW5jKFxuICAgICAgICAgIFwiZ2l0XCIsXG4gICAgICAgICAgW1xuICAgICAgICAgICAgXCJscy1maWxlc1wiLFxuICAgICAgICAgICAgXCItLW90aGVyc1wiLFxuICAgICAgICAgICAgXCItLWlnbm9yZWRcIixcbiAgICAgICAgICAgIFwiLS1leGNsdWRlLXN0YW5kYXJkXCIsXG4gICAgICAgICAgICBcIi0tZGlyZWN0b3J5XCIsXG4gICAgICAgICAgXSxcbiAgICAgICAgICB7IGVuY29kaW5nOiBcInV0ZjhcIiB9LFxuICAgICAgICApLnN0ZG91dCB8fCBcIlwiXG4gICAgICApXG4gICAgICAgIC5zcGxpdChcIlxcblwiKVxuICAgICAgICAuZmlsdGVyKEJvb2xlYW4pLFxuICAgIH0sXG4gICAge1xuICAgICAgbmFtZTogXCJmZW5nZS9jb21tb25cIixcbiAgICAgIGZpbGVzLFxuICAgICAgbGludGVyT3B0aW9uczogb3B0aW9ucyxcbiAgICB9LFxuICAgIC8vIElnbm9yZSB1bnN1cHBvcnRlZCBmaWxlcy5cbiAgICAvLyBUaGlzIGNvbmZpZyBpcyBmb3Igc3VwcHJlc3NpbmcgZXJyb3Igd2hlbiBsaW50aW5nIGEgZGlyZWN0b3J5IHdoaWNoIGRvZXMgbm90IGNvbnRhaW4gc3VwcG9ydGVkIGZpbGVzLlxuICAgIHtcbiAgICAgIG5hbWU6IFwiZmVuZ2UvaWdub3JlXCIsXG4gICAgICBmaWxlczogW1wiKipcIl0sIC8vIEkndmUgdHJpZWQgYWxsLiBPbmx5ICcqKicgd29ya3MuXG4gICAgICBpZ25vcmVzOiBmaWxlcyxcbiAgICAgIHByb2Nlc3Nvcjoge1xuICAgICAgICBwcmVwcm9jZXNzOiAoX3RleHQ6IHN0cmluZywgX2ZpbGVuYW1lOiBzdHJpbmcpID0+IFtcIlwiXSxcbiAgICAgICAgcG9zdHByb2Nlc3M6IChfbWVzc2FnZXM6IHVua25vd25bXVtdKSA9PiBbXSwgLy8gUmV0dXJuaW5nIGVtcHR5IGFycmF5IHRvIGlnbm9yZSBhbGwgZXJyb3JzXG4gICAgICB9LFxuICAgIH0sXG4gIF0gYXMgY29uc3Q7XG59XG4iXX0=