Skip to content

Commit fd47773

Browse files
pvdzjdalton
andauthored
Apply handle pattern to info (#376)
* Apply handle pattern to info * Typed import --------- Co-authored-by: John-David Dalton <[email protected]>
1 parent 790734f commit fd47773

File tree

4 files changed

+24
-22
lines changed

4 files changed

+24
-22
lines changed

src/commands/info/cmd-info.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import colors from 'yoctocolors-cjs'
22

33
import { logger } from '@socketsecurity/registry/lib/logger'
44

5-
import { getPackageInfo } from './get-package-info'
5+
import { handlePackageInfo } from './handle-package-info'
66
import constants from '../../constants'
77
import { commonFlags, outputFlags, validationFlags } from '../../flags'
88
import { meowOrExit } from '../../utils/meow-with-subcommands'
@@ -77,7 +77,7 @@ async function run(
7777
return
7878
}
7979

80-
await getPackageInfo({
80+
await handlePackageInfo({
8181
commandName: `${parentName} ${config.commandName}`,
8282
includeAllIssues: Boolean(all),
8383
outputKind: json ? 'json' : markdown ? 'markdown' : 'print',

src/commands/info/fetch-package-info.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,26 @@
1-
import { PackageData } from './get-package-info'
1+
import constants from '../../constants'
22
import { getSeverityCount } from '../../utils/alert/severity'
33
import { handleApiCall, handleUnsuccessfulApiResponse } from '../../utils/api'
44
import { getPublicToken, setupSdk } from '../../utils/sdk'
55

6+
import type { PackageData } from './handle-package-info'
7+
68
export async function fetchPackageInfo(
79
pkgName: string,
810
pkgVersion: string,
911
includeAllIssues: boolean
1012
): Promise<void | PackageData> {
1113
const socketSdk = await setupSdk(getPublicToken())
14+
15+
// Lazily access constants.spinner.
16+
const { spinner } = constants
17+
18+
spinner.start(
19+
pkgVersion === 'latest'
20+
? `Looking up data for the latest version of ${pkgName}`
21+
: `Looking up data for version ${pkgVersion} of ${pkgName}`
22+
)
23+
1224
const result = await handleApiCall(
1325
socketSdk.getIssuesByNPMPackage(pkgName, pkgVersion),
1426
'looking up package'
@@ -18,6 +30,8 @@ export async function fetchPackageInfo(
1830
'looking up package score'
1931
)
2032

33+
spinner.successAndStop('Data fetched')
34+
2135
if (result.success === false) {
2236
return handleUnsuccessfulApiResponse('getIssuesByNPMPackage', result)
2337
}

src/commands/info/get-package-info.ts renamed to src/commands/info/handle-package-info.ts

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ import process from 'node:process'
33
import { hasKeys } from '@socketsecurity/registry/lib/objects'
44

55
import { fetchPackageInfo } from './fetch-package-info'
6-
import { logPackageInfo } from './log-package-info'
7-
import constants from '../../constants'
6+
import { outputPackageInfo } from './output-package-info'
87

98
import type { SocketSdkAlert } from '../../utils/alert/severity'
109
import type { SocketSdkReturnType } from '@socketsecurity/sdk'
@@ -15,7 +14,7 @@ export interface PackageData {
1514
score: SocketSdkReturnType<'getScoreByNPMPackage'>['data']
1615
}
1716

18-
export async function getPackageInfo({
17+
export async function handlePackageInfo({
1918
commandName,
2019
includeAllIssues,
2120
outputKind,
@@ -30,25 +29,14 @@ export async function getPackageInfo({
3029
pkgVersion: string
3130
strict: boolean
3231
}) {
33-
// Lazily access constants.spinner.
34-
const { spinner } = constants
35-
36-
spinner.start(
37-
pkgVersion === 'latest'
38-
? `Looking up data for the latest version of ${pkgName}`
39-
: `Looking up data for version ${pkgVersion} of ${pkgName}`
40-
)
41-
4232
const packageData = await fetchPackageInfo(
4333
pkgName,
4434
pkgVersion,
4535
includeAllIssues
4636
)
4737

48-
spinner.successAndStop('Data fetched')
49-
5038
if (packageData) {
51-
logPackageInfo(packageData, {
39+
outputPackageInfo(packageData, {
5240
name: commandName,
5341
includeAllIssues,
5442
outputKind,

src/commands/info/log-package-info.ts renamed to src/commands/info/output-package-info.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@ import constants from '@socketsecurity/registry/lib/constants'
55
import { logger } from '@socketsecurity/registry/lib/logger'
66
import { hasKeys } from '@socketsecurity/registry/lib/objects'
77

8-
import { PackageData } from './get-package-info'
98
import { SEVERITY, formatSeverityCount } from '../../utils/alert/severity'
109
import { ColorOrMarkdown } from '../../utils/color-or-markdown'
1110
import {
1211
getSocketDevAlertUrl,
1312
getSocketDevPackageOverviewUrl
1413
} from '../../utils/socket-url'
1514

15+
import type { PackageData } from './handle-package-info'
1616
import type { SocketSdkReturnType } from '@socketsecurity/sdk'
1717

1818
const { NPM } = constants
@@ -26,7 +26,7 @@ function formatScore(score: number): string {
2626
return colors.red(`${score}`)
2727
}
2828

29-
function logPackageIssuesDetails(
29+
function outputPackageIssuesDetails(
3030
packageData: SocketSdkReturnType<'getIssuesByNPMPackage'>['data'],
3131
outputMarkdown: boolean
3232
) {
@@ -65,7 +65,7 @@ function logPackageIssuesDetails(
6565
}
6666
}
6767

68-
export function logPackageInfo(
68+
export function outputPackageInfo(
6969
{ data, score, severityCount }: PackageData,
7070
{
7171
name,
@@ -112,7 +112,7 @@ export function logPackageInfo(
112112
logger.log(
113113
`Package has these issues: ${formatSeverityCount(severityCount)}\n`
114114
)
115-
logPackageIssuesDetails(data, outputKind === 'markdown')
115+
outputPackageIssuesDetails(data, outputKind === 'markdown')
116116
} else {
117117
logger.log('Package has no issues')
118118
}

0 commit comments

Comments
 (0)