field-metadata.ts 746 B

123456789101112131415161718192021222324252627
  1. import { ModelMetadataCollection } from "../collections/model-metadata";
  2. export class FieldMetadataCollection<T extends { target?: Function | string, propertyName?: string }> extends ModelMetadataCollection<T> {
  3. /**
  4. *
  5. */
  6. filterRepeatedMetadatas(existsMetadatas: T[]): this {
  7. return this.filter(metadata => {
  8. return !existsMetadatas.find(fieldDocument => fieldDocument.propertyName === metadata.propertyName);
  9. });
  10. }
  11. /**
  12. *
  13. */
  14. findByProperty(propertyName: string): T {
  15. return this.items.find(item => item.propertyName === propertyName);
  16. }
  17. /**
  18. *
  19. */
  20. hasWithProperty(propertyName: string) {
  21. return !!this.findByProperty(propertyName);
  22. }
  23. }