Skip to content

Commit b8b9253

Browse files
committed
build: Switch @sentry/angular to using eslint
1 parent 45dd805 commit b8b9253

File tree

8 files changed

+148
-770
lines changed

8 files changed

+148
-770
lines changed

.eslintignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# THIS IS A TEMPORARY FILE
22
# THIS WILL BE REMOVED AFTER WE FINISH ESLINT UPGRADE
33

4-
packages/angular/**/*
54
packages/ember/**/*
65
packages/gatsby/**/*
76
packages/integrations/**/*

packages/angular/.eslintrc.js

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
module.exports = {
2+
root: true,
3+
env: {
4+
es6: true,
5+
},
6+
parserOptions: {
7+
ecmaVersion: 2018,
8+
},
9+
extends: ['../../.eslintrc.js'],
10+
ignorePatterns: ['build/**/*', 'dist/**/*', 'esm/**/*', 'examples/**/*', 'scripts/**/*'],
11+
overrides: [
12+
{
13+
files: ['*.ts', '*.tsx', '*.d.ts'],
14+
parserOptions: {
15+
project: './tsconfig.json',
16+
},
17+
},
18+
],
19+
};

packages/angular/package.json

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,12 @@
4242
"build:watch:esm": "tsc -p tsconfig.esm.json -w --preserveWatchOutput",
4343
"clean": "rimraf dist coverage build esm",
4444
"link:yarn": "yarn link",
45-
"lint": "run-s lint:prettier lint:tslint",
46-
"lint:prettier": "prettier-check \"{src,test}/**/*.{ts,tsx}\"",
47-
"lint:tslint": "tslint -t stylish -p .",
48-
"lint:tslint:json": "tslint --format json -p . | tee lint-results.json",
49-
"fix": "run-s fix:tslint fix:prettier",
50-
"fix:prettier": "prettier --write \"{src,test}/**/*.{ts,tsx}\"",
51-
"fix:tslint": "tslint --fix -t stylish -p ."
45+
"lint": "run-s lint:prettier lint:eslint",
46+
"lint:prettier": "prettier-check \"{src,test}/**/*.ts\"",
47+
"lint:eslint": "eslint . --cache --cache-location '../../eslintcache/' --format stylish",
48+
"fix": "run-s fix:eslint fix:prettier",
49+
"fix:prettier": "prettier --write \"{src,test}/**/*.ts\"",
50+
"fix:eslint": "eslint . --format stylish --fix"
5251
},
5352
"sideEffects": false
5453
}

packages/angular/src/errorhandler.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ class SentryErrorHandler implements AngularErrorHandler {
6161

6262
// When in development mode, log the error to console for immediate feedback.
6363
if (this._options.logErrors) {
64+
// eslint-disable-next-line no-console
6465
console.error(extractedError);
6566
}
6667

packages/angular/src/tracing.ts

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -54,14 +54,7 @@ export function getActiveTransaction(): Transaction | undefined {
5454
*/
5555
@Injectable({ providedIn: 'root' })
5656
export class TraceService {
57-
private routingSpan?: Span;
58-
59-
public constructor(private readonly router: Router) {
60-
this.navStart$.subscribe();
61-
this.navEnd$.subscribe();
62-
}
63-
64-
public navStart$: Observable<Event> = this.router.events.pipe(
57+
public navStart$: Observable<Event> = this._router.events.pipe(
6558
filter(event => event instanceof NavigationStart),
6659
tap(event => {
6760
if (!instrumentationInitialized) {
@@ -80,7 +73,7 @@ export class TraceService {
8073
}
8174

8275
if (activeTransaction) {
83-
this.routingSpan = activeTransaction.startChild({
76+
this._routingSpan = activeTransaction.startChild({
8477
description: `${navigationEvent.url}`,
8578
op: `angular.routing`,
8679
tags: {
@@ -95,15 +88,22 @@ export class TraceService {
9588
}),
9689
);
9790

98-
public navEnd$: Observable<Event> = this.router.events.pipe(
91+
public navEnd$: Observable<Event> = this._router.events.pipe(
9992
filter(event => event instanceof NavigationEnd),
10093
tap(() => {
101-
if (this.routingSpan) {
102-
this.routingSpan.finish();
103-
delete this.routingSpan;
94+
if (this._routingSpan) {
95+
this._routingSpan.finish();
96+
delete this._routingSpan;
10497
}
10598
}),
10699
);
100+
101+
private _routingSpan?: Span;
102+
103+
public constructor(private readonly _router: Router) {
104+
this.navStart$.subscribe();
105+
this.navEnd$.subscribe();
106+
}
107107
}
108108

109109
const UNKNOWN_COMPONENT = 'unknown';
@@ -113,18 +113,18 @@ const UNKNOWN_COMPONENT = 'unknown';
113113
*/
114114
@Directive({ selector: '[trace]' })
115115
export class TraceDirective implements OnInit, AfterViewInit {
116-
private tracingSpan?: Span;
117-
118116
@Input('trace') public componentName: string = UNKNOWN_COMPONENT;
119117

118+
private _tracingSpan?: Span;
119+
120120
/**
121121
* Implementation of OnInit lifecycle method
122122
* @inheritdoc
123123
*/
124124
public ngOnInit(): void {
125125
const activeTransaction = getActiveTransaction();
126126
if (activeTransaction) {
127-
this.tracingSpan = activeTransaction.startChild({
127+
this._tracingSpan = activeTransaction.startChild({
128128
description: `<${this.componentName}>`,
129129
op: `angular.initialize`,
130130
});
@@ -136,8 +136,8 @@ export class TraceDirective implements OnInit, AfterViewInit {
136136
* @inheritdoc
137137
*/
138138
public ngAfterViewInit(): void {
139-
if (this.tracingSpan) {
140-
this.tracingSpan.finish();
139+
if (this._tracingSpan) {
140+
this._tracingSpan.finish();
141141
}
142142
}
143143
}
@@ -148,10 +148,11 @@ export class TraceDirective implements OnInit, AfterViewInit {
148148
export function TraceClassDecorator(): ClassDecorator {
149149
let tracingSpan: Span;
150150

151-
return (target: Function) => {
151+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
152+
return target => {
152153
// tslint:disable-next-line:no-unsafe-any
153154
const originalOnInit = target.prototype.ngOnInit;
154-
// tslint:disable-next-line:no-unsafe-any
155+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
155156
target.prototype.ngOnInit = function(...args: any[]): ReturnType<typeof originalOnInit> {
156157
const activeTransaction = getActiveTransaction();
157158
if (activeTransaction) {
@@ -161,14 +162,12 @@ export function TraceClassDecorator(): ClassDecorator {
161162
});
162163
}
163164
if (originalOnInit) {
164-
// tslint:disable-next-line:no-unsafe-any
165165
return originalOnInit.apply(this, args);
166166
}
167167
};
168168

169-
// tslint:disable-next-line:no-unsafe-any
170169
const originalAfterViewInit = target.prototype.ngAfterViewInit;
171-
// tslint:disable-next-line:no-unsafe-any
170+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
172171
target.prototype.ngAfterViewInit = function(...args: any[]): ReturnType<typeof originalAfterViewInit> {
173172
if (tracingSpan) {
174173
tracingSpan.finish();
@@ -185,8 +184,10 @@ export function TraceClassDecorator(): ClassDecorator {
185184
* Decorator function that can be used to capture a single lifecycle methods of the component.
186185
*/
187186
export function TraceMethodDecorator(): MethodDecorator {
187+
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type, @typescript-eslint/ban-types
188188
return (target: Object, propertyKey: string | symbol, descriptor: PropertyDescriptor) => {
189189
const originalMethod = descriptor.value;
190+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
190191
descriptor.value = function(...args: any[]): ReturnType<typeof originalMethod> {
191192
const now = timestampWithMs();
192193
const activeTransaction = getActiveTransaction();

packages/angular/tslint.json

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)