fba-awu-exam-types
v1.0.7
Published
Type definitions for AWU exam models
Downloads
10
Readme
fba-awu-exam-types
This package provides TypeScript type definitions for the AWU exam app models.
Overview
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.
Installation
npm install fba-awu-exam-typesUsage
import { BookType, UserType } from "fba-awu-exam-types";
// Use the types in your code
const book: BookType = {
_id: "123",
title: "Sample Book",
// ...other properties
};How It Works
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.
Updating Types
When models in the application change, run the following command to update the types:
npm run copy-models && npm run buildThis will copy the latest schema definitions from the application's models, transform them into type definitions, and compile them.
Advantages
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.
Development
To modify how types are generated, check the src/copy-models.ts script, which copies and transforms the model files.
Available Types
The package provides TypeScript interfaces for all models in the API:
BookTypeAuthorTypeGenreTypeMoodTypeTagTypeUserTypeTokenType
Publishing
npm run prepublishOnly
npm publish