def get_meta_type_by_dir(dir_name):
    parent_data = get_default_metadata_data()
    child_data = get_child_metadata_data()
    data = parent_data['metadataObjects'] + child_data
    for item in data:
        if 'directoryName' in item and item['directoryName'].lower() == dir_name.lower():
            return item
        elif 'tagName' in item and item['tagName'].lower() == dir_name.lower():
            return item
    '''
        > quick and dirty fix for users experiencing issues with "newer" metadata types not properly tested by mm
        > if the project has a cached .describe, let's use that to detect metadata types
    '''
    try:
        if config.describe_data != None:
            project_org_describe = config.describe_data
        if config.project != None and os.path.isfile(os.path.join(config.project.location,'config','.describe')):
            project_org_describe = parse_json_from_file(os.path.join(config.project.location,'config','.describe'))
        if project_org_describe != None and 'metadataObjects' in project_org_describe:
            for item in project_org_describe["metadataObjects"]:
                if 'directoryName' in item and item['directoryName'].lower() == dir_name.lower():
                    return item
                elif 'tagName' in item and item['tagName'].lower() == dir_name.lower():
                    return item
    except:
        pass