Fix lint errors after upgrades and narrow tsc

This commit is contained in:
Gregory Schier
2025-07-14 10:09:08 -07:00
parent 5c1fba4b0c
commit 6f1fd7a254
35 changed files with 98 additions and 15 deletions

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -7,7 +7,8 @@ export const plugin: PluginDefinition = {
name: 'XPath', name: 'XPath',
description: 'Filter XPath', description: 'Filter XPath',
onFilter(_ctx, args) { onFilter(_ctx, args) {
const doc = new DOMParser().parseFromString(args.payload, 'text/xml'); // eslint-disable-next-line @typescript-eslint/no-explicit-any
const doc: any = new DOMParser().parseFromString(args.payload, 'text/xml');
try { try {
const result = xpath.select(args.filter, doc, false); const result = xpath.select(args.filter, doc, false);
if (Array.isArray(result)) { if (Array.isArray(result)) {

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -159,7 +159,8 @@ function filterJSONPath(body: string, path: string): string {
} }
function filterXPath(body: string, path: string): string { function filterXPath(body: string, path: string): string {
const doc = new DOMParser().parseFromString(body, 'text/xml'); // eslint-disable-next-line @typescript-eslint/no-explicit-any
const doc: any = new DOMParser().parseFromString(body, 'text/xml');
const items = xpath.select(path, doc, false); const items = xpath.select(path, doc, false);
if (Array.isArray(items)) { if (Array.isArray(items)) {

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -19,7 +19,8 @@ export const plugin: PluginDefinition = {
], ],
async onRender(_ctx: Context, args: CallTemplateFunctionArgs): Promise<string | null> { async onRender(_ctx: Context, args: CallTemplateFunctionArgs): Promise<string | null> {
try { try {
const doc = new DOMParser().parseFromString(String(args.values.input), 'text/xml'); // eslint-disable-next-line @typescript-eslint/no-explicit-any
const doc: any = new DOMParser().parseFromString(String(args.values.input), 'text/xml');
const result = xpath.select(String(args.values.query), doc, false); const result = xpath.select(String(args.values.query), doc, false);
if (Array.isArray(result)) { if (Array.isArray(result)) {
return String(result.map((c) => String(c.firstChild))[0] ?? ''); return String(result.map((c) => String(c.firstChild))[0] ?? '');

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -0,0 +1,3 @@
{
"extends": "../../tsconfig.json"
}

View File

@@ -14,7 +14,7 @@ export const openSettings = createFastMutation<void, string, SettingsTab | null>
const location = router.buildLocation({ const location = router.buildLocation({
to: '/workspaces/$workspaceId/settings', to: '/workspaces/$workspaceId/settings',
params: { workspaceId }, params: { workspaceId },
search: { tab }, search: { tab: tab ?? undefined },
}); });
await invokeCmd('cmd_new_child_window', { await invokeCmd('cmd_new_child_window', {

View File

@@ -266,7 +266,7 @@ interface MenuProps {
fullWidth?: boolean; fullWidth?: boolean;
isOpen: boolean; isOpen: boolean;
items: DropdownItem[]; items: DropdownItem[];
triggerRef?: RefObject<HTMLButtonElement>; triggerRef?: RefObject<HTMLButtonElement | null>;
} }
const Menu = forwardRef<Omit<DropdownRef, 'open' | 'isOpen' | 'toggle' | 'items'>, MenuProps>( const Menu = forwardRef<Omit<DropdownRef, 'open' | 'isOpen' | 'toggle' | 'items'>, MenuProps>(
@@ -555,7 +555,10 @@ const Menu = forwardRef<Omit<DropdownRef, 'open' | 'isOpen' | 'toggle' | 'items'
} }
if (item.type === 'separator') { if (item.type === 'separator') {
return ( return (
<Separator key={i} className={classNames('my-1.5', item.label && 'ml-2')}> <Separator
key={i}
className={classNames('my-1.5', item.label ? 'ml-2' : null)}
>
{item.label} {item.label}
</Separator> </Separator>
); );

View File

@@ -530,10 +530,12 @@ export const Editor = forwardRef<EditorView | undefined, EditorProps>(function E
} }
results.push( results.push(
Children.map(actions, (existingChild) => { Children.map(actions, (existingChild) => {
if (!isValidElement(existingChild)) return null; if (!isValidElement<{ className?: string }>(existingChild)) return null;
const existingProps = existingChild.props;
return cloneElement(existingChild, { return cloneElement(existingChild, {
...existingChild.props, ...existingProps,
className: classNames(existingChild.props.className, actionClassName), className: classNames(existingProps.className, actionClassName),
}); });
}), }),
); );

View File

@@ -7,7 +7,7 @@ interface Props {
export function HttpResponseDurationTag({ response }: Props) { export function HttpResponseDurationTag({ response }: Props) {
const [fallbackElapsed, setFallbackElapsed] = useState<number>(0); const [fallbackElapsed, setFallbackElapsed] = useState<number>(0);
const timeout = useRef<NodeJS.Timeout>(); const timeout = useRef<NodeJS.Timeout>(undefined);
// Calculate the duration of the response for use when the response hasn't finished yet // Calculate the duration of the response for use when the response hasn't finished yet
useEffect(() => { useEffect(() => {

View File

@@ -263,8 +263,8 @@ const BaseInput = forwardRef<EditorView, InputProps>(function InputBase(
inputWrapperClassName, inputWrapperClassName,
'w-full min-w-0 px-2', 'w-full min-w-0 px-2',
fullHeight && 'h-full', fullHeight && 'h-full',
leftSlot && 'pl-0.5 -ml-2', leftSlot ? 'pl-0.5 -ml-2' : null,
rightSlot && 'pr-0.5 -mr-2', rightSlot ? 'pr-0.5 -mr-2' : null,
)} )}
> >
<Editor <Editor

View File

@@ -147,8 +147,8 @@ export const PlainInput = forwardRef<{ focus: () => void }, PlainInputProps>(fun
<HStack <HStack
className={classNames( className={classNames(
'w-full min-w-0', 'w-full min-w-0',
leftSlot && 'pl-0.5 -ml-2', leftSlot ? 'pl-0.5 -ml-2' : null,
rightSlot && 'pr-0.5 -mr-2', rightSlot ? 'pr-0.5 -mr-2' : null,
)} )}
> >
<input <input

View File

@@ -23,7 +23,7 @@ export function Tooltip({ children, content, tabIndex, size = 'md' }: TooltipPro
const [isOpen, setIsOpen] = useState<CSSProperties>(); const [isOpen, setIsOpen] = useState<CSSProperties>();
const triggerRef = useRef<HTMLButtonElement>(null); const triggerRef = useRef<HTMLButtonElement>(null);
const tooltipRef = useRef<HTMLDivElement>(null); const tooltipRef = useRef<HTMLDivElement>(null);
const showTimeout = useRef<NodeJS.Timeout>(); const showTimeout = useRef<NodeJS.Timeout>(undefined);
const handleOpenImmediate = () => { const handleOpenImmediate = () => {
if (triggerRef.current == null || tooltipRef.current == null) return; if (triggerRef.current == null || tooltipRef.current == null) return;