fba-awu-exam-types
TypeScript icon, indicating that this package has built-in type declarations

1.0.7 • Public • Published

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-types

Usage

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 build

This 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:

  1. Automatic Updates: Types are generated directly from the schemas, reducing the chances of inconsistencies.
  2. Complete Coverage: All properties defined in the schemas are included in the types.
  3. 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:

  • BookType
  • AuthorType
  • GenreType
  • MoodType
  • TagType
  • UserType
  • TokenType

Publishing

npm run prepublishOnly
npm publish

Readme

Keywords

none

Package Sidebar

Install

npm i fba-awu-exam-types

Weekly Downloads

1

Version

1.0.7

License

none

Unpacked Size

67.7 kB

Total Files

44

Last publish

Collaborators

  • frbarbre