deepkit-framework icon indicating copy to clipboard operation
deepkit-framework copied to clipboard

[ORM] mongodb BSONError: No template found for 0 for Array<{...}>

Open CristianPi opened this issue 2 years ago • 1 comments

  references: Array<{
    cls: string,
    id: MongoId
  }> = [];

The error is not very clear, but is does not like that Array the way i declared it.

  should create an entity - autocommit disable
/home/cristian/IdeaProjects/base-monorepo-nodejs/node_modules/@deepkit/bson/dist/cjs/src/bson-serializer.js:724
            throw new model_js_1.BSONError(`No template found for ${member.type.kind}`);
                  ^

BSONError: No template found for 0
    at handleObjectLiteral (/home/cristian/IdeaProjects/base-monorepo-nodejs/node_modules/@deepkit/bson/dist/cjs/src/bson-serializer.js:724:19)
    at sizerObjectLiteral (/home/cristian/IdeaProjects/base-monorepo-nodejs/node_modules/@deepkit/bson/dist/cjs/src/bson-serializer.js:597:5)
    at /home/cristian/IdeaProjects/base-monorepo-nodejs/node_modules/@deepkit/bson/dist/cjs/src/bson-serializer.js:1201:96
    at executeTemplates (/home/cristian/IdeaProjects/base-monorepo-nodejs/node_modules/@deepkit/type/dist/cjs/src/serializer.js:651:13)
    at sizerArray (/home/cristian/IdeaProjects/base-monorepo-nodejs/node_modules/@deepkit/bson/dist/cjs/src/bson-serializer.js:1061:43)
    at /home/cristian/IdeaProjects/base-monorepo-nodejs/node_modules/@deepkit/bson/dist/cjs/src/bson-serializer.js:1211:96
    at executeTemplates (/home/cristian/IdeaProjects/base-monorepo-nodejs/node_modules/@deepkit/type/dist/cjs/src/serializer.js:651:13)
    at handleObjectLiteral (/home/cristian/IdeaProjects/base-monorepo-nodejs/node_modules/@deepkit/bson/dist/cjs/src/bson-serializer.js:722:54)
    at sizerObjectLiteral (/home/cristian/IdeaProjects/base-monorepo-nodejs/node_modules/@deepkit/bson/dist/cjs/src/bson-serializer.js:597:5)
    at /home/cristian/IdeaProjects/base-monorepo-nodejs/node_modules/@deepkit/bson/dist/cjs/src/bson-serializer.js:1202:104

It works using an interface/class and using []

  references: ref[] = [];

CristianPi avatar Apr 18 '23 04:04 CristianPi

I just added tests to show that this works as intended, see https://github.com/deepkit/deepkit-framework/commit/373a69857410ec5cac376a61bcd63078e5d9596d. We also have templates assigned to kind=0, so I'm not sure where this error is coming from.

So, please post a full reproduction example if you still get this error in the newest version

marcj avatar May 08 '23 09:05 marcj