refactor: standardize runtime guard patterns with lodash-es (#154)

* refactor(ui): replace runtime type guards with lodash-es predicates

* refactor(runtime): migrate typeof checks to lodash-es in core modules

* refactor(ipc): standardize runtime guards with lodash-es

* test(refactor): align runtime guard checks with lodash-es

* docs(agents): add lodash-es runtime guard skill summary
This commit is contained in:
vin authored and GitHub committed 2026-04-12 11:41:56 +08:00
1 parent 0223e8d807
commit bc35b96b5d
33 files changed
+303 -208

No files matched your search

+3 -2
View File
@@ -1,5 +1,6 @@
import * as React from 'react';
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
import { isNumber, isObjectLike } from 'lodash-es';
import { Check, ChevronRight, Circle } from 'lucide-react';
import { cn } from '@/lib/utils';
@@ -52,11 +53,11 @@ const DropdownMenuContent = React.forwardRef<
collisionPadding?: number | Partial<Record<'top' | 'right' | 'bottom' | 'left', number>>;
}
>(({ className, sideOffset = 4, collisionPadding = 8, ...props }, ref) => {
if (typeof collisionPadding === 'number') {
if (isNumber(collisionPadding)) {
if (collisionPadding < 0) {
throw new Error('collisionPadding must be a non-negative number');
}
} else if (typeof collisionPadding === 'object' && collisionPadding !== null) {
} else if (isObjectLike(collisionPadding)) {
for (const key of Object.keys(collisionPadding)) {
if ((collisionPadding as any)[key] < 0) {
throw new Error(`collisionPadding.${key} must be a non-negative number`);