sinon
sinon copied to clipboard
chore: replace unimported with knip and update workflow
-
Added knip as the recommended replacement.
-
Integrated knip into the workflow file for automated checks.
Closes #2637
Purpose (TL;DR) - mandatory
How to verify - mandatory
- Check out this branch
-
npm install -
Checklist for author
- [x]
npm run lintpasses - [ ] References to standard library functions are cached.
New, updated, and removed dependencies detected. Learn more about Socket for GitHub ↗︎
| Package | New capabilities | Transitives | Size | Publisher |
|---|---|---|---|---|
| npm/@types/[email protected] ➜ 22.13.10 | None | +1 |
2.4 MB | types |
| npm/[email protected] | environment, eval Transitive: filesystem, shell | +46 |
3.56 MB | webpro |
| npm/[email protected] ➜ 5.8.2 | None | 0 |
22.9 MB | typescript-bot |
Thank you for the pull request 👏
There are still a few things to do. When I run this locally, I get this report:
$ npm run knip
> [email protected] knip
> knip
Unused files (58)
lib/sinon-esm.js
scripts/set-release-id-in-config-yml.cjs
test/es2015/a-function-module.mjs
test/es2015/a-module-with-default.mjs
test/es2015/a-module-with-to-string-tag.mjs
test/es2015/a-module.mjs
test/es2015/module-support-assessment-test.mjs
test/issues/issues-test.js
test/util/fake-timers-test.js
test/webworker/webworker-script.js
test/webworker/webworker-support-assessment.js
docs/assets/js/prism.js
test/util/core/color-test.js
test/util/core/export-async-behaviors-test.js
test/util/core/function-to-string-test.js
test/util/core/get-next-tick-test.js
test/util/core/next-tick-test.js
test/util/core/times-in-words-test.js
test/util/core/walk-object-test.js
test/util/core/walk-test.js
test/util/core/wrap-method-test.js
docs/release-source/release/examples/fakes-01-using-fakes-instead-of-spies.test.js
docs/release-source/release/examples/fakes-02-using-fakes-instead-of-stubs.test.js
docs/release-source/release/examples/fakes-03-creating-without-behaviour.test.js
docs/release-source/release/examples/fakes-04-creating-with-custom-behaviour.test.js
docs/release-source/release/examples/fakes-05-returns.test.js
docs/release-source/release/examples/fakes-06-throws.test.js
docs/release-source/release/examples/fakes-07-yields.test.js
docs/release-source/release/examples/fakes-08-yields-async.test.js
docs/release-source/release/examples/fakes-09-callback.test.js
docs/release-source/release/examples/fakes-10-firstArg.test.js
docs/release-source/release/examples/fakes-11-lastArg.test.js
docs/release-source/release/examples/fakes-12-adding-fake-to-system-under-test.test.js
docs/release-source/release/examples/sandbox-configuration.test.js
docs/release-source/release/examples/spies-1-pubsub.test.js
docs/release-source/release/examples/spies-2-wrap-object-methods.test.js
docs/release-source/release/examples/spies-3-wrap-existing-method.test.js
docs/release-source/release/examples/spies-4-pubsub-message-1.test.js
docs/release-source/release/examples/spies-5-pubsub-message-2.test.js
docs/release-source/release/examples/spies-6-pubsub-message-3.test.js
docs/release-source/release/examples/spies-7-with-args.test.js
docs/release-source/release/examples/spies-8-spy-call.test.js
docs/release-source/release/examples/stubs-1-pubsub.test.js
docs/release-source/release/examples/stubs-10-use-promise-library.test.js
docs/release-source/release/examples/stubs-12-yield-to.test.js
docs/release-source/release/examples/stubs-14-add-behavior.test.js
docs/release-source/release/examples/stubs-15-replace-getter.test.js
docs/release-source/release/examples/stubs-16-define-new-setter.test.js
docs/release-source/release/examples/stubs-17-define-new-value.test.js
docs/release-source/release/examples/stubs-18-restore-values.test.js
docs/release-source/release/examples/stubs-2-different-args.test.js
docs/release-source/release/examples/stubs-3-sequential-interactions.test.js
docs/release-source/release/examples/stubs-4-sequential-with-args.test.js
docs/release-source/release/examples/stubs-5-reset-behaviour.test.js
docs/release-source/release/examples/stubs-6-reset-history.test.js
docs/release-source/release/examples/stubs-7-call-fake.test.js
docs/release-source/release/examples/stubs-8-call-through.test.js
docs/release-source/release/examples/stubs-9-call-through-with-new.test.js
Unused devDependencies (10)
@babel/core package.json:91:6
@mochify/driver-puppeteer package.json:93:6
@mochify/driver-webdriver package.json:94:6
@sinonjs/eslint-config package.json:95:6
@sinonjs/eslint-plugin-no-prototype-methods package.json:96:6
@studio/changes package.json:98:6
babel-plugin-istanbul package.json:99:6
babelify package.json:100:6
lint-staged package.json:108:6
semver package.json:114:6
Unlisted binaries (3)
docs/release-source/release/examples/run-test.sh package.json
make package.json
eslint package.json
Unused exports (8)
createAssertObject unknown lib/sinon/assert.js:336:16
incrementCallCount unknown lib/sinon/proxy-call-util.js:5:9
createCallProperties unknown lib/sinon/proxy-call-util.js:14:9
delegateToCalls unknown lib/sinon/proxy-call-util.js:21:9
nonEnum unknown lib/sinon/util/core/extend.js:148:16
useFakeTimers unknown lib/sinon/util/fake-timers.js:40:9
clock unknown lib/sinon/util/fake-timers.js:74:9
timers unknown lib/sinon/util/fake-timers.js:90:9
It is fair enough that the solution can't detect usage of things in docs/, that's not so important.
However, it should be able to detect things that are clearly in use.
$ ag -Q "incrementCallCount"
lib/sinon/spy.js
59: proxyCallUtil.incrementCallCount(fake);
lib/sinon/proxy-invoke.js
19: proxyCallUtil.incrementCallCount(this);
24: proxyCallUtil.incrementCallCount(matching);
lib/sinon/proxy-call-util.js
5:exports.incrementCallCount = function incrementCallCount(proxy) {
I think knip just needs a little bit of help in the form of configuration and maybe a plugin or two.