Skip to content

Commit fc658d6

Browse files
authored
Merge pull request #267 from mansona/node-version
drop support for node < 20, fix CI, and switch to pnpm
2 parents 4a126ec + 5312d92 commit fc658d6

File tree

6 files changed

+10510
-24872
lines changed

6 files changed

+10510
-24872
lines changed

.github/workflows/ci.yml

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -17,44 +17,49 @@ jobs:
1717
runs-on: ubuntu-latest
1818

1919
steps:
20-
- uses: actions/checkout@v1
21-
- uses: actions/setup-node@v1
20+
- uses: actions/checkout@v4
21+
- uses: pnpm/action-setup@v4
22+
- uses: actions/setup-node@v4
2223
with:
23-
node-version: 14.x
24+
node-version: 22.x
25+
cache: pnpm
2426
- name: install dependencies
25-
run: npm ci
27+
run: pnpm install
2628
- name: linting
27-
run: npm run lint
29+
run: pnpm run lint
2830

2931
test:
3032
name: Tests
3133
runs-on: ${{ matrix.os }}
3234

3335
strategy:
3436
matrix:
35-
node: ['12', '14', '16']
37+
node: ['20', '22', '24']
3638
os: [ubuntu-latest]
3739

3840
steps:
39-
- uses: actions/checkout@v1
40-
- uses: actions/setup-node@v1
41+
- uses: actions/checkout@v4
42+
- uses: pnpm/action-setup@v4
43+
- uses: actions/setup-node@v4
4144
with:
4245
node-version: ${{ matrix.node }}
46+
cache: pnpm
4347
- name: install dependencies
44-
run: npm ci
48+
run: pnpm install
4549
- name: test
46-
run: npm test
50+
run: pnpm test
4751

4852
floating-test:
4953
name: Floating dependencies
5054
runs-on: ubuntu-latest
5155

5256
steps:
53-
- uses: actions/checkout@v1
54-
- uses: actions/setup-node@v1
57+
- uses: actions/checkout@v4
58+
- uses: pnpm/action-setup@v4
59+
- uses: actions/setup-node@v4
5560
with:
56-
node-version: '14.x'
61+
node-version: '22.x'
5762
- name: install dependencies
58-
run: npm install --no-shrinkwrap
63+
run: pnpm install --no-lockfile
5964
- name: test
60-
run: npm test
65+
run: pnpm test

commands/global/new.js

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,12 @@ module.exports.handler = async function handler(options) {
7878
'codemod-cli': `^${pkg.version}`,
7979
},
8080
devDependencies: {
81+
'@eslint/js': `^${await latestVersion('@eslint/js')}`,
8182
coveralls: pkg.devDependencies.coveralls,
8283
eslint: `^${await latestVersion('eslint')}`,
8384
'eslint-config-prettier': `^${await latestVersion('eslint-config-prettier')}`,
84-
'eslint-plugin-node': `^${await latestVersion('eslint-plugin-node')}`,
85-
'eslint-plugin-prettier': `^${await latestVersion('eslint-plugin-prettier')}`,
85+
'eslint-plugin-n': `^${await latestVersion('eslint-plugin-n')}`,
86+
globals: `^${await latestVersion('globals')}`,
8687
jest: pkg.devDependencies.jest,
8788
prettier: `^${await latestVersion('prettier')}`,
8889
},
@@ -98,35 +99,20 @@ module.exports.handler = async function handler(options) {
9899

99100
// linting setup
100101
fs.outputFileSync(
101-
projectName + '/.eslintrc.js',
102+
projectName + '/eslint.config.mjs',
102103
stripIndent`
103-
module.exports = {
104-
parserOptions: {
105-
ecmaVersion: 2018,
106-
},
107-
108-
plugins: ['prettier', 'node'],
109-
extends: ['eslint:recommended', 'plugin:prettier/recommended', 'plugin:node/recommended'],
110-
env: {
111-
node: true,
112-
},
113-
rules: {},
114-
overrides: [
115-
{
116-
files: ['__tests__/**/*.js'],
117-
env: {
118-
jest: true,
119-
},
120-
},
121-
],
122-
};` + '\n'
123-
);
124-
fs.outputFileSync(
125-
projectName + '/.eslintignore',
126-
stripIndent`
127-
!.*
128-
__testfixtures__
129-
`
104+
import js from "@eslint/js";
105+
import n from "eslint-plugin-n";
106+
import globals from "globals";
107+
import { defineConfig } from "eslint/config";
108+
109+
export default defineConfig([
110+
js.configs.recommended,
111+
{ files: ["**/*.{js,mjs,cjs}"], plugins: { n }, languageOptions: { globals: globals.node } },
112+
{ files: ["**/*.js"], languageOptions: { sourceType: "commonjs" } },
113+
{ ignores: ['!.*', '__testfixtures__'] }
114+
]);
115+
` + '\n'
130116
);
131117
fs.outputFileSync(
132118
projectName + '/.prettierrc',

0 commit comments

Comments
 (0)