diff --git a/e2e/app.e2e-spec.ts b/e2e/app.e2e-spec.ts index 18c09bb4..b6d6bf28 100644 --- a/e2e/app.e2e-spec.ts +++ b/e2e/app.e2e-spec.ts @@ -37,6 +37,6 @@ describe('Tree App', () => { return antiquaNode.getAttribute(key).then((value: string) => expect(value).toEqual(attrs[key])); }); - return Promise.all(expectations); + return Promise.all(expectations as any); }); }); diff --git a/e2e/tslint.json b/e2e/tslint.json new file mode 100644 index 00000000..131a7d25 --- /dev/null +++ b/e2e/tslint.json @@ -0,0 +1,6 @@ +{ + "extends": ["../tslint.json"], + "rules": { + "rxjs-add": { "severity": "off" } + } +} diff --git a/package.json b/package.json index b9f02ef4..8821931a 100644 --- a/package.json +++ b/package.json @@ -85,6 +85,7 @@ "protractor": "5.2.0", "rimraf": "2.6.2", "rxjs": "5.5.2", + "rxjs-tslint-rules": "3.1.2", "shelljs": "0.7.8", "systemjs-builder": "0.16.12", "ts-node": "3.3.0", diff --git a/src/draggable/node-draggable.service.ts b/src/draggable/node-draggable.service.ts index bf4cd40a..89841db7 100644 --- a/src/draggable/node-draggable.service.ts +++ b/src/draggable/node-draggable.service.ts @@ -1,5 +1,5 @@ import { Injectable, ElementRef } from '@angular/core'; -import { Subject } from 'rxjs/Rx'; +import { Subject } from 'rxjs/Subject'; import { CapturedNode } from './captured-node'; import { NodeDraggableEvent } from './draggable.events'; diff --git a/src/menu/node-menu.service.ts b/src/menu/node-menu.service.ts index e88ee211..6c0c00f8 100644 --- a/src/menu/node-menu.service.ts +++ b/src/menu/node-menu.service.ts @@ -1,5 +1,6 @@ import { Injectable, ElementRef } from '@angular/core'; -import { Subject, Observable } from 'rxjs/Rx'; +import { Subject } from 'rxjs/Subject'; +import { Observable } from 'rxjs/Observable'; import { NodeMenuEvent, NodeMenuAction } from './menu.events'; @Injectable() diff --git a/src/rxjs-imports.ts b/src/rxjs-imports.ts new file mode 100644 index 00000000..41999216 --- /dev/null +++ b/src/rxjs-imports.ts @@ -0,0 +1,3 @@ +import 'rxjs/add/operator/filter'; +import 'rxjs/add/observable/of'; + diff --git a/src/tree.module.ts b/src/tree.module.ts index 0330d940..0d2c8df7 100644 --- a/src/tree.module.ts +++ b/src/tree.module.ts @@ -1,3 +1,5 @@ +import './rxjs-imports'; + import { NgModule } from '@angular/core'; import { TreeComponent } from './tree.component'; import { TreeInternalComponent } from './tree-internal.component'; diff --git a/src/tree.service.ts b/src/tree.service.ts index 1802844c..44751ba9 100644 --- a/src/tree.service.ts +++ b/src/tree.service.ts @@ -12,7 +12,8 @@ import { import { RenamableNode } from './tree.types'; import { Tree } from './tree'; import { TreeController } from './tree-controller'; -import { Observable, Subject } from 'rxjs/Rx'; +import { Observable } from 'rxjs/Observable'; +import { Subject } from 'rxjs/Subject'; import { ElementRef, Inject, Injectable } from '@angular/core'; import { NodeDraggableService } from './draggable/node-draggable.service'; import { NodeDraggableEvent } from './draggable/draggable.events'; diff --git a/src/tree.ts b/src/tree.ts index 21b3bb4c..780f4952 100644 --- a/src/tree.ts +++ b/src/tree.ts @@ -12,7 +12,8 @@ import { defaultsDeep } from './utils/fn.utils'; -import { Observable, Observer } from 'rxjs/Rx'; +import { Observable } from 'rxjs/Observable'; +import { Observer } from 'rxjs/Observer'; import { TreeModel, RenamableNode, FoldingType, TreeStatus, TreeModelSettings, ChildrenLoadingFunction } from './tree.types'; import { NodeMenuItem } from './menu/node-menu.component'; diff --git a/test/draggable/node-draggable.service.spec.ts b/test/draggable/node-draggable.service.spec.ts index db0e2d58..1bb32111 100644 --- a/test/draggable/node-draggable.service.spec.ts +++ b/test/draggable/node-draggable.service.spec.ts @@ -1,5 +1,5 @@ import { inject, TestBed } from '@angular/core/testing'; -import { Subject } from 'rxjs/Rx'; +import { Subject } from 'rxjs/Subject'; import { NodeDraggableService } from '../../src/draggable/node-draggable.service'; import { CapturedNode } from '../../src/draggable/captured-node'; import { ElementRef } from '@angular/core'; diff --git a/test/menu/node-menu.service.spec.ts b/test/menu/node-menu.service.spec.ts index 3a4486a0..d417f526 100644 --- a/test/menu/node-menu.service.spec.ts +++ b/test/menu/node-menu.service.spec.ts @@ -1,6 +1,6 @@ import { TestBed } from '@angular/core/testing'; import { NodeMenuService } from '../../src/menu/node-menu.service'; -import { Subject } from 'rxjs/Rx'; +import { Subject } from 'rxjs/Subject'; import { ElementRef } from '@angular/core'; import { NodeMenuEvent, NodeMenuAction } from '../../src/menu/menu.events'; diff --git a/test/test.ts b/test/test.ts index 9bf72267..5189ecd9 100644 --- a/test/test.ts +++ b/test/test.ts @@ -1,5 +1,7 @@ // This file is required by karma.conf.js and loads recursively all the .spec and framework files +import '../src/rxjs-imports'; + import 'zone.js/dist/long-stack-trace-zone'; import 'zone.js/dist/proxy.js'; import 'zone.js/dist/sync-test'; diff --git a/test/tree.service.spec.ts b/test/tree.service.spec.ts index f7c0a71f..3fdac1a0 100644 --- a/test/tree.service.spec.ts +++ b/test/tree.service.spec.ts @@ -1,6 +1,6 @@ import { TestBed } from '@angular/core/testing'; import { TreeService } from '../src/tree.service'; -import { Subject } from 'rxjs/Rx'; +import { Subject } from 'rxjs/Subject'; import { NodeDraggableService } from '../src/draggable/node-draggable.service'; import { Tree } from '../src/tree'; import { diff --git a/tslint.json b/tslint.json index d78d28cc..2e014e2c 100644 --- a/tslint.json +++ b/tslint.json @@ -2,6 +2,9 @@ "rulesDirectory": [ "node_modules/codelyzer" ], + "extends": [ + "rxjs-tslint-rules" + ], "rules": { "callable-types": true, "class-name": true, @@ -100,6 +103,15 @@ "check-preblock" ], + "rxjs-add": { + "options": [{ + "allowElsewhere": false, + "allowUnused": false, + "file": "./src/rxjs-imports.ts" + }], + "severity": "error" + }, + "directive-selector": [true, "attribute", "", "camelCase"], "component-selector": [false, "element", "", "kebab-case"], "use-input-property-decorator": true,