Skip to content

Commit 8b31897

Browse files
fix(): preserve order of properties in schema definition #1277
1 parent e96fec3 commit 8b31897

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

lib/storages/type-metadata.storage.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ export class TypeMetadataStorageHost {
88
private properties = new Array<PropertyMetadata>();
99

1010
addPropertyMetadata(metadata: PropertyMetadata) {
11-
this.properties.push(metadata);
11+
this.properties.unshift(metadata);
1212
}
1313

1414
addSchemaMetadata(metadata: SchemaMetadata) {

tests/e2e/schema-definitions.factory.spec.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,26 @@ class ExampleClass {
8484
describe('DefinitionsFactory', () => {
8585
it('should generate a valid schema definition', () => {
8686
const definition = DefinitionsFactory.createForClass(ExampleClass);
87+
88+
expect(Object.keys(definition)).toEqual([
89+
'objectId',
90+
'name',
91+
'buffer',
92+
'decimal',
93+
'mixed',
94+
'expiresAt',
95+
'map',
96+
'isEnabled',
97+
'number',
98+
'ref',
99+
'child',
100+
'child2',
101+
'nodes',
102+
'customArray',
103+
'customObject',
104+
'any',
105+
'array',
106+
]);
87107
expect(definition).toEqual({
88108
objectId: {
89109
type: mongoose.Schema.Types.ObjectId,

0 commit comments

Comments
 (0)