Skip to content

Commit 64f252b

Browse files
authored
Merge pull request #907 from nextcloud-libraries/chore/eslint
chore: update ESLint to v9 and apply code style changes
2 parents 819bf77 + 2c21193 commit 64f252b

File tree

10 files changed

+1161
-2319
lines changed

10 files changed

+1161
-2319
lines changed

.eslintrc.json

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

eslint.config.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/*
2+
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
3+
* SPDX-License-Identifier: CC0-1.0
4+
*/
5+
6+
import { recommendedLibrary } from '@nextcloud/eslint-config'
7+
import { defineConfig } from 'eslint/config'
8+
9+
export default defineConfig([
10+
{
11+
linterOptions: {
12+
reportUnusedDisableDirectives: 'error',
13+
reportUnusedInlineConfigs: 'error',
14+
},
15+
},
16+
17+
...recommendedLibrary,
18+
])

lib/ConsoleLogger.ts

Lines changed: 42 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,44 @@
22
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
33
* SPDX-License-Identifier: GPL-3.0-or-later
44
*/
5-
import { IContext, ILogger, LogLevel } from './contracts'
65

7-
export class ConsoleLogger implements ILogger {
6+
import type { IContext, ILogger } from './contracts.ts'
7+
8+
import { LogLevel } from './contracts.ts'
89

10+
/* eslint-disable no-console -- This class is a console logger so it needs to write to the console. */
11+
export class ConsoleLogger implements ILogger {
912
private context: IContext
1013

1114
constructor(context?: IContext) {
1215
this.context = context || {}
1316
}
1417

15-
private formatMessage(message: string|Error, level: LogLevel, context?: IContext): string {
18+
private formatMessage(message: string | Error, level: LogLevel, context?: IContext): string {
1619
let msg = '[' + LogLevel[level].toUpperCase() + '] '
1720

1821
if (context && context.app) {
1922
msg += context.app + ': '
2023
}
2124

22-
if (typeof message === 'string') return msg + message
25+
if (typeof message === 'string') {
26+
return msg + message
27+
}
2328

2429
// basic error formatting
2530
msg += `Unexpected ${message.name}`
26-
if (message.message) msg += ` "${message.message}"`
31+
if (message.message) {
32+
msg += ` "${message.message}"`
33+
}
2734
// only add stack trace when debugging
28-
if (level === LogLevel.Debug && message.stack) msg += `\n\nStack trace:\n${message.stack}`
35+
if (level === LogLevel.Debug && message.stack) {
36+
msg += `\n\nStack trace:\n${message.stack}`
37+
}
2938

3039
return msg
3140
}
3241

33-
log(level: LogLevel, message: string|Error, context: IContext) {
42+
log(level: LogLevel, message: string | Error, context: IContext) {
3443
// Skip if level is configured and this is below the level
3544
if (typeof this.context?.level === 'number' && level < this.context?.level) {
3645
return
@@ -42,45 +51,44 @@ export class ConsoleLogger implements ILogger {
4251
}
4352

4453
switch (level) {
45-
case LogLevel.Debug:
46-
console.debug(this.formatMessage(message, LogLevel.Debug, context), context)
47-
break
48-
case LogLevel.Info:
49-
console.info(this.formatMessage(message, LogLevel.Info, context), context)
50-
break
51-
case LogLevel.Warn:
52-
console.warn(this.formatMessage(message, LogLevel.Warn, context), context)
53-
break
54-
case LogLevel.Error:
55-
console.error(this.formatMessage(message, LogLevel.Error, context), context)
56-
break
57-
case LogLevel.Fatal:
58-
default:
59-
console.error(this.formatMessage(message, LogLevel.Fatal, context), context)
60-
break
54+
case LogLevel.Debug:
55+
console.debug(this.formatMessage(message, LogLevel.Debug, context), context)
56+
break
57+
case LogLevel.Info:
58+
console.info(this.formatMessage(message, LogLevel.Info, context), context)
59+
break
60+
case LogLevel.Warn:
61+
console.warn(this.formatMessage(message, LogLevel.Warn, context), context)
62+
break
63+
case LogLevel.Error:
64+
console.error(this.formatMessage(message, LogLevel.Error, context), context)
65+
break
66+
case LogLevel.Fatal:
67+
default:
68+
console.error(this.formatMessage(message, LogLevel.Fatal, context), context)
69+
break
6170
}
6271
}
6372

64-
debug(message: string|Error, context?: IContext): void {
65-
this.log(LogLevel.Debug, message, Object.assign({}, this.context, context))
73+
debug(message: string | Error, context?: IContext): void {
74+
this.log(LogLevel.Debug, message, { ...this.context, ...context })
6675
}
6776

68-
info(message: string|Error, context?: IContext): void {
69-
this.log(LogLevel.Info, message, Object.assign({}, this.context, context))
77+
info(message: string | Error, context?: IContext): void {
78+
this.log(LogLevel.Info, message, { ...this.context, ...context })
7079
}
7180

72-
warn(message: string|Error, context?: IContext): void {
73-
this.log(LogLevel.Warn, message, Object.assign({}, this.context, context))
81+
warn(message: string | Error, context?: IContext): void {
82+
this.log(LogLevel.Warn, message, { ...this.context, ...context })
7483
}
7584

76-
error(message: string|Error, context?: IContext): void {
77-
this.log(LogLevel.Error, message, Object.assign({}, this.context, context))
85+
error(message: string | Error, context?: IContext): void {
86+
this.log(LogLevel.Error, message, { ...this.context, ...context })
7887
}
7988

80-
fatal(message: string|Error, context?: IContext): void {
81-
this.log(LogLevel.Fatal, message, Object.assign({}, this.context, context))
89+
fatal(message: string | Error, context?: IContext): void {
90+
this.log(LogLevel.Fatal, message, { ...this.context, ...context })
8291
}
83-
8492
}
8593

8694
/**

lib/LoggerBuilder.ts

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22
* SPDX-FileCopyrightText: 2020-2024 Nextcloud GmbH and Nextcloud contributors
33
* SPDX-License-Identifier: GPL-3.0-or-later
44
*/
5+
6+
import type { IContext, ILogger, ILoggerFactory } from './contracts.ts'
7+
58
import { getCurrentUser } from '@nextcloud/auth'
6-
import { IContext, ILogger, ILoggerFactory, LogLevel } from './contracts'
9+
import { LogLevel } from './contracts.ts'
710

8-
/**
9-
* @notExported
10-
*/
1111
export class LoggerBuilder {
12-
1312
protected context: IContext
1413

1514
protected factory: ILoggerFactory
@@ -39,13 +38,13 @@ export class LoggerBuilder {
3938
return this
4039
}
4140

42-
/* eslint-disable jsdoc/no-undefined-types */
4341
/**
4442
* Set the user id within the logging context
43+
*
4544
* @param uid User ID
4645
* @see {@link detectUser}
4746
*/
48-
/* eslint-enable jsdoc/no-undefined-types */
47+
4948
setUid(uid: string): LoggerBuilder {
5049
this.context.uid = uid
5150
return this
@@ -95,5 +94,4 @@ export class LoggerBuilder {
9594

9695
return this.factory(this.context)
9796
}
98-
9997
}

lib/global.d.ts

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,15 @@
22
* SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
33
* SPDX-License-Identifier: GPL-3.0-or-later or LGPL-3.0-or-later
44
*/
5-
import type { LogLevel } from './contracts'
5+
6+
import type { LogLevel } from './contracts.ts'
67

78
declare global {
89
interface Window {
910
_oc_config: {
10-
loglevel: LogLevel,
11-
},
12-
_oc_debug: boolean,
11+
loglevel: LogLevel
12+
}
13+
_oc_debug: boolean
1314
}
1415
}
1516

lib/index.ts

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,14 @@
22
* SPDX-FileCopyrightText: 2019-2024 Nextcloud GmbH and Nextcloud contributors
33
* SPDX-License-Identifier: GPL-3.0-or-later
44
*/
5-
import { buildConsoleLogger } from './ConsoleLogger'
6-
import { ILogger } from './contracts'
7-
import { LoggerBuilder } from './LoggerBuilder'
5+
6+
import type { ILogger } from './contracts.ts'
7+
8+
import { buildConsoleLogger } from './ConsoleLogger.ts'
9+
import { LoggerBuilder } from './LoggerBuilder.ts'
10+
11+
export type { LoggerBuilder }
12+
export type { ILogger, ILoggerFactory } from './contracts.ts'
813

914
/**
1015
* Build a customized logger instance
@@ -20,5 +25,4 @@ export function getLogger(): ILogger {
2025
return getLoggerBuilder().build()
2126
}
2227

23-
export { type LoggerBuilder }
24-
export { LogLevel, type ILogger, type ILoggerFactory } from './contracts'
28+
export { LogLevel } from './contracts.ts'

0 commit comments

Comments
 (0)