Skip to content

Commit dc1bb60

Browse files
Update dependency eslint to v9 (lucacome#330)
* Update dependency eslint to v9 | datasource | package | from | to | | ---------- | ------- | ------ | ------ | | npm | eslint | 8.57.1 | 9.20.0 | Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Update eslint config and use rollup --------- Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Luca Comellini <[email protected]>
1 parent f396c65 commit dc1bb60

27 files changed

+48544
-1271
lines changed

.eslintignore

-5
This file was deleted.

.eslintrc.json

-39
This file was deleted.

__tests__/notes.test.ts

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {describe, expect, test, it} from '@jest/globals'
22
import {parseNotes, generateReleaseNotes, splitMarkdownSections} from '../src/notes'
33
import * as github from '@actions/github'
44
import {Inputs} from '../src/context'
5+
import {jest} from '@jest/globals'
56

67
jest.mock('@actions/core')
78
jest.mock('@actions/github')

__tests__/release.test.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import {getRelease, createOrUpdateRelease, ReleaseData} from '../src/release'
22
import * as github from '@actions/github'
33
import {Inputs} from '../src/context'
4+
import {jest} from '@jest/globals'
45

56
jest.mock('@actions/core')
67
jest.mock('@actions/github')

dist/context.d.ts

+13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.d.ts

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js

+47,500-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/licenses.txt

-907
This file was deleted.

dist/main.d.ts

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/notes.d.ts

+11
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/release.d.ts

+13
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/sourcemap-register.js

-1
This file was deleted.

dist/version.d.ts

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

eslint.config.mjs

+79
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
import {fixupPluginRules} from '@eslint/compat'
2+
import {FlatCompat} from '@eslint/eslintrc'
3+
import js from '@eslint/js'
4+
import typescriptEslint from '@typescript-eslint/eslint-plugin'
5+
import tsParser from '@typescript-eslint/parser'
6+
import _import from 'eslint-plugin-import'
7+
import jest from 'eslint-plugin-jest'
8+
import prettier from 'eslint-plugin-prettier'
9+
import globals from 'globals'
10+
import path from 'node:path'
11+
import {fileURLToPath} from 'node:url'
12+
13+
const __filename = fileURLToPath(import.meta.url)
14+
const __dirname = path.dirname(__filename)
15+
const compat = new FlatCompat({
16+
baseDirectory: __dirname,
17+
recommendedConfig: js.configs.recommended,
18+
allConfig: js.configs.all,
19+
})
20+
21+
export default [
22+
{
23+
ignores: ['**/coverage', '**/dist', '**/linter', '**/node_modules'],
24+
},
25+
...compat.extends(
26+
'eslint:recommended',
27+
'plugin:@typescript-eslint/eslint-recommended',
28+
'plugin:@typescript-eslint/recommended',
29+
'plugin:jest/recommended',
30+
'plugin:prettier/recommended',
31+
),
32+
{
33+
plugins: {
34+
import: fixupPluginRules(_import),
35+
jest,
36+
prettier,
37+
'@typescript-eslint': typescriptEslint,
38+
},
39+
40+
languageOptions: {
41+
globals: {
42+
...globals.node,
43+
...globals.jest,
44+
Atomics: 'readonly',
45+
SharedArrayBuffer: 'readonly',
46+
},
47+
48+
parser: tsParser,
49+
ecmaVersion: 2023,
50+
sourceType: 'module',
51+
52+
parserOptions: {
53+
project: ['tsconfig.eslint.json'],
54+
tsconfigRootDir: '.',
55+
},
56+
},
57+
58+
settings: {
59+
'import/resolver': {
60+
typescript: {
61+
alwaysTryTypes: true,
62+
project: 'tsconfig.eslint.json',
63+
},
64+
},
65+
},
66+
67+
rules: {
68+
camelcase: 'off',
69+
'eslint-comments/no-use': 'off',
70+
'eslint-comments/no-unused-disable': 'off',
71+
'i18n-text/no-en': 'off',
72+
'import/no-namespace': 'off',
73+
'no-console': 'off',
74+
'no-shadow': 'off',
75+
'no-unused-vars': 'off',
76+
'prettier/prettier': 'error',
77+
},
78+
},
79+
]

jest.config.js

+18-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,24 @@
1-
module.exports = {
1+
// See: https://jestjs.io/docs/configuration
2+
3+
/** @type {import('ts-jest').JestConfigWithTsJest} **/
4+
export default {
25
clearMocks: true,
6+
extensionsToTreatAsEsm: ['.ts'],
7+
moduleFileExtensions: ['ts', 'js'],
8+
preset: 'ts-jest',
9+
reporters: ['default'],
10+
resolver: 'ts-jest-resolver',
311
testEnvironment: 'node',
4-
moduleFileExtensions: ['js', 'ts'],
512
testMatch: ['**/*.test.ts'],
13+
testPathIgnorePatterns: ['/dist/', '/node_modules/'],
614
transform: {
7-
'^.+\\.ts$': 'ts-jest'
15+
'^.+\\.ts$': [
16+
'ts-jest',
17+
{
18+
tsconfig: 'tsconfig.eslint.json',
19+
useESM: true,
20+
},
21+
],
822
},
9-
verbose: true
23+
verbose: true,
1024
}

package.json

+26-11
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,33 @@
33
"description": "GitHub Action to create a draft release",
44
"main": "src/main.ts",
55
"scripts": {
6-
"build": "ncc build --source-map --minify --license licenses.txt",
6+
"build": "npx rollup --config rollup.config.ts --configPlugin @rollup/plugin-typescript",
77
"lint": "yarn run prettier && yarn run eslint",
88
"format": "yarn run prettier:fix && yarn run eslint:fix",
9-
"eslint": "eslint --max-warnings=0 .",
10-
"eslint:fix": "eslint --fix .",
11-
"prettier": "prettier --check \"./**/*.ts\"",
12-
"prettier:fix": "prettier --write \"./**/*.ts\"",
13-
"test": "jest",
9+
"eslint": "npx eslint --max-warnings=0 .",
10+
"eslint:fix": "npx eslint --fix .",
11+
"prettier": "npx prettier --check \"./**/*.ts\"",
12+
"prettier:fix": "npx prettier --write \"./**/*.ts\"",
13+
"test": "npx jest",
1414
"all": "yarn format && yarn test && yarn build"
1515
},
1616
"repository": {
1717
"type": "git",
18-
"url": "git+https://github.com/actions/typescript-action.git"
18+
"url": "git+https://github.com/lucacome/draft-release.git"
1919
},
2020
"keywords": [
2121
"actions",
2222
"release",
2323
"notes",
2424
"draft"
2525
],
26+
"exports": {
27+
".": "./dist/index.js"
28+
},
29+
"engines": {
30+
"node": ">=20"
31+
},
32+
"type": "module",
2633
"author": "Luca Comellini",
2734
"license": "MIT",
2835
"dependencies": {
@@ -34,21 +41,29 @@
3441
"semver": "^7.7.0"
3542
},
3643
"devDependencies": {
44+
"@eslint/compat": "^1.2.6",
45+
"@eslint/js": "^9.20.0",
46+
"@jest/globals": "^29.7.0",
47+
"@rollup/plugin-commonjs": "^28.0.2",
48+
"@rollup/plugin-node-resolve": "^16.0.0",
49+
"@rollup/plugin-typescript": "^12.1.2",
3750
"@types/jest": "^29.5.14",
3851
"@types/js-yaml": "^4.0.9",
3952
"@types/node": "^22.10.10",
40-
"@typescript-eslint/eslint-plugin": "^8.22.0",
41-
"@typescript-eslint/parser": "^8.22.0",
42-
"@vercel/ncc": "^0.38.3",
43-
"eslint": "^8.57.1",
53+
"@typescript-eslint/eslint-plugin": "^8.23.0",
54+
"@typescript-eslint/parser": "^8.23.0",
55+
"eslint": "^9.20.0",
4456
"eslint-config-prettier": "^10.0.1",
4557
"eslint-plugin-import": "^2.31.0",
4658
"eslint-plugin-jest": "^28.11.0",
4759
"eslint-plugin-prettier": "^5.2.3",
4860
"jest": "^29.7.0",
4961
"js-yaml": "^4.1.0",
5062
"prettier": "3.4.2",
63+
"rollup": "^4.34.6",
5164
"ts-jest": "^29.2.5",
65+
"ts-jest-resolver": "^2.0.1",
66+
"ts-node": "^10.9.2",
5267
"typescript": "^5.7.3"
5368
},
5469
"packageManager": "[email protected]"

rollup.config.ts

+18
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// See: https://rollupjs.org/introduction/
2+
3+
import commonjs from '@rollup/plugin-commonjs'
4+
import nodeResolve from '@rollup/plugin-node-resolve'
5+
import typescript from '@rollup/plugin-typescript'
6+
7+
const config = {
8+
input: 'src/index.ts',
9+
output: {
10+
esModule: true,
11+
file: 'dist/index.js',
12+
format: 'es',
13+
sourcemap: true,
14+
},
15+
plugins: [typescript(), nodeResolve({preferBuiltins: true}), commonjs()],
16+
}
17+
18+
export default config

src/index.ts

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/**
2+
* The entrypoint for the action. This file simply imports and runs the action's
3+
* main logic.
4+
*/
5+
import {run} from './main.js'
6+
7+
/* istanbul ignore next */
8+
run()

src/main.ts

+5-7
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import * as github from '@actions/github'
22
import * as core from '@actions/core'
3-
import {getRelease, createOrUpdateRelease} from './release'
4-
import {generateReleaseNotes} from './notes'
5-
import {getVersionIncrease} from './version'
6-
import {getInputs, Inputs} from './context'
3+
import {getRelease, createOrUpdateRelease} from './release.js'
4+
import {generateReleaseNotes} from './notes.js'
5+
import {getVersionIncrease} from './version.js'
6+
import {getInputs, Inputs} from './context.js'
77

8-
async function run(): Promise<void> {
8+
export async function run(): Promise<void> {
99
try {
1010
const context = github.context
1111
core.startGroup(`Context info`)
@@ -53,5 +53,3 @@ async function run(): Promise<void> {
5353
}
5454
return
5555
}
56-
57-
run()

src/notes.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import * as core from '@actions/core'
22
import * as github from '@actions/github'
33
import * as semver from 'semver'
44
import * as handlebars from 'handlebars'
5-
import {Inputs} from './context'
6-
import {getCategories, Category} from './version'
7-
import {ReleaseData} from './release'
5+
import {Inputs} from './context.js'
6+
import {getCategories, Category} from './version.js'
7+
import {ReleaseData} from './release.js'
88

99
interface VariableObject {
1010
[key: string]: string

src/release.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import * as github from '@actions/github'
22
import * as core from '@actions/core'
33
import {components as OctoOpenApiTypes} from '@octokit/openapi-types'
4-
import {generateReleaseNotes} from './notes'
5-
import {Inputs} from './context'
4+
import {generateReleaseNotes} from './notes.js'
5+
import {Inputs} from './context.js'
66

77
type Release = OctoOpenApiTypes['schemas']['release']
88

src/version.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {promises as fsPromises} from 'fs'
22
import * as yaml from 'js-yaml'
33
import * as semver from 'semver'
4-
import {Inputs} from './context'
5-
import {parseNotes} from './notes'
6-
import {ReleaseData} from './release'
4+
import {Inputs} from './context.js'
5+
import {parseNotes} from './notes.js'
6+
import {ReleaseData} from './release.js'
77

88
// yaml type definition for release.yml
99
// changelog:

0 commit comments

Comments
 (0)