Skip to content

SSF-131/138 Strict Mode#105

Open
Juwang110 wants to merge 15 commits intomainfrom
jw/SSF-131-strict-mode
Open

SSF-131/138 Strict Mode#105
Juwang110 wants to merge 15 commits intomainfrom
jw/SSF-131-strict-mode

Conversation

@Juwang110
Copy link

ℹ️ Issue

Closes https://vidushimisra.atlassian.net/jira/software/projects/SSF/boards/1?selectedIssue=SSF-131 and
https://vidushimisra.atlassian.net/jira/software/projects/SSF/boards/1?selectedIssue=SSF-138

📝 Description

This PR enables typescript strict mode in the backend which enables the compiler to be a lot more picky and strict with types, null and undefined checks, etc. The PR includes changes to make our backend adhere with all the rules that strict mode enforces. This involved work making entity fields optional or required, and also handling null/undefined errors and return values.

✔️ Verification

I made sure all the backend tests pass and npx nx serve backend properly runs without error.

🏕️ (Optional) Future Work / Notes

N/A

@dburkhart07 dburkhart07 self-requested a review February 15, 2026 21:15
@sam-schu sam-schu self-requested a review February 15, 2026 21:56
Copy link

@dburkhart07 dburkhart07 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some initial changes

});
}

validateEnv(name: string): string {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could we put this in the validation.utils.ts file? Could be useful for other aws setups that we use down the road.

@MaxLength(255)
additionalInformation?: string;

@IsDate()

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Creating a food request should never have these 3 bottom fields. They should always be initialized to null at the start. Can you update this as well as the test?

foodType: FoodType;
name!: string;
quantity!: number;
foodType?: FoodType;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this not be required?

referencedColumnName: 'foodManufacturerId',
})
foodManufacturer?: FoodManufacturer;
foodManufacturer?: FoodManufacturer | null;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now that I think about it, the food manufacturer should not be null I dont think. When an order is created, we know who the food manufacturer is, we are just waiting for them to ship it out. We are also changing shippedBy to be the food manufacturer id, so that field should also end up being required.

items: OrderItemDetailsDto[];
orderId!: number;
status!: OrderStatus;
foodManufacturerName?: string;

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

contactPhone: '(508) 222-2222',
hasEmailContact: true,
emailContactOther: null,
emailContactOther: undefined,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any reason why we made this undefined?

newsletterSubscription?: string;
}

export interface CreateRequestDto {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will need to change this too to not have dataReceived, feedback, or photos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants