hi all,
I upgrade mongoose library to 7.4.1 and since than i having an issue to serialize data.
i have Status class
export class Status<Statuses extends object = object> {
/**
* This method is used to get the current status of the attack.
*/
public get status(): Statuses[keyof Statuses] {
return this._currentStatus as Statuses[keyof Statuses];
}
}
also, I have schema that extend this class
export class IntegrationOverviewStatus
extends Status<typeof integrationOverviewStatuses>
{
constructor(serializedStatus?: ISerializedStatus, onChange?: () => void) {
serializedStatus ??= { currentStatus: integrationOverviewStatuses.CREATED, statusHistory: [] };
super(integrationOverviewStatuses, IntegrationOverviewStatus.definitions, serializedStatus, onChange);
}
/**
* Starts the integration
*/
start() {
if (this.status === integrationStatuses.CREATED) this.transitionTo("STARTED");
}
}
export const { plugin: IntegrationOverviewStatusPlugin, schemaType: IntegrationOverviewStatusType } =
MongooseSerializable.createSchemaType<ISerializedStatus, IntegrationOverviewStatus>(
{
deserialize(val: ISerializedStatus, onChange: () => void): IntegrationOverviewStatus {
return new IntegrationOverviewStatus(val, onChange);
},
serialize(val: IntegrationOverviewStatus): ISerializedStatus {
return val.serialize();
}
},
IntegrationOverviewStatus,
new IntegrationOverviewStatus()
);
and i have the main shcema
@IntegrationOverviewStatusPlugin
@modelOptions({
schemaOptions: {
collection: "integration-overview",
strictQuery: false
},
options: { allowMixed: Severity.ALLOW }
})
export class IntegrationOverview extends BaseWithoutIdModel {
@prop({ required: true, default: new IntegrationOverviewStatus(), _id: false, type: () => IntegrationOverviewStatus })
status: IntegrationOverviewStatus;
}
when I save data it works perfectly.
howover, when I use find() to fetch data, I can’t use status() getter in Status class.
how can I use status() getter in the extended Status class?
tnx