Skip to content

Formula defined with EntitySchema throws undefined error for type.toLowerCase() #3603

@squivix

Description

@squivix

Describe the bug
Formula property otherCount defined with EntitySchema as follows:

export const schema = new EntitySchema({
    name: "MyEntity",
    class: MyEntity,
    properties: {
        _id: { primary: true, type: 'number'},
        other: { type: 'OtherEntity', reference: ReferenceType.MANY_TO_MANY},
        otherCount: { formula: 'COUNT(other)' },
    },
});

Throws a TypeError: Cannot read properties of undefined (reading 'toLowerCase')

Stack trace

TypeError: Cannot read properties of undefined (reading 'toLowerCase')
    at MetadataDiscovery.getMappedType (/home/user/WebstormProjects/test-mikro/node_modules/@mikro-orm/core/metadata/MetadataDiscovery.js:845:52)
    at MetadataDiscovery.initColumnType (/home/user/WebstormProjects/test-mikro/node_modules/@mikro-orm/core/metadata/MetadataDiscovery.js:820:37)
    at MetadataDiscovery.processDiscoveredEntities (/home/user/WebstormProjects/test-mikro/node_modules/@mikro-orm/core/metadata/MetadataDiscovery.js:71:28)
    at async MetadataDiscovery.discover (/home/user/WebstormProjects/test-mikro/node_modules/@mikro-orm/core/metadata/MetadataDiscovery.js:35:9)
    at async MikroORM.discoverEntities (/home/user/WebstormProjects/test-mikro/node_modules/@mikro-orm/core/MikroORM.js:102:25)
    at async Function.init (/home/user/WebstormProjects/test-mikro/node_modules/@mikro-orm/core/MikroORM.js:47:9)...

To Reproduce
Steps to reproduce the behavior:

  1. Define an entity in Javascript using the EntitySchema
  2. Add a property that is a formula without a type
  3. Error

Expected behavior
Formula properties should not need a type, as the docs show:

properties: {
  objectVolume: { formula: 'obj_length * obj_height * obj_width' },
},

Versions

Dependency Version
node v16.17.0
typescript -
mikro-orm 5.4.2
@mikro-orm/postgresql 5.4.2

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions