UNPKG

eslint-plugin-next-route-params

Version:

eslint rule to enforce correct route parameters for Next.js

52 lines (51 loc) 2.31 kB
"use strict"; 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;