From 0b04cca72ac1e0c032aca290dcad751c0ef02516 Mon Sep 17 00:00:00 2001 From: Piotr Szczepanik Date: Tue, 6 Mar 2018 11:09:56 +0100 Subject: [PATCH 1/2] Added tslint to package.json, minor fixes to tslint.json --- package-lock.json | 87 +++++++++++++++++++ package.json | 1 + .../date-range-picker/date-range-picker.tsx | 2 +- .../immutable-input/immutable-input.tsx | 2 +- .../measures-tile/measures-tile.tsx | 2 +- src/client/components/nav-list/nav-list.tsx | 2 +- src/client/components/router/router.mocha.tsx | 4 +- .../time-filter-menu/time-filter-menu.tsx | 2 +- .../modals/raw-data-modal/raw-data-modal.tsx | 2 +- src/common/models/essence/essence.mocha.ts | 4 +- .../filter-clause/filter-clause.mocha.ts | 2 +- .../models/filter-clause/filter-clause.ts | 2 +- src/common/models/filter/filter.ts | 2 +- src/common/models/granularity/granularity.ts | 2 +- src/common/models/measure/measure.ts | 2 +- .../models/split-combine/split-combine.ts | 2 +- .../circumstances-handler.tsx | 4 +- src/server/routes/error/error.mocha.ts | 4 +- src/server/routes/health/health.mocha.ts | 2 +- src/server/routes/mkurl/mkurl.mocha.ts | 14 +-- src/server/routes/swiv/swiv.mocha.ts | 2 +- .../utils/cluster-manager/cluster-manager.ts | 8 +- tslint.json | 4 +- 23 files changed, 123 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index 8fc49fb90..9938b6e11 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6797,6 +6797,12 @@ "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", "dev": true }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, "path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -8448,6 +8454,15 @@ "resolve-from": "1.0.1" } }, + "resolve": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.5.0.tgz", + "integrity": "sha512-hgoSGrc3pjzAPHNBg+KnFcK2HwlHTs/YrAGUr6qgTVUZmXv1UEXXl0bZNBKMA9fud6lRYFdPGz0xXxycPzmmiw==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, "resolve-from": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-1.0.1.tgz", @@ -9967,6 +9982,78 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" }, + "tslint": { + "version": "5.9.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.9.1.tgz", + "integrity": "sha1-ElX4ej/1frCw4fDmEKi0dIBGya4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "builtin-modules": "1.1.1", + "chalk": "2.3.2", + "commander": "2.12.2", + "diff": "3.3.1", + "glob": "7.1.2", + "js-yaml": "3.10.0", + "minimatch": "3.0.4", + "resolve": "1.5.0", + "semver": "5.5.0", + "tslib": "1.9.0", + "tsutils": "2.22.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "1.9.1" + } + }, + "chalk": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.2.tgz", + "integrity": "sha512-ZM4j2/ld/YZDc3Ma8PgN7gyAk+kHMMMyzLNryCPGhWrsfAuDVeuid5bpRFTDgMH9JBK2lA4dyyAkkZYF/WcqDQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.1", + "escape-string-regexp": "1.0.5", + "supports-color": "5.3.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "supports-color": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.3.0.tgz", + "integrity": "sha512-0aP01LLIskjKs3lq52EC0aGBAJhLq7B2Rd8HC/DR/PtNNpcLilNmHC12O+hu0usQpo7wtHNRqtrhBwtDb0+dNg==", + "dev": true, + "requires": { + "has-flag": "3.0.0" + } + } + } + }, + "tsutils": { + "version": "2.22.2", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.22.2.tgz", + "integrity": "sha512-u06FUSulCJ+Y8a2ftuqZN6kIGqdP2yJjUPEngXqmdPND4UQfb04igcotH+dw+IFr417yP6muCLE8/5/Qlfnx0w==", + "dev": true, + "requires": { + "tslib": "1.9.0" + } + }, "tty-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", diff --git a/package.json b/package.json index e807509cc..a4df8334d 100644 --- a/package.json +++ b/package.json @@ -123,6 +123,7 @@ "svg-loader": "0.0.2", "ts-node": "4.1.0", "typescript": "2.6.2", + "tslint": "5.9.1", "webpack": "3.10.0", "webpack-dev-middleware": "2.0.3", "webpack-hot-middleware": "2.21.0", diff --git a/src/client/components/date-range-picker/date-range-picker.tsx b/src/client/components/date-range-picker/date-range-picker.tsx index 065d2b184..3710635e7 100644 --- a/src/client/components/date-range-picker/date-range-picker.tsx +++ b/src/client/components/date-range-picker/date-range-picker.tsx @@ -179,7 +179,7 @@ export class DateRangePicker extends React.Component{getWallTimeDay(dayDate, timezone)}; })}; }); - }; + } renderCalendar(startDate: Date, isSingleDate: boolean): JSX.Element[] { const { timezone } = this.props; diff --git a/src/client/components/immutable-input/immutable-input.tsx b/src/client/components/immutable-input/immutable-input.tsx index e496933c9..f49dfc475 100644 --- a/src/client/components/immutable-input/immutable-input.tsx +++ b/src/client/components/immutable-input/immutable-input.tsx @@ -65,7 +65,7 @@ export class ImmutableInput extends React.Component; }; - }; + } private focusAlreadyGiven = false; diff --git a/src/client/components/measures-tile/measures-tile.tsx b/src/client/components/measures-tile/measures-tile.tsx index 29b4f9326..feef771cd 100644 --- a/src/client/components/measures-tile/measures-tile.tsx +++ b/src/client/components/measures-tile/measures-tile.tsx @@ -153,6 +153,6 @@ export class MeasuresTile extends React.Component ; - }; + } } diff --git a/src/client/components/nav-list/nav-list.tsx b/src/client/components/nav-list/nav-list.tsx index de8a797f0..c89edb836 100644 --- a/src/client/components/nav-list/nav-list.tsx +++ b/src/client/components/nav-list/nav-list.tsx @@ -85,5 +85,5 @@ export class NavList extends React.Component< NavListProps, NavListState> { {this.renderNavList()} ; - }; + } } diff --git a/src/client/components/router/router.mocha.tsx b/src/client/components/router/router.mocha.tsx index b30489674..44b45311a 100644 --- a/src/client/components/router/router.mocha.tsx +++ b/src/client/components/router/router.mocha.tsx @@ -202,7 +202,7 @@ describe('Router', () => { }); - it('initializes to the location', (done:any) => { + it('initializes to the location', (done: any) => { // Timeout because the router waits for a bit before initializing setTimeout(() => { expect((findNode(component) as any).className, 'should contain class').to.equal('bar-class'); @@ -289,7 +289,7 @@ describe('Router', () => { }); - it('defaults to the first route', (done:any) => { + it('defaults to the first route', (done: any) => { // Timeout because the router waits for a bit before initializing setTimeout(() => { isActiveRoute('#root/foo'); diff --git a/src/client/components/time-filter-menu/time-filter-menu.tsx b/src/client/components/time-filter-menu/time-filter-menu.tsx index e529b2011..7e87ad71a 100644 --- a/src/client/components/time-filter-menu/time-filter-menu.tsx +++ b/src/client/components/time-filter-menu/time-filter-menu.tsx @@ -281,7 +281,7 @@ export class TimeFilterMenu extends React.Component ; - }; + } render() { const { dimension, onClose, containerStage, openOn, inside } = this.props; diff --git a/src/client/modals/raw-data-modal/raw-data-modal.tsx b/src/client/modals/raw-data-modal/raw-data-modal.tsx index 3cbefb4e4..2101eed15 100644 --- a/src/client/modals/raw-data-modal/raw-data-modal.tsx +++ b/src/client/modals/raw-data-modal/raw-data-modal.tsx @@ -281,7 +281,7 @@ export class RawDataModal extends React.Component {buttons} - + ; } render() { diff --git a/src/common/models/essence/essence.mocha.ts b/src/common/models/essence/essence.mocha.ts index 4cde98040..f9ddfd0de 100644 --- a/src/common/models/essence/essence.mocha.ts +++ b/src/common/models/essence/essence.mocha.ts @@ -129,7 +129,7 @@ describe('Essence', () => { "step": -1, "operand": { "name": "m", - "op": "ref", + "op": "ref" } }, "op": "overlap", @@ -205,7 +205,7 @@ describe('Essence', () => { "step": -1, "operand": { "name": "m", - "op": "ref", + "op": "ref" } }, "op": "overlap", diff --git a/src/common/models/filter-clause/filter-clause.mocha.ts b/src/common/models/filter-clause/filter-clause.mocha.ts index 073320590..4fcdee58a 100644 --- a/src/common/models/filter-clause/filter-clause.mocha.ts +++ b/src/common/models/filter-clause/filter-clause.mocha.ts @@ -95,7 +95,7 @@ describe('FilterClause', () => { operand: { op: 'timeShift', duration: 'P5D', - step: -1 , + step: -1 } } } diff --git a/src/common/models/filter-clause/filter-clause.ts b/src/common/models/filter-clause/filter-clause.ts index 61eeed7f9..14a13be05 100644 --- a/src/common/models/filter-clause/filter-clause.ts +++ b/src/common/models/filter-clause/filter-clause.ts @@ -110,7 +110,7 @@ export class FilterClause implements Instance let dimension = ""; if (ex instanceof ChainableExpression) { if (ex.operand instanceof RefExpression) { - dimension = ex.operand.name + dimension = ex.operand.name; } } diff --git a/src/common/models/filter/filter.ts b/src/common/models/filter/filter.ts index 86113bff3..3cdf777bf 100644 --- a/src/common/models/filter/filter.ts +++ b/src/common/models/filter/filter.ts @@ -76,7 +76,7 @@ export class Filter implements Instance { } else if (expression instanceof AndExpression) { clauses = expression.getExpressionList().map(c => FilterClause.fromExpression(c)); } else { - clauses = [FilterClause.fromExpression(expression)] + clauses = [FilterClause.fromExpression(expression)]; } return new Filter(>List(clauses)); diff --git a/src/common/models/granularity/granularity.ts b/src/common/models/granularity/granularity.ts index 5adc0cd05..9cb427ee2 100644 --- a/src/common/models/granularity/granularity.ts +++ b/src/common/models/granularity/granularity.ts @@ -135,7 +135,7 @@ export class NumberHelper { static supportedGranularities = (bucketedBy: Granularity) => { return makeNumberBuckets(getBucketSize(bucketedBy), 10); - }; + } } function getHelperForKind(kind: ContinuousDimensionKind) { diff --git a/src/common/models/measure/measure.ts b/src/common/models/measure/measure.ts index 1d63f68db..844cfb059 100644 --- a/src/common/models/measure/measure.ts +++ b/src/common/models/measure/measure.ts @@ -217,7 +217,7 @@ export class Measure extends BaseImmutable { operand: formulaExpression, expression: $(formulaName).divide($(formulaName, nestingLevel)).multiply(100) }); - } else if (nestingLevel == 0) { + } else if (nestingLevel === 0) { return formulaExpression; } else { throw new Error(`wrong nesting level: ${nestingLevel}`); diff --git a/src/common/models/split-combine/split-combine.ts b/src/common/models/split-combine/split-combine.ts index fb0fc4ad5..762d88b84 100644 --- a/src/common/models/split-combine/split-combine.ts +++ b/src/common/models/split-combine/split-combine.ts @@ -34,7 +34,7 @@ export interface SplitCombineValue { limitAction: LimitExpression; } -export type SplitCombineJS = string | SplitCombineJSFull +export type SplitCombineJS = string | SplitCombineJSFull; export interface SplitCombineJSFull { expression: ExpressionJS; diff --git a/src/common/utils/circumstances-handler/circumstances-handler.tsx b/src/common/utils/circumstances-handler/circumstances-handler.tsx index ea5ca47c1..5c7a2d444 100644 --- a/src/common/utils/circumstances-handler/circumstances-handler.tsx +++ b/src/common/utils/circumstances-handler/circumstances-handler.tsx @@ -54,7 +54,7 @@ export class CircumstancesHandler { var kinds: string[] = splits.toArray().map((split: SplitCombine) => split.getDimension(dataCube.dimensions).kind); return CircumstancesHandler.strictCompare(selectors, kinds); }; - }; + } public static haveAtLeastSplitKinds = (...kinds: string[]) => { return (splits: Splits, dataCube: DataCube): boolean => { @@ -64,7 +64,7 @@ export class CircumstancesHandler { return kinds.every((kind) => actualKinds.indexOf(kind) > -1); }; - }; + } public static EMPTY() { return new CircumstancesHandler(); diff --git a/src/server/routes/error/error.mocha.ts b/src/server/routes/error/error.mocha.ts index 675428609..4c1dd54d1 100644 --- a/src/server/routes/error/error.mocha.ts +++ b/src/server/routes/error/error.mocha.ts @@ -47,7 +47,7 @@ describe('error route', () => { "at LineChart.floorRange (http://localhost:9090/swiv-main.9dcd61eb37d2c3c22868.js:52026:50)\n " + "at LineChart.globalMouseUpListener (http://localhost:9090/swiv-main.9dcd61eb37d2c3c22868.js:52052:36)" }; - it('gets a 200', (testComplete:any) => { + it('gets a 200', (testComplete: any) => { supertest(app) .post('/') .set('Content-Type', "application/json") @@ -59,7 +59,7 @@ describe('error route', () => { }); }); - it('validates error has a message', (testComplete:any) => { + it('validates error has a message', (testComplete: any) => { supertest(app) .post('/') .set('Content-Type', "application/json") diff --git a/src/server/routes/health/health.mocha.ts b/src/server/routes/health/health.mocha.ts index 7fa434a8e..215c94a5b 100644 --- a/src/server/routes/health/health.mocha.ts +++ b/src/server/routes/health/health.mocha.ts @@ -24,7 +24,7 @@ var app = express(); app.use('/', healthRouter); describe('health router', () => { - it('gets a 200', (testComplete:any) => { + it('gets a 200', (testComplete: any) => { supertest(app) .get('/') .expect(200, testComplete); diff --git a/src/server/routes/mkurl/mkurl.mocha.ts b/src/server/routes/mkurl/mkurl.mocha.ts index 9400070e6..01df515e7 100644 --- a/src/server/routes/mkurl/mkurl.mocha.ts +++ b/src/server/routes/mkurl/mkurl.mocha.ts @@ -44,7 +44,7 @@ app.use((req: SwivRequest, res: Response, next: Function) => { app.use('/', mkurlRouter); describe('mkurl router', () => { - it('gets a simple url back', (testComplete:any) => { + it('gets a simple url back', (testComplete: any) => { supertest(app) .post('/') .set('Content-Type', "application/json") @@ -71,7 +71,7 @@ describe('mkurl router', () => { }, testComplete); }); - it('gets a complex url back', (testComplete:any) => { + it('gets a complex url back', (testComplete: any) => { supertest(app) .post('/') .set('Content-Type', "application/json") @@ -97,7 +97,7 @@ describe('mkurl router', () => { }, testComplete); }); - it('gets a url filtered on article name back', (testComplete:any) => { + it('gets a url filtered on article name back', (testComplete: any) => { supertest(app) .post('/') .set('Content-Type', "application/json") @@ -123,7 +123,7 @@ describe('mkurl router', () => { }, testComplete); }); - it('gets a url filtered on match back', (testComplete:any) => { + it('gets a url filtered on match back', (testComplete: any) => { supertest(app) .post('/') .set('Content-Type', "application/json") @@ -168,7 +168,7 @@ describe('mkurl router', () => { }, testComplete); }); - it('gets a url filtered on contains', (testComplete:any) => { + it('gets a url filtered on contains', (testComplete: any) => { supertest(app) .post('/') .set('Content-Type', "application/json") @@ -214,7 +214,7 @@ describe('mkurl router', () => { }, testComplete); }); - it('gets a url filtered on set contains', (testComplete:any) => { + it('gets a url filtered on set contains', (testComplete: any) => { supertest(app) .post('/') .set('Content-Type', "application/json") @@ -260,7 +260,7 @@ describe('mkurl router', () => { }, testComplete); }); - it('gets a url with split on time back', (testComplete:any) => { + it('gets a url with split on time back', (testComplete: any) => { supertest(app) .post('/') .set('Content-Type', "application/json") diff --git a/src/server/routes/swiv/swiv.mocha.ts b/src/server/routes/swiv/swiv.mocha.ts index 29b3445b6..13fbcd64c 100644 --- a/src/server/routes/swiv/swiv.mocha.ts +++ b/src/server/routes/swiv/swiv.mocha.ts @@ -41,7 +41,7 @@ app.use((req: SwivRequest, res: express.Response, next: Function) => { app.use('/', swivRouter); describe('swiv router', () => { - it('does a query (value)', (testComplete:any) => { + it('does a query (value)', (testComplete: any) => { supertest(app) .get('/') .expect(200) diff --git a/src/server/utils/cluster-manager/cluster-manager.ts b/src/server/utils/cluster-manager/cluster-manager.ts index 2da359fd7..484033395 100644 --- a/src/server/utils/cluster-manager/cluster-manager.ts +++ b/src/server/utils/cluster-manager/cluster-manager.ts @@ -54,7 +54,9 @@ export interface ClusterManagerOptions { generateExternalName?: (external: External) => string; } -function noop(): Promise { return Promise.resolve(null)} +function noop(): Promise { + return Promise.resolve(null); +} function getSourceFromExternal(external: External): string { return String(external.source); @@ -74,9 +76,9 @@ export class ClusterManager { public generateExternalName: (external: External) => string; public requestDecoratorModule: DruidRequestDecoratorModule; - private sourceListRefreshInterval: number = 0; + private sourceListRefreshInterval = 0; private sourceListRefreshTimer: NodeJS.Timer = null; - private sourceReintrospectInterval: number = 0; + private sourceReintrospectInterval = 0; private sourceReintrospectTimer: NodeJS.Timer = null; private initialConnectionTimer: NodeJS.Timer = null; diff --git a/tslint.json b/tslint.json index c45aff477..12c1862e4 100644 --- a/tslint.json +++ b/tslint.json @@ -21,7 +21,6 @@ "interface-name": false, "jsdoc-format": true, "label-position": true, - "label-undefined": true, "max-line-length": [true, 200], "member-access": false, "member-ordering": [true, @@ -39,9 +38,8 @@ "trace" ], "no-construct": false, - "no-constructor-vars": true, + "no-parameter-properties": true, "no-debugger": true, - "no-duplicate-key": true, "no-duplicate-variable": false, "no-empty": false, "no-eval": true, From 9e60cf923d45f8cdc9074feb9ff98dd8efd8e071 Mon Sep 17 00:00:00 2001 From: Piotr Szczepanik Date: Tue, 6 Mar 2018 11:18:59 +0100 Subject: [PATCH 2/2] Dependencies order fix --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a4df8334d..b8bc4dfc7 100644 --- a/package.json +++ b/package.json @@ -122,8 +122,8 @@ "svg-inline-loader": "0.8.0", "svg-loader": "0.0.2", "ts-node": "4.1.0", - "typescript": "2.6.2", "tslint": "5.9.1", + "typescript": "2.6.2", "webpack": "3.10.0", "webpack-dev-middleware": "2.0.3", "webpack-hot-middleware": "2.21.0",