freeblox/packages/engine/src/utils/read-metadata.ts

11 lines
349 B
TypeScript

export const readMetadataOf = <T>(object: any, key: string) => {
let metadata: T[] = [];
let target = Object.getPrototypeOf(object);
while (target != Object.prototype) {
let childFields = Reflect.getOwnMetadata(key, target) || [];
metadata.unshift(...childFields);
target = Object.getPrototypeOf(target);
}
return metadata;
};