diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9e87e1b0..72f8645c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,7 +24,7 @@ jobs: timeout-minutes: 10 strategy: matrix: - node-version: [20.x] + node-version: [24.x] steps: - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} @@ -40,7 +40,7 @@ jobs: timeout-minutes: 10 strategy: matrix: - node-version: [18.x, 20.x] + node-version: [18.x, 20.x, 22.x, 24.x] steps: - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} @@ -61,7 +61,7 @@ jobs: timeout-minutes: 10 strategy: matrix: - node-version: [20.x] + node-version: [24.x] steps: - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} diff --git a/CHANGELOG.md b/CHANGELOG.md index 41e2e9a8..cdfa8e9e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # `@bedrock/core` ChangeLog +## 6.3.1 - 2025-08-xx + +### Changed +- Update to support `eslint@9`. + ## 6.3.0 - 2024-11-19 ### Added diff --git a/.eslintrc.cjs b/eslint.config.js similarity index 71% rename from .eslintrc.cjs rename to eslint.config.js index d4246a05..f38f051e 100644 --- a/.eslintrc.cjs +++ b/eslint.config.js @@ -15,19 +15,8 @@ * * SPDX-License-Identifier: Apache-2.0 */ -module.exports = { - root: true, - env: { - node: true - }, - extends: [ - 'digitalbazaar', - 'digitalbazaar/jsdoc', - 'digitalbazaar/module' - ], - ignorePatterns: ['node_modules/'], - rules: { - 'unicorn/prefer-node-protocol': 'error' - } -}; +import config from '@digitalbazaar/eslint-config/node-recommended'; +export default [ + ...config +]; diff --git a/lib/helpers.js b/lib/helpers.js index 5341a240..66803fc1 100644 --- a/lib/helpers.js +++ b/lib/helpers.js @@ -16,7 +16,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -// eslint-disable-next-line max-len +// eslint-disable-next-line @stylistic/max-len const PROPERTY_REGEX = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; const ESCAPE_REGEX = /\\(\\)?/g; diff --git a/lib/index.js b/lib/index.js index 3e79d439..058235d4 100644 --- a/lib/index.js +++ b/lib/index.js @@ -552,7 +552,7 @@ async function _runWorker(startTime) { if(config.ensureConfigOverride.enable) { configOverrideSnapshot = _snapshotOverrideFields({ config, - fields: config.ensureConfigOverride.fields, + fields: config.ensureConfigOverride.fields }); } @@ -797,5 +797,7 @@ async function _logExit(code) { logger.end(); }); await p; - } finally {} + } finally { + // continue regardless of error + } } diff --git a/lib/loggers/fileLogger.js b/lib/loggers/fileLogger.js index d067d0a4..8488bc3d 100644 --- a/lib/loggers/fileLogger.js +++ b/lib/loggers/fileLogger.js @@ -36,15 +36,15 @@ cc({ export async function init({transports}) { transports.app = new winston.transports.File({ ...config.loggers.app, - format: formatters.fromConfig(config.loggers.app.bedrock), + format: formatters.fromConfig(config.loggers.app.bedrock) }); transports.access = new winston.transports.File({ ...config.loggers.access, - format: formatters.fromConfig(config.loggers.access.bedrock), + format: formatters.fromConfig(config.loggers.access.bedrock) }); transports.error = new winston.transports.File({ ...config.loggers.error, - format: formatters.fromConfig(config.loggers.error.bedrock), + format: formatters.fromConfig(config.loggers.error.bedrock) }); // ensure all files are created and have ownership set to the diff --git a/lib/loggers/formatters.js b/lib/loggers/formatters.js index 4774b177..8fdbd776 100644 --- a/lib/loggers/formatters.js +++ b/lib/loggers/formatters.js @@ -31,7 +31,7 @@ export const bedrock = format(info => { splat: undefined, timestamp: undefined, workerId: undefined, - workerPid: undefined, + workerPid: undefined }, null, 2); const workerInfo = `workerPid=${workerPid}, workerId=${workerId}`; if(stringifiedRest !== '{}') { @@ -89,7 +89,7 @@ export function fromConfig(config) { } fmts.push( format.timestamp(), - modulePrefix(), + modulePrefix() ); if(colorize) { fmts.push(format.colorize()); @@ -99,12 +99,12 @@ export function fromConfig(config) { } else if(formatter === 'json') { fmt = format.combine( format.timestamp(), - format.json(), + format.json() ); } else if(formatter === 'logstash') { fmt = format.combine( format.timestamp(), - format.logstash(), + format.logstash() ); } } else { diff --git a/lib/loggers/index.js b/lib/loggers/index.js index b1365fc9..35097bae 100644 --- a/lib/loggers/index.js +++ b/lib/loggers/index.js @@ -87,7 +87,7 @@ container.add = function(id) { const child = createChild.apply(wrapper, [childMeta]); // if child `defaultMeta` is not set, add it to ensure that the parent // meta is included - if(!Object.hasOwnProperty(child, 'defaultMeta')) { + if(!Object.prototype.hasOwnProperty.call(child, 'defaultMeta')) { child.defaultMeta = {...wrapper.defaultMeta, ...childMeta}; } return child; @@ -104,7 +104,7 @@ if(cluster.isPrimary) { access: null, app: null, console: null, - error: null, + error: null }; } @@ -119,7 +119,7 @@ container.init = async () => { const transports = container.transports; transports.console = new winston.transports.Console({ ...config.loggers.console, - format: formatters.fromConfig(config.loggers.console.bedrock), + format: formatters.fromConfig(config.loggers.console.bedrock) }); if(config.loggers.enableFileTransport) { diff --git a/package.json b/package.json index cc15c041..5de457a7 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ ], "scripts": { "start": "node index.js", - "lint": "eslint ." + "lint": "eslint" }, "repository": { "type": "git", @@ -36,12 +36,11 @@ "winston-transport": "^4.5.0" }, "devDependencies": { - "eslint": "^8.57.0", - "eslint-config-digitalbazaar": "^5.0.1", - "eslint-plugin-jsdoc": "^50.4.1", - "eslint-plugin-unicorn": "^56.0.0", - "jsdoc": "^4.0.2", - "jsdoc-to-markdown": "^9.0.2" + "@digitalbazaar/eslint-config": "^6.2.0", + "eslint": "^9.36.0", + "eslint-plugin-jsdoc": "^60.1.1", + "eslint-plugin-unicorn": "^61.0.2", + "jsdoc": "^4.0.4" }, "engines": { "node": ">=18" diff --git a/test/mocha/.eslintrc b/test/mocha/.eslintrc deleted file mode 100644 index f9f50226..00000000 --- a/test/mocha/.eslintrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "env": { - "mocha": true - }, - "globals": { - "assertNoError": true, - "should": true - } -}