billysyrett
billysyrett15mo ago

Type instantiation is excessively deep and possibly infinite.

Hi, I'm running into this error when trying to restructure my functions. It occurs when a folder has the same name as a file in the directory below. For example, this structure will cause the error:
convex
├── projects
│   └── activities.ts
└── projects.ts
convex
├── projects
│   └── activities.ts
└── projects.ts
I like this structure as I can put basic functions in the main file:
useQuery(api.projects.get)
useQuery(api.projects.get)
and have more advanced functions separated:
useQuery(api.projects.activities.get)
useQuery(api.projects.activities.get)
There are no errors in the api.d.ts file and I'm running convex 1.7.1
3 Replies
billysyrett
billysyrettOP15mo ago
Example api.d.ts file:
/* eslint-disable */
/**
* Generated `api` utility.
*
* THIS CODE IS AUTOMATICALLY GENERATED.
*
* Generated by convex@1.7.1.
* To regenerate, run `npx convex dev`.
* @module
*/

import type {
ApiFromModules,
FilterApi,
FunctionReference,
} from "convex/server";
import type * as projects_activities from "../projects/activities.js";
import type * as projects from "../projects.js";

/**
* A utility for referencing Convex functions in your app's API.
*/
declare const fullApi: ApiFromModules<{
"projects/activities": typeof projects_activities;
projects: typeof projects;
}>;
export declare const api: FilterApi<
typeof fullApi,
FunctionReference<any, "public">
>;
export declare const internal: FilterApi<
typeof fullApi,
FunctionReference<any, "internal">
>;
/* eslint-disable */
/**
* Generated `api` utility.
*
* THIS CODE IS AUTOMATICALLY GENERATED.
*
* Generated by convex@1.7.1.
* To regenerate, run `npx convex dev`.
* @module
*/

import type {
ApiFromModules,
FilterApi,
FunctionReference,
} from "convex/server";
import type * as projects_activities from "../projects/activities.js";
import type * as projects from "../projects.js";

/**
* A utility for referencing Convex functions in your app's API.
*/
declare const fullApi: ApiFromModules<{
"projects/activities": typeof projects_activities;
projects: typeof projects;
}>;
export declare const api: FilterApi<
typeof fullApi,
FunctionReference<any, "public">
>;
export declare const internal: FilterApi<
typeof fullApi,
FunctionReference<any, "internal">
>;
Michal Srb
Michal Srb15mo ago
Hey @billysyrett, yeah I think we don't support this structure. You can instead put export default const query(.... into projects/get.ts
billysyrett
billysyrettOP15mo ago
Thanks - that'll work!

Did you find this page helpful?