I'm trying to get a files metadata if a file id exists and "skip" would be perfect for that use case. When inspecting useQuery I can pass skip, but when I try it throws an error because of my zod schema in the query definition. Is there a workaround for this?
const fileWithData = useQuery(
api.files.getFile,
stagedImageId
? {
storageId: stagedImageId || "",
}
: "skip"
);
zQuery definition
export const zQuery = zCustomQuery(query, NoOp);
Error
Argument of type '"skip" | { storageId: string | Id<"_storage">; }' is not assignable to parameter of type '{ storageId: string & { __tableName: "_storage"; }; } | "skip"'.
Type '{ storageId: string | Id<"_storage">; }' is not assignable to type '{ storageId: string & { __tableName: "_storage"; }; } | "skip"'.
Types of property 'storageId' are incompatible.
Type 'string | Id<"_storage">' is not assignable to type '(string & { __tableName: "_storage"; }) | undefined'.
Type 'string' is not assignable to type 'string & { __tableName: "_storage"; }'.
Type 'string' is not assignable to type '{ __tableName: "_storage"; }'