resolveMetaAliases = def => {
    return def.update("props", data => {
      const aliases = def.get("aliases", Immutable.Map());

      return data.map((value, key) => {
        if (Immutable.Map.isMap(value.get("meta"))) {
          return value.update("meta", md => {
            return recursiveMap(md, md => {
              if (typeof md !== "string") return md;
              return allMatches(md, ALIAS_PATTERN).reduce(
                (md, [alias, key]) => {
                  if (!aliases.has(key))
                    throw new Error(`Alias "${key}" not found`);
                  return md.replace(alias, aliases.getIn([key, "value"]));
                },
                md
              );
            });
          });
        } else {
          return value;
        }
      });
    });
  }
Resolve aliases inside prop meta data