I'm getting this error after using transpiled javascript from typescript code. super keyword is not working as it supposed to I'm trying to access a one property of parent class but it throws error saying TypeError: (intermediate value).mandatoryProps is not iterable
tsconfig.json
{
"compilerOptions": {
"module": "CommonJS",
"declaration": true,
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"sourceMap": true,
"moduleResolution": "node",
"target": "es6",
"allowSyntheticDefaultImports": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"outDir": "src",
},
"include": [
"lib/**/*.ts"
],
"exclude": [
"node_modules",
]
}
actual typescript file
export abstract class VMSchemaRegistryEvent extends VMEvent {
@Transform(({ value }) =>
Object.values(SchemaRegistryNotificationSubject).find((code) => code == value)
|| Object.values(SchemaRegistryRequestEventSubject).find((code) => code == value)
|| Object.values(SchemaRegistryErrorEventSubject).find((code) => code == value))
schemaRegistryEventSubject: SchemaRegistryEventSubject;
constructor(schemaRegistryEventSubject: SchemaRegistryEventSubject) {
super(
new VMEventIdentity(vmEventsSpecBuilder.buildSchemaRegistryEventName(schemaRegistryEventSubject),
SCHEMA_REGISTRY_NAMESPACE_CONST))
this.schemaRegistryEventSubject = schemaRegistryEventSubject;
}
static fromPlainObject(baseEvent: any): VMSchemaRegistryEvent {
return vmEventsSpecBuilder.buildSchemaRegistryConcreteEventFromBaseEvent(baseEvent)
}
@Expose()
get toPlainObject(): StringIndexedObject {
let objectToReturn: StringIndexedObject = { ...super.toPlainObject }
objectToReturn[VMEventPropertyKeys.SCHEMA_REGISTRY_EVENT_SUBJECT_KEY] = this.schemaRegistryEventSubject;
return objectToReturn;
}
mandatoryProps: VMEventPropertyKeys[] = [...super.mandatoryProps, VMEventPropertyKeys.SCHEMA_REGISTRY_EVENT_SUBJECT_KEY]
}
export class VMEvent implements Publishable, Buildable {
@Type(() => ObjectId)
@Transform(({ value }) => resolveTimeBasedId(value))
_id?: ObjectId;
@Type(() => VMEventIdentity)
eventIdentity: VMEventIdentity;
constructor(eventIdentity: object | VMEventIdentity, _id?: string | ObjectId | ObjectIdLike) {
this._id = resolveOrGenerateTimeBasedId(_id);
if (vmEventsSpecResolver.isVMEventIdentity(eventIdentity)) {
this.eventIdentity = eventIdentity;
} else {
this.eventIdentity = VMEventIdentity.fromPlainObject(eventIdentity);
}
}
static fromPlainObject(eventPlain: object): VMEvent {
return plainToClass(VMEvent, eventPlain);
}
@Expose()
get toPlainObject(): StringIndexedObject {
let objectToReturn: StringIndexedObject = {};
objectToReturn[VMEventPropertyKeys.EVENT_IDENTITY_KEY] = this.eventIdentity.toPlainObject
objectToReturn[VMEventPropertyKeys.OBJECT_ID_KEY] = this._id
return objectToReturn;
}
mandatoryProps: VMEventPropertyKeys[] = [VMEventPropertyKeys.EVENT_IDENTITY_KEY]
}
transpiled Javascript
class VMSchemaRegistryEvent extends vmBaseEvent_1.VMEvent {
constructor(schemaRegistryEventSubject) {
super(new vmBaseEvent_1.VMEventIdentity(vmEventsSpecBuilder_1.vmEventsSpecBuilder.buildSchemaRegistryEventName(schemaRegistryEventSubject), vmEventCommonTypes_1.SCHEMA_REGISTRY_NAMESPACE_CONST));
this.mandatoryProps = [...super.mandatoryProps, vmEventPropertyKeys_1.VMEventPropertyKeys.SCHEMA_REGISTRY_EVENT_SUBJECT_KEY];
this.schemaRegistryEventSubject = schemaRegistryEventSubject;
}
static fromPlainObject(baseEvent) {
return vmEventsSpecBuilder_1.vmEventsSpecBuilder.buildSchemaRegistryConcreteEventFromBaseEvent(baseEvent);
}
get toPlainObject() {
let objectToReturn = { ...super.toPlainObject };
objectToReturn[vmEventPropertyKeys_1.VMEventPropertyKeys.SCHEMA_REGISTRY_EVENT_SUBJECT_KEY] = this.schemaRegistryEventSubject;
return objectToReturn;
}
}
class VMEvent {
constructor(eventIdentity, _id) {
this.mandatoryProps = [vmEventPropertyKeys_1.VMEventPropertyKeys.EVENT_IDENTITY_KEY];
this._id = utils_1.resolveOrGenerateTimeBasedId(_id);
if (vmEventsSpecResolver_1.vmEventsSpecResolver.isVMEventIdentity(eventIdentity)) {
this.eventIdentity = eventIdentity;
}
else {
this.eventIdentity = VMEventIdentity.fromPlainObject(eventIdentity);
}
}
static fromPlainObject(eventPlain) {
return class_transformer_1.plainToClass(VMEvent, eventPlain);
}
get toPlainObject() {
let objectToReturn = {};
objectToReturn[vmEventPropertyKeys_1.VMEventPropertyKeys.EVENT_IDENTITY_KEY] = this.eventIdentity.toPlainObject;
objectToReturn[vmEventPropertyKeys_1.VMEventPropertyKeys.OBJECT_ID_KEY] = this._id;
return objectToReturn;
}
}