dist/decorators/ModelProperties.js
function applyTags(Class, addTags, fieldName, descriptor) {
  var tags = (Array.isArray(addTags) && addTags || []).map(function (tag) {
    return typeof tag === 'string' && Symbol.for(tag) || tag;
  }).filter(function (tag) {
    return (0, _typeof2.default)(tag) === 'symbol';
  });
  tags.forEach(function (tag) {
    Class[_GQLBase.META_KEY][tag] = Class[_GQLBase.META_KEY][tag] || {};
    Class[_GQLBase.META_KEY][tag][fieldName] = descriptor;
  });
}
function applyTags(Class, addTags, fieldName, descriptor) {
  var tags = (Array.isArray(addTags) && addTags || []).map(function (tag) {
    return typeof tag === 'string' && Symbol.for(tag) || tag;
  }).filter(function (tag) {
    return (0, _typeof2.default)(tag) === 'symbol';
  });
  tags.forEach(function (tag) {
    Class[_GQLBase.META_KEY][tag] = Class[_GQLBase.META_KEY][tag] || {};
    Class[_GQLBase.META_KEY][tag][fieldName] = descriptor;
  });
}
function applyTags ( Class , addTags , fieldName , descriptor ) { var tags = ( Array . isArray ( addTags ) && addTags || [ ] ) . map ( function ( tag ) { return typeof tag === 'string' && Symbol . for ( tag ) || tag ; } ) . filter ( function ( tag ) { return ( 0 , _typeof2 . default ) ( tag ) === 'symbol' ; } ) ; tags . forEach ( function ( tag ) { Class [ _GQLBase . META_KEY ] [ tag ] = Class [ _GQLBase . META_KEY ] [ tag ] || { } ; Class [ _GQLBase . META_KEY ] [ tag ] [ fieldName ] = descriptor ; } ) ; }
When applying multiple property getters and setters, knowing some info
about what was applied elsewhere can be important. "Tags" can be applied
that store the fieldName and descriptor applied via one of these decorators.

Multiple "tags" are supported to allow for detecting the difference between
decorators applied by the developer using lattice and something auto
generated such as auto-props.

@param  {GQLBase} Class an instance of GQLBase to apply the tags tp
@param  {Array<string|Symbol>} addTags an array of Symbols or strings to be
wrapped in Symbols that will be used as tag keys
@param  {string} fieldName the name of the field being decorated
@param  {Object} descriptor the JavaScript descriptor object to associate
with this tagged field.
When applying multiple property getters and setters knowing some info about what was applied elsewhere can be important . Tags can be applied that store the fieldName and descriptor applied via one of these decorators .