eslint-plugin-next-route-params
Version:
eslint rule to enforce correct route parameters for Next.js
52 lines (51 loc) • 2.31 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createTester = void 0;
const rule_tester_1 = require("@typescript-eslint/rule-tester");
const path_1 = __importDefault(require("path"));
const fs_1 = __importDefault(require("fs"));
const parser_1 = __importDefault(require("@typescript-eslint/parser"));
const enforce_route_params_1 = __importDefault(require("./enforce-route-params"));
const ruleTester = new rule_tester_1.RuleTester({
languageOptions: {
parser: parser_1.default,
parserOptions: {
tsconfigRootDir: path_1.default.resolve(__dirname, "../../"),
project: "tsconfig.json",
},
},
});
const createTester = (testCases) => {
const validtestFiles = testCases.valid.map(({ filename }) => filename);
const invalidTestFiles = testCases.invalid.map(({ filename }) => filename);
const allTestFiles = [
...new Set([...validtestFiles, ...invalidTestFiles]),
].filter((val) => val != null);
return {
runTests: () => ruleTester.run("enforce-route-params", enforce_route_params_1.default, testCases),
setUp: () => {
allTestFiles.forEach((testFilename) => {
const normalizedTestFilename = path_1.default.normalize(testFilename);
const fileAlreadyExists = fs_1.default.existsSync(normalizedTestFilename);
const directory = path_1.default.dirname(normalizedTestFilename);
const directoriesExistedBeforeTest = fs_1.default.existsSync(directory);
if (!directoriesExistedBeforeTest) {
fs_1.default.mkdirSync(directory, { recursive: true });
}
if (!fileAlreadyExists) {
fs_1.default.writeFileSync(testFilename, "");
}
});
},
cleanUp: () => {
const appDirectory = path_1.default.join(process.cwd(), "src/app");
if (fs_1.default.existsSync(appDirectory)) {
fs_1.default.rmSync(appDirectory, { recursive: true, force: true });
}
},
};
};
exports.createTester = createTester;