npm-check-unused
Version:
Check unused dependencies.
71 lines (57 loc) • 1.41 kB
JavaScript
const mergeOptions = require('merge-options')
const init = require('./init')
const debug = require('./debug')
const defaultOptions = {
cwd: process.cwd(),
nodeModulesPath: false,
ignoreDev: false,
devOnly: false,
specials: '',
debug: false,
emoji: true,
spinner: false,
ignore: [],
cwdPackageJson: {devDependencies: {}, dependencies: {}},
packages: false,
unusedDependencies: false,
missingFromPackageJson: {}
}
function state (userOptions) {
const currentStateObject = mergeOptions(defaultOptions, {})
function get (key) {
if (!currentStateObject.hasOwnProperty(key)) {
throw new Error(`Can't get unknown option "${key}".`)
}
return currentStateObject[key]
}
function set (key, value) {
if (get('debug')) {
debug('set key', key, 'to value', value)
}
if (currentStateObject.hasOwnProperty(key)) {
currentStateObject[key] = value
} else {
throw new Error(`unknown option "${key}" setting to "${JSON.stringify(value, false, 4)}".`)
}
}
function inspectIfDebugMode () {
if (get('debug')) {
inspect()
}
}
function inspect () {
debug('current state', all())
}
function all () {
return currentStateObject
}
const currentState = {
get: get,
set: set,
all,
inspectIfDebugMode
}
return init(currentState, userOptions)
}
module.exports = state