Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ import { PersonalTableSettingsData } from '../data-structures/create-personal-ta
import { PersonalTableSettingsEntity } from '../personal-table-settings.entity.js';

export function buildNewPersonalTableSettingsEntity(
personalSettingsData: PersonalTableSettingsData,
personalSettingsData: PersonalTableSettingsData,
): PersonalTableSettingsEntity {
const newEntity = new PersonalTableSettingsEntity();
Object.assign(newEntity, personalSettingsData);
Object.keys(personalSettingsData).forEach((key) => {
if (personalSettingsData[key as keyof PersonalTableSettingsData] === null) {
// eslint-disable-next-line security/detect-object-injection
delete (newEntity as any)[key];
}
});
return newEntity;
const newEntity = new PersonalTableSettingsEntity();
Object.assign(newEntity, personalSettingsData);
Object.keys(personalSettingsData).forEach((key) => {
if (personalSettingsData[key as keyof PersonalTableSettingsData] === undefined) {
Copy link

Copilot AI Jan 20, 2026

Choose a reason for hiding this comment

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

The change from checking null to undefined creates a bug. The PersonalTableSettingsData type defines all fields as type | null, and the controller explicitly converts undefined values to null using || null (see lines 116-121 in personal-table-settings.controller.ts). This means the function will never receive undefined values - it will only receive null values. As a result, properties with null values will no longer be deleted from the entity as intended, breaking the existing functionality.

Suggested change
if (personalSettingsData[key as keyof PersonalTableSettingsData] === undefined) {
if (personalSettingsData[key as keyof PersonalTableSettingsData] === null) {

Copilot uses AI. Check for mistakes.
// eslint-disable-next-line security/detect-object-injection
delete (newEntity as any)[key];
}
});
return newEntity;
}
Loading