|
1 | 1 | <script setup lang="ts"> |
2 | 2 | import type { NewOperation } from '~/composables/useConnector' |
3 | | -import { PackageDeprecateParamsSchema, safeParse } from '~~/cli/src/schemas' |
| 3 | +import * as v from 'valibot' |
| 4 | +import { PackageDeprecateParamsSchema } from '#shared/schemas/package' |
4 | 5 |
|
5 | 6 | const DEPRECATE_MESSAGE_MAX_LENGTH = 500 |
6 | 7 |
|
@@ -54,31 +55,34 @@ async function handleDeprecate() { |
54 | 55 | params.version = deprecateVersion.value.trim() |
55 | 56 | } |
56 | 57 |
|
57 | | - const parsed = safeParse(PackageDeprecateParamsSchema, params) |
| 58 | + const parsed = v.safeParse(PackageDeprecateParamsSchema, params) |
58 | 59 | if (!parsed.success) { |
59 | | - deprecateError.value = parsed.error |
| 60 | + const firstIssue = parsed.issues[0] |
| 61 | + const path = firstIssue?.path?.map(p => p.key).join('.') || '' |
| 62 | + const message = firstIssue?.message || 'Validation failed' |
| 63 | + deprecateError.value = path ? `${path}: ${message}` : message |
60 | 64 | return |
61 | 65 | } |
62 | 66 |
|
63 | 67 | isDeprecating.value = true |
64 | 68 | deprecateError.value = null |
65 | 69 |
|
66 | 70 | try { |
67 | | - const escapedMessage = parsed.data.message.replace(/"/g, '\\"') |
68 | | - const command = parsed.data.version |
69 | | - ? `npm deprecate ${parsed.data.pkg}@${parsed.data.version} "${escapedMessage}"` |
70 | | - : `npm deprecate ${parsed.data.pkg} "${escapedMessage}"` |
| 71 | + const escapedMessage = parsed.output.message.replace(/"/g, '\\"') |
| 72 | + const command = parsed.output.version |
| 73 | + ? `npm deprecate ${parsed.output.pkg}@${parsed.output.version} "${escapedMessage}"` |
| 74 | + : `npm deprecate ${parsed.output.pkg} "${escapedMessage}"` |
71 | 75 |
|
72 | 76 | const operation = await addOperation({ |
73 | 77 | type: 'package:deprecate', |
74 | 78 | params: { |
75 | | - pkg: parsed.data.pkg, |
76 | | - message: parsed.data.message, |
77 | | - ...(parsed.data.version && { version: parsed.data.version }), |
| 79 | + pkg: parsed.output.pkg, |
| 80 | + message: parsed.output.message, |
| 81 | + ...(parsed.output.version && { version: parsed.output.version }), |
78 | 82 | }, |
79 | | - description: parsed.data.version |
80 | | - ? `Deprecate ${parsed.data.pkg}@${parsed.data.version}` |
81 | | - : `Deprecate ${parsed.data.pkg}`, |
| 83 | + description: parsed.output.version |
| 84 | + ? `Deprecate ${parsed.output.pkg}@${parsed.output.version}` |
| 85 | + : `Deprecate ${parsed.output.pkg}`, |
82 | 86 | command, |
83 | 87 | } as NewOperation) |
84 | 88 |
|
|
0 commit comments