diff --git a/.eslintrc b/.eslintrc index 2125aa5..3b91773 100644 --- a/.eslintrc +++ b/.eslintrc @@ -2,7 +2,7 @@ "parserOptions": { "ecmaVersion": 2018 }, - "extends": ["standard", "prettier", "prettier/standard"], + "extends": ["standard", "plugin:prettier/recommended"], "plugins": ["mocha"], "env": { "mocha": true diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6f1e40c..d3e8a29 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -10,9 +10,8 @@ jobs: strategy: matrix: node: - - "14" - - "16" - "18" + - "20" steps: - uses: actions/checkout@v2 - name: Setup node @@ -39,7 +38,7 @@ jobs: - name: Setup node uses: actions/setup-node@v1 with: - node-version: '16' + node-version: '18' - name: Install dependencies run: sudo add-apt-repository -y ppa:inkscape.dev/stable && sudo apt-get install -y libcairo2-dev libjpeg8-dev libgif-dev optipng pngcrush pngquant libpango1.0-dev graphicsmagick libjpeg-turbo-progs inkscape gifsicle - run: npm install diff --git a/.nvmrc b/.nvmrc index f46d5e3..a9d0873 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -14.21.3 +18.19.0 diff --git a/.prettierrc b/.prettierrc index 544138b..c1a6f66 100644 --- a/.prettierrc +++ b/.prettierrc @@ -1,3 +1,4 @@ { - "singleQuote": true + "singleQuote": true, + "trailingComma": "es5" } diff --git a/package.json b/package.json index f2dfab9..9144529 100644 --- a/package.json +++ b/package.json @@ -26,36 +26,36 @@ }, "devDependencies": { "animated-gif-detector": "1.2.0", - "eslint": "^7.16.0", - "eslint-config-prettier": "^6.15.0", - "eslint-config-standard": "^14.1.1", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-mocha": "^7.0.1", + "eslint": "^8.56.0", + "eslint-config-prettier": "^9.1.0", + "eslint-config-standard": "^17.1.0", + "eslint-plugin-import": "^2.29.1", + "eslint-plugin-mocha": "^10.2.0", "eslint-plugin-node": "^11.1.0", - "eslint-plugin-prettier": "^3.3.0", - "eslint-plugin-promise": "^4.2.1", + "eslint-plugin-prettier": "^5.1.3", + "eslint-plugin-promise": "^6.1.1", "eslint-plugin-standard": "^5.0.0", "evaldown": "^2.0.0", "file-type": "^12.3.0", "gifsicle": "^5.3.0", "gm-papandreou": "1.23.0-patch1", "impro": "file:./", - "inkscape": "3.0.0", + "inkscape": "3.1.1", "jpegtran": "2.0.0", "memoizesync": "^1.1.1", - "mocha": "^8.2.1", - "nyc": "^14.1.1", - "offline-github-changelog": "^1.7.0", - "optipng": "^4.0.0", + "mocha": "^10.2.0", + "nyc": "^15.1.0", + "offline-github-changelog": "^3.0.1", + "optipng": "^4.2.0", "pngcrush": "^3.0.0", - "pngquant": "^4.0.0", - "prettier": "~2.2.1", - "sharp": "~0.32.0", - "sinon": "^9.2.4", + "pngquant": "^4.2.0", + "prettier": "~3.2.4", + "sharp": "~0.33.2", + "sinon": "^17.0.1", "svgfilter": "4.1.0", - "unexpected": "^12.0.1", - "unexpected-dom": "^5.0.0", - "unexpected-sinon": "^11.0.1" + "unexpected": "^12.0.5", + "unexpected-dom": "^6.0.1", + "unexpected-sinon": "^11.1.0" }, "dependencies": { "exif-reader": "^1.0.3", diff --git a/src/Impro.js b/src/Impro.js index 2a089f3..4fa79ae 100644 --- a/src/Impro.js +++ b/src/Impro.js @@ -37,12 +37,9 @@ module.exports = class Impro { this._Pipeline = class extends Pipeline {}; - [ - 'type', - 'source', - 'maxInputPixels', - 'maxOutputPixels', - ].forEach((propertyName) => this.registerMethod(propertyName)); + ['type', 'source', 'maxInputPixels', 'maxOutputPixels'].forEach( + (propertyName) => this.registerMethod(propertyName) + ); } createPipeline(options, operations) { diff --git a/src/queryString.js b/src/queryString.js index 0dcc3f1..f000a18 100644 --- a/src/queryString.js +++ b/src/queryString.js @@ -71,7 +71,7 @@ function parseImproQueryString(queryString, improInstance, allowOperation) { } return { - operations: operations, + operations, leftover: leftOverQueryStringFragments.join('&'), consumed: consumedQueryStringFragments.join('&'), }; diff --git a/test/impro.spec.js b/test/impro.spec.js index 85b576f..9faf549 100644 --- a/test/impro.spec.js +++ b/test/impro.spec.js @@ -92,7 +92,15 @@ expect.addAssertion( async (expect, subject, ...rest) => { const encoding = expect.alternations ? expect.alternations[0] : undefined; expect.errorMode = 'bubble'; - return expect(await consumeStream(subject, encoding), ...rest); + const contents = await consumeStream(subject, encoding); + + // // DEV-HELPER: Uncomment this block to write the output to a file when debugging a test + // fs.writeFileSync( + // pathModule.resolve(testDataPath, 'mismatching-file.extension'), + // contents + // ); + + return expect(contents, ...rest); } ); diff --git a/testdata/addBogusElement.js b/testdata/addBogusElement.js index 56c0ed9..46fcfb0 100644 --- a/testdata/addBogusElement.js +++ b/testdata/addBogusElement.js @@ -1,4 +1,4 @@ /* globals svgFilter:false */ -var bogus = document.createElement('bogus'); +const bogus = document.createElement('bogus'); bogus.setAttribute('id', svgFilter.bogusElementId || 'blablaf'); document.documentElement.appendChild(bogus); diff --git a/testdata/turtleCroppedCenterSharp.jpg b/testdata/turtleCroppedCenterSharp.jpg index 76343fb..377267c 100644 Binary files a/testdata/turtleCroppedCenterSharp.jpg and b/testdata/turtleCroppedCenterSharp.jpg differ