diff options
author | Idan Amit <ia096e@intl.att.com> | 2018-08-26 16:05:19 +0300 |
---|---|---|
committer | Idan Amit <ia096e@intl.att.com> | 2018-08-26 16:05:19 +0300 |
commit | dc5da2d5d61bd20051ee8b5bffa23773ee7d44f3 (patch) | |
tree | 76d8c6ce475aea7c4bd8cef9ffc1be955baeec5c | |
parent | 138f7d22e0b8a143d45f23f7aecac0380318cafd (diff) |
Add tslint report to sdc-pubsub sonar
Added tslint report to sdc-pubsub sonar
Fixed all issues raised from tslint report
Change-Id: Iac8174b4a72f190c4b607c2d7ee55f7db457b4b5
Issue-ID: SDC-1668
Signed-off-by: Idan Amit <ia096e@intl.att.com>
-rw-r--r-- | lib/base-pubsub.ts | 49 | ||||
-rw-r--r-- | lib/plugin-pubsub.ts | 6 | ||||
-rw-r--r-- | package.json | 5 | ||||
-rw-r--r-- | pom.xml | 11 | ||||
-rw-r--r-- | tslint.json | 133 |
5 files changed, 175 insertions, 29 deletions
diff --git a/lib/base-pubsub.ts b/lib/base-pubsub.ts index 41e8039..36b959a 100644 --- a/lib/base-pubsub.ts +++ b/lib/base-pubsub.ts @@ -3,20 +3,20 @@ declare const window: Window; export class BasePubSub { subscribers: Map<string, ISubscriber>; - eventsCallbacks: Array<Function>; + eventsCallbacks: Function[]; clientId: string; - eventsToWait: Map<string, Array<string>>; + eventsToWait: Map<string, string[]>; lastEventNotified: string; constructor(pluginId: string) { this.subscribers = new Map<string, ISubscriber>(); this.eventsCallbacks = []; - this.eventsToWait = new Map<string, Array<string>>(); + this.eventsToWait = new Map<string, string[]>(); this.clientId = pluginId; - this.lastEventNotified = ""; + this.lastEventNotified = ''; this.onMessage = this.onMessage.bind(this); - window.addEventListener("message", this.onMessage); + window.addEventListener('message', this.onMessage); } public register(subscriberId: string, subscriberWindow: Window, subscriberUrl: string) { @@ -33,8 +33,8 @@ export class BasePubSub { } public on(callback: Function) { - let functionExists = this.eventsCallbacks.find((func: Function) => { - return callback.toString() == func.toString() + const functionExists = this.eventsCallbacks.find((func: Function) => { + return callback.toString() === func.toString(); }); if (!functionExists) { @@ -43,12 +43,12 @@ export class BasePubSub { } public off(callback: Function) { - let index = this.eventsCallbacks.indexOf(callback); - this.eventsCallbacks.splice(index, 1) + const index = this.eventsCallbacks.indexOf(callback); + this.eventsCallbacks.splice(index, 1); } - public notify(eventType:string, eventData?:any) { - let eventObj = { + public notify(eventType: string, eventData?: any) { + const eventObj = { type: eventType, data: eventData, originId: this.clientId @@ -63,12 +63,12 @@ export class BasePubSub { return { subscribe: function(callbackFn) { - if(this.subscribers.size !== 0) { - let subscribersToNotify = Array.from(this.subscribers.keys()); + if (this.subscribers.size !== 0) { + const subscribersToNotify = Array.from(this.subscribers.keys()); const checkNotifyComplete = (subscriberId: string) => { - let index = subscribersToNotify.indexOf(subscriberId); + const index = subscribersToNotify.indexOf(subscriberId); subscribersToNotify.splice(index, 1); if (subscribersToNotify.length === 0) { @@ -77,31 +77,30 @@ export class BasePubSub { }; this.subscribers.forEach((subscriber: ISubscriber, subscriberId: string) => { - if (this.eventsToWait.has(subscriberId) && this.eventsToWait.get(subscriberId).indexOf(eventType) !== -1) { + if (this.eventsToWait.has(subscriberId) && + this.eventsToWait.get(subscriberId).indexOf(eventType) !== -1) { - const actionCompletedFunction = (eventData, subId = subscriberId) => { - if (eventData.type == "ACTION_COMPLETED") { + const actionCompletedFunction = (actionCompletedEventData, subId = subscriberId) => { + if (actionCompletedEventData.type === 'ACTION_COMPLETED') { checkNotifyComplete(subId); } this.off(actionCompletedFunction); }; this.on(actionCompletedFunction); - } - else { + } else { checkNotifyComplete(subscriberId); } }); - } - else { + } else { callbackFn(); } }.bind(this) - } + }; } - public isWaitingForEvent(eventName: string) : boolean { - return Array.from(this.eventsToWait.values()).some((eventsList: Array<string>) => + public isWaitingForEvent(eventName: string): boolean { + return Array.from(this.eventsToWait.values()).some((eventsList: string[]) => eventsList.indexOf(eventName) !== -1 ); } @@ -110,7 +109,7 @@ export class BasePubSub { if (this.subscribers.has(event.data.originId)) { this.eventsCallbacks.forEach((callback: Function) => { callback(event.data, event); - }) + }); } } } diff --git a/lib/plugin-pubsub.ts b/lib/plugin-pubsub.ts index 3a34de9..ec4afb2 100644 --- a/lib/plugin-pubsub.ts +++ b/lib/plugin-pubsub.ts @@ -1,16 +1,16 @@ -import {BasePubSub} from "./base-pubsub"; +import { BasePubSub } from './base-pubsub'; declare const window: Window; export class PluginPubSub extends BasePubSub { - constructor(pluginId: string, parentUrl: string, eventsToWait?: Array<string>) { + constructor(pluginId: string, parentUrl: string, eventsToWait?: string[]) { super(pluginId); this.register('sdc-hub', window.parent, parentUrl); this.subscribe(eventsToWait); } - public subscribe(eventsToWait?: Array<string>) { + public subscribe(eventsToWait?: string[]) { const registerData = { pluginId: this.clientId, eventsToWait: eventsToWait || [] diff --git a/package.json b/package.json index a075e40..455d508 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ "scripts": { "clean": "rimraf dist", "build": "tsc && webpack --mode development", - "test": "jest" + "test": "jest", + "lint": "./node_modules/.bin/tslint -t json -o ./coverage/tslint-report.json --project ./tsconfig.json" }, "keywords": [ "sdc", @@ -26,6 +27,8 @@ "jest-sonar-reporter": "^2.0.0", "rimraf": "^2.6.2", "ts-jest": "^23.0.1", + "tslint": "^5.11.0", + "tslint-sonarts": "^1.7.0", "typescript": "2.7.2", "webpack": "4.12.0", "webpack-cli": "^3.1.0" @@ -18,6 +18,7 @@ <sonar.tests>lib</sonar.tests> <sonar.test.inclusions>lib/*.spec.ts</sonar.test.inclusions> <sonar.typescript.lcov.reportPaths>coverage/lcov.info</sonar.typescript.lcov.reportPaths> + <sonar.typescript.tslint.reportPaths>coverage/tslint-report.json</sonar.typescript.tslint.reportPaths> <sonar.testExecutionReportPaths>coverage/test-report.xml</sonar.testExecutionReportPaths> </properties> @@ -113,6 +114,16 @@ </execution> <execution> + <id>npm tslint</id> + <goals> + <goal>npm</goal> + </goals> + <configuration> + <arguments>run lint</arguments> + </configuration> + </execution> + + <execution> <id>npm run build</id> <goals> <goal>npm</goal> diff --git a/tslint.json b/tslint.json new file mode 100644 index 0000000..c08c75a --- /dev/null +++ b/tslint.json @@ -0,0 +1,133 @@ +{ + "extends": [ + "tslint:recommended", + "tslint-sonarts" + ], + "rules": { + "cognitive-complexity": false, + "trailing-comma": true, + "callable-types": true, + "class-name": true, + "comment-format": [ + true, + "check-space" + ], + "curly": true, + "eofline": true, + "forin": true, + "import-spacing": true, + "indent": [ + true, + "spaces" + ], + //"interface-over-type-literal": true, + //"label-position": true, + "max-line-length": [ + true, + 120 + ], + "member-access": false, + "member-ordering": [ + true, + { + "order": "fields-first" + } + ], + "no-arg": true, + "no-bitwise": true, + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-construct": true, + "no-debugger": true, + "no-empty": true, + "no-empty-interface": true, + "no-eval": true, + "no-inferrable-types": false, + "no-shadowed-variable": true, + "no-string-literal": true, + "no-string-throw": true, + "no-switch-case-fall-through": true, + "no-trailing-whitespace": true, + "no-unused-expression": [ + true, + "allow-fast-null-checks" + ], + "no-var-keyword": true, + "object-literal-sort-keys": false, + "one-line": [ + true, + "check-open-brace", + "check-catch", + "check-else", + "check-whitespace" + ], + "prefer-const": true, + "quotemark": [ + true, + "single" + ], + "semicolon": [ + true, + "always" + ], + "triple-equals": [ + true, + "allow-null-check", + "allow-undefined-check" + ], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + } + ], + "variable-name": [ + true, + "check-format", + "ban-keywords" + ], + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-module", + "check-separator", + "check-type", + "check-preblock" + ], + "ban-types": [ + true, + [ + "Object", + "Avoid using the `Object` type. Did you mean `object`?" + ], + [ + "Boolean", + "Avoid using the `Boolean` type. Did you mean `boolean`?" + ], + [ + "Number", + "Avoid using the `Number` type. Did you mean `number`?" + ], + [ + "String", + "Avoid using the `String` type. Did you mean `string`?" + ], + [ + "Symbol", + "Avoid using the `Symbol` type. Did you mean `symbol`?" + ] + ] + } +}
\ No newline at end of file |