pure-index
Advanced tools
Comparing version 0.0.43 to 0.0.44
{ | ||
"name": "pure-index", | ||
"type": "module", | ||
"version": "0.0.43", | ||
"version": "0.0.44", | ||
"description": "Utility for monorepos. It helps to find unused exports from packages or get a list of all unique uses of any package", | ||
@@ -6,0 +6,0 @@ "main": "./src/api/index.js", |
#!/usr/bin/env node | ||
console.log('looool') | ||
import { collectUsages } from '~/collectUsages' | ||
import { getConfig } from '~/getConfig' | ||
import { findUnusedExports } from '~/findUnusedExports' | ||
import { printSet, printError, createSpinner, readJSON } from '~/shared' | ||
const config = await getConfig() | ||
if (config.collectUsages) { | ||
const pkgName = config.collectUsages | ||
const spinner = createSpinner(`Collecting usages of ${pkgName}`) | ||
// @ts-expect-error wtf | ||
const result = await collectUsages({ config }) | ||
if (result.ok) { | ||
spinner.success() | ||
printSet(result.val.usages) | ||
process.exit(0) | ||
} | ||
spinner.error() | ||
printError({ | ||
text: `Nothing is used from ${pkgName}. Remove it.` | ||
}) | ||
process.exit(1) | ||
} | ||
const { name } = await readJSON('package.json') | ||
const pkg = { name, path: config.entry } | ||
const spinner = createSpinner(`Checking exports from the ${pkg.name} package`) | ||
const result = await findUnusedExports({ pkg, config }) | ||
if (result.ok) { | ||
spinner.success() | ||
process.exit(0) | ||
} | ||
spinner.error() | ||
switch (result.err.reason) { | ||
case 'no_exports': | ||
printError({ | ||
text: `Nothing is exported from ${pkg.name}. Remove it.` | ||
}) | ||
break | ||
case 'no_imports': | ||
printError({ | ||
text: `Nothing is imported from ${pkg.name}. Remove it.` | ||
}) | ||
break | ||
case 'unused_exports': | ||
printError({ | ||
text: `Unused exports in ${pkg.name} package found`, | ||
set: result.err.exports | ||
}) | ||
} | ||
process.exit(1) |
@@ -15,2 +15,5 @@ import { readFile } from 'node:fs/promises' | ||
const printSet = (x: Set<unknown>) => | ||
process.stdout.write(`${JSON.stringify([...x], undefined, 2)} \n\n`) | ||
const printError = (opts: { text: string; set?: ObservableSet }) => { | ||
@@ -20,3 +23,3 @@ process.stdout.write(`\n${bold(bgRed(' Failed '))} ${opts.text}\n\n`) | ||
if (notNil(opts.set)) { | ||
process.stdout.write(`${JSON.stringify([...opts.set], undefined, 2)} \n\n`) | ||
printSet(opts.set) | ||
} | ||
@@ -39,3 +42,3 @@ } | ||
export { readJSON, printError, notNil, Ok, Err } | ||
export { readJSON, printError, notNil, Ok, Err, printSet } | ||
export { getRepoRoot } from './getRepoRoot' | ||
@@ -42,0 +45,0 @@ export { ObservableSet } from './observableSet' |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
61706
1719
0