All Downloads are FREE. Search and download functionalities are using the official Maven repository.

helpers.traits.ts Maven / Gradle / Ivy

import { Field, Trait, TraitName } from 'types/graphql';

export class TraitHelper {
  static hasTrait(fields: Field[] | Field, traitName: TraitName): boolean {
    if (Array.isArray(fields)) {
      return fields.some(field => {
        const hit = TraitHelper.containsTrait(field?.traits, traitName)
        return hit || ((field.fields && TraitHelper.hasTrait(field.fields, traitName)))
      })
    }
    else {
      return TraitHelper.hasTrait([fields], traitName)
    }
  }

  static containsTrait(traits: Trait[] | undefined, traitName: TraitName): boolean {
    const t = Array.isArray(traits) ? traits : []
    return t.some(trait => trait.name.startsWith(traitName))
  }

};




© 2015 - 2024 Weber Informatics LLC | Privacy Policy