UNPKG

tslint-no-circular-imports

Version:

TSLint plugin to detect and warn about circular imports

42 lines 1.73 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const assert = require("assert"); const child_process_1 = require("child_process"); const path_1 = require("path"); const tslintBin = path_1.join('..', 'node_modules', '.bin', 'tslint'); const tslintConfig = path_1.join('.', 'tslint.json'); const tslintFormat = 'json'; const tsFiles = `${path_1.join('.', '*.ts')} ${path_1.join('.', '*/*.ts')}`; const tsconfig = path_1.join('.', 'tsconfig.json'); child_process_1.exec(`${tslintBin} -p ${tsconfig} -c ${tslintConfig} -r .. -t ${tslintFormat} ${tsFiles}`, { cwd: __dirname }, (error, stdout, stderr) => { // Only validate failures and names. const actual = JSON.parse(stdout) .map(x => ({ failure: x.failure, name: x.name })); assert.deepEqual(actual, [ // case1 { failure: 'circular import detected: case1.ts -> case1.2.ts -> case1.ts', name: path_1.join(__dirname, 'case1.ts') }, { failure: 'circular import detected: case1.1.ts -> case1.ts -> case1.1.ts', name: path_1.join(__dirname, 'case1.1.ts') }, // case2 { failure: 'circular import detected: case2/a.ts -> case2/b.ts -> case2/a.ts', name: path_1.join(__dirname, 'case2/a.ts') }, // case3 { failure: 'circular import detected: case3/a.ts -> case3/b.ts -> case3/a.ts', name: path_1.join(__dirname, 'case3/a.ts') }, // case4 { failure: 'circular import detected: case4/a.ts -> case4/index.ts -> case4/a.ts', name: path_1.join(__dirname, 'case4/a.ts') } ]); }); //# sourceMappingURL=test.js.map