Skip to content

Commit 91db337

Browse files
committed
chore: adjust types
Signed-off-by: Ferdinand Thiessen <[email protected]>
1 parent 76b0584 commit 91db337

File tree

4 files changed

+17
-12
lines changed

4 files changed

+17
-12
lines changed

lib/configs/codeStyle.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import l10nPlugin from '../plugins/l10n/index.ts'
2020
*
2121
* @param options options defining the config preset flavor
2222
*/
23-
export function codeStyle(options: ConfigOptions): (Linter.Config | Linter.BaseConfig)[] {
23+
export function codeStyle(options: ConfigOptions): Linter.Config[] {
2424
return [
2525
// Nextcloud code style
2626
{

lib/index.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
33
* SPDX-License-Identifier: AGPL-3.0-or-later
44
*/
5+
6+
import type { Linter } from 'eslint'
57
import type { ConfigOptions } from './types.d.ts'
68

79
import { codeStyle } from './configs/codeStyle.ts'
@@ -18,7 +20,7 @@ import { vue3 } from './configs/vue3.ts'
1820
/**
1921
* Nextcloud shared configuration for projects using Vue 2 with Javascript <script> blocks
2022
*/
21-
export const recommendedVue2Javascript = createConfig({
23+
export const recommendedVue2Javascript: Linter.Config[] = createConfig({
2224
isLibrary: false,
2325
vue2: true,
2426
vueIsTypescript: false,
@@ -27,7 +29,7 @@ export const recommendedVue2Javascript = createConfig({
2729
/**
2830
* Nextcloud shared configuration for projects using Vue 2 with Typescript <script> blocks
2931
*/
30-
export const recommendedVue2 = createConfig({
32+
export const recommendedVue2: Linter.Config[] = createConfig({
3133
isLibrary: false,
3234
vue2: true,
3335
vueIsTypescript: true,
@@ -36,31 +38,31 @@ export const recommendedVue2 = createConfig({
3638
/**
3739
* Nextcloud shared configuration for projects using Vue 3 with Javascript <script> blocks
3840
*/
39-
export const recommendedJavascript = createConfig({
41+
export const recommendedJavascript: Linter.Config[] = createConfig({
4042
isLibrary: false,
4143
vueIsTypescript: false,
4244
})
4345

4446
/**
4547
* Nextcloud shared configuration for projects using Vue 3 with Typescript <script> blocks
4648
*/
47-
export const recommended = createConfig({
49+
export const recommended: Linter.Config[] = createConfig({
4850
isLibrary: false,
4951
vueIsTypescript: true,
5052
})
5153

5254
/**
5355
* Nextcloud shared configuration for projects using Vue 3 with Typescript <script> blocks
5456
*/
55-
export const recommendedLibrary = createConfig({
57+
export const recommendedLibrary: Linter.Config[] = createConfig({
5658
isLibrary: true,
5759
vueIsTypescript: true,
5860
})
5961

6062
/**
6163
* Nextcloud shared configuration for projects using Vue 3 with Typescript <script> blocks
6264
*/
63-
export const recommendedVue2Library = createConfig({
65+
export const recommendedVue2Library: Linter.Config[] = createConfig({
6466
isLibrary: true,
6567
vue2: true,
6668
vueIsTypescript: true,
@@ -75,7 +77,7 @@ export { default as l10nPlugin } from './plugins/l10n/index.ts'
7577
*
7678
* @param options - Configuration options
7779
*/
78-
function createConfig(options: ConfigOptions & { vue2?: boolean }) {
80+
function createConfig(options: ConfigOptions & { vue2?: boolean }): Linter.Config[] {
7981
return [
8082
...filesystem,
8183
...javascript(options),

lib/plugins/packageJson.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
* SPDX-License-Identifier: AGPL-3.0-or-later
44
*/
55

6+
import type { JSONRuleDefinition, JSONRuleVisitor } from '@eslint/json/types'
67
import type { ESLint, Rule } from 'eslint'
78

89
import path from 'node:path'
910
import sortPackageJson from 'sort-package-json'
1011
import { packageVersion } from '../version.ts'
1112

12-
const SortPackageJsonRule: Rule.RuleModule = {
13+
const SortPackageJsonRule: JSONRuleDefinition = {
1314
meta: {
1415
fixable: 'code',
1516
docs: {
@@ -33,7 +34,7 @@ const SortPackageJsonRule: Rule.RuleModule = {
3334
],
3435
},
3536

36-
create(context: Rule.RuleContext): Rule.RuleListener {
37+
create(context) {
3738
if (path.basename(context.filename) !== 'package.json') {
3839
return {}
3940
}
@@ -51,12 +52,13 @@ const SortPackageJsonRule: Rule.RuleModule = {
5152
node: body,
5253
message: 'package.json is not sorted correctly',
5354
fix(fixer: Rule.RuleFixer): Rule.Fix {
55+
// @ts-expect-error its always an object node
5456
return fixer.replaceText(body, sortedPackageJsonText)
5557
},
5658
})
5759
}
5860
},
59-
} satisfies Rule.NodeListener
61+
} as JSONRuleVisitor
6062
},
6163
}
6264

@@ -69,6 +71,7 @@ const Plugin: ESLint.Plugin = {
6971
version: packageVersion,
7072
},
7173
rules: {
74+
// @ts-expect-error ESLint is missing some API for language-specific rules
7275
'sort-package-json': SortPackageJsonRule,
7376
},
7477
}

lib/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import type { Linter } from 'eslint'
1111
* @param configs The configs to restrict
1212
* @param files The glob pattern to assign
1313
*/
14-
export function restrictConfigFiles(configs: Linter.Config[], files: string[]) {
14+
export function restrictConfigFiles(configs: Linter.Config[], files: string[]): Linter.Config[] {
1515
return configs.map((config) => ({
1616
...config,
1717
files: [

0 commit comments

Comments
 (0)