This package provides TypeScript type definitions for the AWU exam app models.
The type definitions in this package are generated directly from the Mongoose schemas defined in the application's models. This ensures that the types always match the actual data structures used in the application.
npm install fba-awu-exam-types
import { BookType, UserType } from "fba-awu-exam-types";
// Use the types in your code
const book: BookType = {
_id: "123",
title: "Sample Book",
// ...other properties
};
The types in this package are created using Mongoose's InferSchemaType
utility, which extracts TypeScript types directly from Mongoose schema definitions. The package copies the schema definitions from the app's models and generates appropriate TypeScript types.
When models in the application change, run the following command to update the types:
npm run copy-models && npm run build
This will copy the latest schema definitions from the application's models, transform them into type definitions, and compile them.
This approach has several advantages over manually maintaining types:
- Automatic Updates: Types are generated directly from the schemas, reducing the chances of inconsistencies.
- Complete Coverage: All properties defined in the schemas are included in the types.
- Proper Handling of Nested Objects: Complex structures like nested objects are properly typed.
To modify how types are generated, check the src/copy-models.ts
script, which copies and transforms the model files.
The package provides TypeScript interfaces for all models in the API:
BookType
AuthorType
GenreType
MoodType
TagType
UserType
TokenType
npm run prepublishOnly
npm publish