Skip to content
This repository has been archived by the owner on Apr 16, 2020. It is now read-only.

Commit

Permalink
update dependencies
Browse files Browse the repository at this point in the history
  • Loading branch information
vladimiry committed Mar 17, 2020
1 parent 146a538 commit 9d36617
Show file tree
Hide file tree
Showing 11 changed files with 902 additions and 2,711 deletions.
4 changes: 2 additions & 2 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
max_line_length=140
max_line_length = 140

[*.json]
[{*.json, *.yml, *.eslintrc}]
indent_size = 2

[*.md]
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ npm-debug.log
yarn-error.log

/compile/
/dist/
/lib/
/output/
6 changes: 6 additions & 0 deletions .npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/*

!/lib/
!/LICENSE
!/package.json
!/README.md
6 changes: 5 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
# https://docs.travis-ci.com/user/customizing-the-build/

if: tag IS blank
os:
- linux
language: node_js
node_js:
- "8"
- "12"
- "13"
before_install:
- node --version
- npm --version
install:
- npm install
script:
- npm run dist
- npm run lib
41 changes: 20 additions & 21 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,51 +10,50 @@
"rule",
"linter"
],
"main": "./index.js",
"main": "./lib/index.js",
"scripts": {
"lib:compile": "tsc --listEmittedFiles -p ./src/lib/tsconfig.json",
"lib:compile:watch": "tsc -w -p ./src/lib/tsconfig.json",
"dist": "npm-run-all dist:clean lint lib:compile dist:copy test",
"dist:clean": "rimraf ./dist",
"dist:copy": "cpx \"{package.json,package-lock.json,README.md,LICENSE}\" ./dist",
"lib": "npm-run-all lib:clean lint lib:compile test",
"lib:clean": "rimraf ./lib",
"lint:src": "tslint -p ./src/lib/tsconfig.json -c ./tslint.json \"./src/**/*.ts\"",
"lint:test": "tslint -p ./test/tsconfig.json -c ./test/tslint.json \"./test/**/*.ts\"",
"lint": "npm-run-all lint:src lint:test",
"test": "cross-env TS_NODE_PROJECT=./test/tsconfig.json ava --verbose"
"test": "cross-env TS_NODE_PROJECT=./test/tsconfig.json ava"
},
"pre-commit": [
"lint"
],
"ava": {
"compileEnhancements": false,
"files": [
"test/**/*.spec.ts"
],
"extensions": [
"ts"
],
"files": [
"./test/**/*.{spec,test}.ts"
],
"require": [
"ts-node/register"
]
],
"verbose": true,
"color": false
},
"devDependencies": {
"@types/micromatch": "^3.1.0",
"@expo/spawn-async": "^1.5.0",
"@types/micromatch": "^4.0.1",
"@types/node": "^12.6.2",
"ava": "~2.0.0",
"buffered-spawn": "^3.3.2",
"cpx": "^1.5.0",
"cross-env": "^5.1.3",
"ava": "^3.5.0",
"cross-env": "^7.0.2",
"npm-run-all": "^4.1.5",
"pre-commit": "^1.2.2",
"rimraf": "^2.6.3",
"ts-node": "^8.3.0",
"tslint": "^5.18.0",
"rimraf": "^3.0.2",
"ts-node": "^8.6.2",
"tslint": "^6.1.0",
"tslint-rules-bunch": "^0.0.8",
"typescript": "^3.5.3"
"typescript": "^3.8.3"
},
"dependencies": {
"micromatch": "^4.0.2",
"tslib": "^1.10.0",
"tsutils": "^3.14.0"
"tslib": "^1.11.1",
"tsutils": "^3.17.1"
}
}
1 change: 0 additions & 1 deletion src/@types/buffered-spawn/index.d.ts

This file was deleted.

8 changes: 4 additions & 4 deletions src/lib/rules/noImportZonesRule.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// tslint:disable:object-literal-sort-keys

import * as path from "path";
import * as Lint from "tslint";
import * as ts from "typescript";
import * as mm from "micromatch";
import mm from "micromatch";
import path from "path";
import ts from "typescript";
import {findImports, ImportKind} from "tsutils";

const camelCasedRuleFileName = path.parse(__filename).name;
Expand Down Expand Up @@ -119,7 +119,7 @@ function walk(ctx: Lint.WalkContext<Options[]>) {
if (mm([relativeSrcFile], target).length && mm([relativeImportFile], from).length) {
const zone: OptionsZoneError = {basePath, target, from};
const messages = [
`(${Rule.metadata.ruleName}): "${importUnit.text}" import is forbidden`,
`"${importUnit.text}" import is forbidden`,
];

if (verbose) {
Expand Down
57 changes: 30 additions & 27 deletions test/project-1.spec.ts
Original file line number Diff line number Diff line change
@@ -1,41 +1,44 @@
import * as bufferedSpawn from "buffered-spawn";
import * as path from "path";
import path from "path";
import spawnAsync, {SpawnResult} from "@expo/spawn-async";
import test from "ava";

const projectRootDirectory = path.resolve(process.cwd());
const tslintCli = path.resolve(projectRootDirectory, "./node_modules/.bin/tslint");
const tslintRulesDirectory = path.join(projectRootDirectory, "./dist/rules");
const tslintRulesDirectory = path.join(projectRootDirectory, "./lib/rules");

test("test", async (t) => {
const basePath = path.resolve(__dirname, "./fixtures/project-1");
const configFile = path.join(basePath, "./tslint.json");
const scanPattern = path.join(basePath, "./src/test", "/**/*.ts");
const projectBasePath = path.resolve(__dirname, "./fixtures/project-1");
const projectConfigFile = path.join(projectBasePath, "./tslint.json");
const projectScanPattern = path.join(projectBasePath, "./src/test", "/**/*.ts");

const tslintArgs = [
tslintCli,
...["-c", configFile],
...["-p", path.join(projectRootDirectory, "./tsconfig.json")],
...["-r", tslintRulesDirectory],
scanPattern,
];

const {stdout}: { stdout: string }
= (await t.throwsAsync(bufferedSpawn(`node`, tslintArgs, {cwd: basePath}))) as Error & { stdout: string };
const errorLines = (stdout)
const {stdout, status} = await t.throwsAsync(
spawnAsync(
"npx",
[
"tslint",
...["-c", projectConfigFile],
...["-p", path.join(projectRootDirectory, "./tsconfig.json")],
...["-r", tslintRulesDirectory],
projectScanPattern,
],
{cwd: projectBasePath},
),
) as unknown as Pick<SpawnResult, "stdout" | "status">;
const [, ...errorLines] = (stdout)
.split("\n")
.filter((line) => !!line);
.filter((line) => Boolean(line));
const expectedErrorLines = [
// tslint:disable:max-line-length
`ERROR: ${basePath}/src/test/test-1.ts:1:10 - (no-import-zones): "../../../project-1/src/lib" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib"}`,
`ERROR: ${basePath}/src/test/test-1.ts:2:10 - (no-import-zones): "../../src/lib" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib"}`,
`ERROR: ${basePath}/src/test/test-1.ts:4:10 - (no-import-zones): "../lib" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib"}`,
`ERROR: ${basePath}/src/test/test-1.ts:5:10 - (no-import-zones): "src/lib" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib"}`,
`ERROR: ${basePath}/src/test/test-1.ts:7:10 - (no-import-zones): "../lib/index" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib/index"}`,
`ERROR: ${basePath}/src/test/test-1.ts:8:10 - (no-import-zones): "src/lib/index" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib/index"}`,
`ERROR: ${basePath}/src/test/test-1.ts:13:10 - (no-import-zones): "../lib/module-3/lib-1/lib-2" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib/module-3/lib-1/lib-2"}`,
`ERROR: ${basePath}/src/test/test-1.ts:14:10 - (no-import-zones): "src/lib/module-3/lib-1/lib-2" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib/module-3/lib-1/lib-2"}`,
`ERROR: 1:10 no-import-zones "../../../project-1/src/lib" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib"}`,
`ERROR: 2:10 no-import-zones "../../src/lib" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib"}`,
`ERROR: 4:10 no-import-zones "../lib" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib"}`,
`ERROR: 5:10 no-import-zones "src/lib" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib"}`,
`ERROR: 7:10 no-import-zones "../lib/index" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib/index"}`,
`ERROR: 8:10 no-import-zones "src/lib/index" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib/index"}`,
`ERROR: 13:10 no-import-zones "../lib/module-3/lib-1/lib-2" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib/module-3/lib-1/lib-2"}`,
`ERROR: 14:10 no-import-zones "src/lib/module-3/lib-1/lib-2" import is forbidden; rule: {"basePath":"src","target":"test/**/*","from":["lib","lib/**/*","!lib/module-1"]}; resolved values: {"file":"test/test-1.ts","import":"lib/module-3/lib-1/lib-2"}`,
// tslint:enable:max-line-length
];

t.true(typeof status === "number" && status > 0, "status > 0");
t.deepEqual(errorLines, expectedErrorLines);
});
10 changes: 10 additions & 0 deletions tsconfig.checks.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"compilerOptions": {
"forceConsistentCasingInFileNames": true,
"noFallthroughCasesInSwitch": true,
"noImplicitReturns": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"strict": true
}
}
10 changes: 3 additions & 7 deletions tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
{
// https://www.typescriptlang.org/docs/handbook/tsconfig-json.html
// https://www.typescriptlang.org/docs/handbook/compiler-options.html
"extends": "./tsconfig.checks.json",
"compilerOptions": {
"target": "es5",
"strict": true,
"module": "commonjs",
"esModuleInterop": true,
"importHelpers": true,
"noEmitOnError": true,
"declaration": true,
Expand All @@ -13,11 +14,6 @@
"lib": [
"es2015"
],
"baseUrl": ".",
"outDir": "./dist",
"typeRoots": [
"./node_modules/@types",
"./src/@types"
]
"outDir": "./lib"
}
}
Loading

0 comments on commit 9d36617

Please sign in to comment.