import { computeFileExtension } from "../../core/path/computeFileExtension.js";

/**
 *
 * @param {string} url
 * @returns {string|null}
 */
export function guessAssetType(url) {
    const ext = computeFileExtension(url);
    const assetRootPath = 'data/';

    let assetDirectory = url.substring(url.indexOf(assetRootPath) + assetRootPath.length);

    while (assetDirectory.charAt(0) === "/") {
        assetDirectory = assetDirectory.substr(1);
    }
    let iSlash = assetDirectory.indexOf("/");
    if (iSlash === -1) {
        assetDirectory = "";
    } else {
        assetDirectory = assetDirectory.substr(0, iSlash);
    }
    switch (ext) {
        case "json":
            switch (assetDirectory) {
                case "models":
                    return "three.js";
                case "levels":
                    return "level";
                default:
                    return "json";
            }
        case 'gltf':
            return 'model/gltf+json';
        case 'glb':
            return 'model/gltf';
        case "jpg":
        case "jpeg":
        case "png":
            return "image";
        case "ogg":
        case "mp3":
        //NOTE currently chrome doesn't seem to load these
        // return "sound";
        default :
            return null;
    }
}
