diff --git a/generate-plugin.js b/generate-plugin.js index 813c6162..57aa6809 100755 --- a/generate-plugin.js +++ b/generate-plugin.js @@ -19,8 +19,7 @@ const pluginTemplate = { main: 'index.js', types: 'index.d.ts', scripts: { - lint: 'standard && npm run lint:typescript', - 'lint:typescript': 'ts-standard', + lint: 'eslint', test: 'npm run lint && npm run unit && npm run test:typescript', 'test:typescript': 'tstyche', unit: 'node --test' @@ -32,8 +31,8 @@ const pluginTemplate = { '@types/node': cliPkg.devDependencies['@types/node'], fastify: cliPkg.devDependencies.fastify, 'fastify-tsconfig': cliPkg.devDependencies['fastify-tsconfig'], - standard: cliPkg.devDependencies.standard, - 'ts-standard': cliPkg.devDependencies['ts-standard'], + eslint: cliPkg.devDependencies.eslint, + neostandard: cliPkg.devDependencies.neostandard, tstyche: cliPkg.devDependencies.tstyche, typescript: cliPkg.devDependencies.typescript }, diff --git a/generate.js b/generate.js index 535a13c3..ff22dcaa 100755 --- a/generate.js +++ b/generate.js @@ -3,6 +3,7 @@ const { readFile, writeFile, + writeFileSync, existsSync } = require('node:fs') const path = require('node:path') @@ -96,6 +97,10 @@ function generate (dir, template) { } process.chdir(dir) + if (template.lintConfig) { + const configFile = template.type === 'module' ? 'eslint.config.mjs' : 'eslint.config.js' + writeFileSync(configFile, template.lintConfig) + } try { execSync('npm init -y') } catch (err) { @@ -192,14 +197,19 @@ function cli (args) { if (opts.standardlint) { template.scripts = { ...template.scripts, - pretest: 'standard', - lint: 'standard --fix' + pretest: 'eslint', + lint: 'eslint --fix' } template.devDependencies = { ...template.devDependencies, - standard: cliPkg.devDependencies.standard + eslint: cliPkg.devDependencies.eslint, + neostandard: cliPkg.devDependencies.neostandard } + + template.lintConfig = template.type === 'module' + ? 'import neostandard from \'neostandard\'\n\nexport default neostandard()' + : '\'use strict\'\n\nmodule.exports = require(\'neostandard\')()' } } diff --git a/package.json b/package.json index d40d5833..3df55272 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,6 @@ "sinon": "^22.0.0", "strip-ansi": "^6.0.1", "ts-node": "^10.4.0", - "ts-standard": "^12.0.1", "tstyche": "^7.0.0", "typescript": "~6.0.2", "walker": "^1.0.8" diff --git a/templates/plugin/README.md b/templates/plugin/README.md index 1913d7cf..5ea682c3 100644 --- a/templates/plugin/README.md +++ b/templates/plugin/README.md @@ -1,6 +1,6 @@ # __MY_PLUGIN__ -[![js-standard-style](https://img.shields.io/badge/code%20style-standard-brightgreen.svg?style=flat)](https://standardjs.com/) ![CI workflow](__MY_PLUGIN_URL__ +[![neostandard javascript style](https://img.shields.io/badge/code%20style-neostandard-brightgreen?style=flat)](https://github.com/neostandard/neostandard) ![CI workflow](__MY_PLUGIN_URL__ /workflows/CI%20workflow/badge.svg) Supports Fastify versions `4.x` diff --git a/templates/plugin/eslint.config.js b/templates/plugin/eslint.config.js new file mode 100644 index 00000000..45541665 --- /dev/null +++ b/templates/plugin/eslint.config.js @@ -0,0 +1,8 @@ +'use strict' + +const neostandard = require('neostandard') + +module.exports = neostandard({ + ts: true, + ignores: neostandard.resolveIgnoresFromGitignore() +}) diff --git a/test/generate-esm.test.js b/test/generate-esm.test.js index fee4c199..d49882f6 100644 --- a/test/generate-esm.test.js +++ b/test/generate-esm.test.js @@ -137,7 +137,7 @@ function define (t) { } }) - test('--standardlint option will add standard lint dependencies and scripts to javascript template', async (t) => { + test('--standardlint option will add neostandard lint dependencies and scripts to javascript template', async (t) => { const dir = path.join(__dirname, 'workdir-with-lint') const cwd = path.join(dir, '..') const bin = path.join('..', 'generate') @@ -148,9 +148,10 @@ function define (t) { const data = await fsPromises.readFile(path.join(dir, 'package.json')) const pkg = JSON.parse(data) - t.assert.strictEqual(pkg.scripts.pretest, 'standard') - t.assert.strictEqual(pkg.scripts.lint, 'standard --fix') - t.assert.strictEqual(pkg.devDependencies.standard, cliPkg.devDependencies.standard) + t.assert.strictEqual(pkg.scripts.pretest, 'eslint') + t.assert.strictEqual(pkg.scripts.lint, 'eslint --fix') + t.assert.strictEqual(pkg.devDependencies.eslint, cliPkg.devDependencies.eslint) + t.assert.strictEqual(pkg.devDependencies.neostandard, cliPkg.devDependencies.neostandard) }) function verifyPkg (t, dir = workdir, pkgName = 'workdir') { diff --git a/test/generate-plugin.test.js b/test/generate-plugin.test.js index cbe17282..253b346f 100644 --- a/test/generate-plugin.test.js +++ b/test/generate-plugin.test.js @@ -144,15 +144,15 @@ function define (t) { t.assert.strictEqual(pkg.version, initVersion) t.assert.strictEqual(pkg.description, '') t.assert.ok(pkg.license === 'MIT') - t.assert.strictEqual(pkg.scripts.lint, 'standard && npm run lint:typescript') - t.assert.strictEqual(pkg.scripts['lint:typescript'], 'ts-standard') + t.assert.strictEqual(pkg.scripts.lint, 'eslint') t.assert.strictEqual(pkg.scripts.test, 'npm run lint && npm run unit && npm run test:typescript') t.assert.strictEqual(pkg.scripts['test:typescript'], 'tstyche') t.assert.strictEqual(pkg.scripts.unit, 'node --test') t.assert.strictEqual(pkg.dependencies['fastify-plugin'], cliPkg.dependencies['fastify-plugin']) t.assert.strictEqual(pkg.devDependencies['@types/node'], cliPkg.devDependencies['@types/node']) t.assert.strictEqual(pkg.devDependencies.fastify, cliPkg.devDependencies.fastify) - t.assert.strictEqual(pkg.devDependencies.standard, cliPkg.devDependencies.standard) + t.assert.strictEqual(pkg.devDependencies.eslint, cliPkg.devDependencies.eslint) + t.assert.strictEqual(pkg.devDependencies.neostandard, cliPkg.devDependencies.neostandard) t.assert.strictEqual(pkg.devDependencies.tstyche, cliPkg.devDependencies.tstyche) t.assert.strictEqual(pkg.devDependencies.typescript, cliPkg.devDependencies.typescript) t.assert.deepStrictEqual(pkg.tstyche, pluginTemplate.tstyche) diff --git a/test/generate.test.js b/test/generate.test.js index e9cd3843..d6c86bd2 100644 --- a/test/generate.test.js +++ b/test/generate.test.js @@ -132,7 +132,7 @@ function define (t) { } }) - test('--standardlint option will add standard lint dependencies and scripts to javascript template', async (t) => { + test('--standardlint option will add neostandard lint dependencies and scripts to javascript template', async (t) => { const dir = path.join(__dirname, 'workdir-with-lint') const cwd = path.join(dir, '..') const bin = path.join('..', 'generate') @@ -143,9 +143,10 @@ function define (t) { const data = await fsPromises.readFile(path.join(dir, 'package.json')) const pkg = JSON.parse(data) - t.assert.strictEqual(pkg.scripts.pretest, 'standard') - t.assert.strictEqual(pkg.scripts.lint, 'standard --fix') - t.assert.strictEqual(pkg.devDependencies.standard, cliPkg.devDependencies.standard) + t.assert.strictEqual(pkg.scripts.pretest, 'eslint') + t.assert.strictEqual(pkg.scripts.lint, 'eslint --fix') + t.assert.strictEqual(pkg.devDependencies.eslint, cliPkg.devDependencies.eslint) + t.assert.strictEqual(pkg.devDependencies.neostandard, cliPkg.devDependencies.neostandard) }) function verifyPkg (t, dir = workdir, pkgName = 'workdir') {