a helper tool to infer the Durable Objects of a given file
npm install infer-dosA TypeScript tool to detect DurableObject classes in your codebase. Analyzes TypeScript files and identifies exported classes that extend or implement DurableObject, including transitive inheritance.
``bash`
npm install infer-dos
`bash`
npx infer-dos
Output: JSON array of DurableObject class names
See fixtures/ directory for example inputs and expected outputs. Run npm test to verify all test cases.
`typescript
import { getDurableObjectClassNames } from "infer-dos";
const classNames = getDurableObjectClassNames("./src/my-file.ts");
console.log(classNames); // ["MyDurableObject", "MyServer"]
`
- Uses your project's tsconfig.json for accurate type resolutionDurableObject
- Detects classes that directly extend from cloudflare:workersDurableObject
- Detects classes that implement the interface
- Follows inheritance chains to detect transitive DurableObject classes
- Handles generic types and complex type hierarchies
`typescript
// Direct extends
export class MyClass extends DurableObject {}
// Implements interface
export class MyClass implements DurableObject {}
// Transitive extends (Server, Agent, Actor, etc.)
export class MyServer extends Server {} // Server extends DurableObject
export class MyAgent extends Agent {} // Agent extends Server extends DurableObject
export class MyActor extends Actor {} // Actor extends DurableObject
``
- maybe a vite plugin? so you'd never need to run the CLI
- using the clouflare api to infer migrations as well