/**
 * @Author: Kane Wang <wangkane@qq.com>
 * @Date: 2025-10-23 16:52:10
 * @LastEditors: Kane Wang
 * @LastModified: 2025-11-21 11:17:40
 * @FilePath: src/utils/utils.ts
 * @Description: 提供 一些功能性的函数
 *
 *               Copyright (c) 2025 by Kane All rights reserved
 */

/**
 * 取文件路径末尾的扩展名作为文件类型
 * @param filePath 文件路径
 * @returns 文件类型字符串
 */
function getFileType( filePath: string ): string
{
    let type = "未知类型";

    if ( filePath == null || filePath.length == 0 )
    {
        return type;
    }

    const startIndex = filePath.lastIndexOf( "." );
    const fileType = filePath.slice( startIndex + 1 ).toUpperCase();

    // ignore-eslint-next-line
    switch( fileType )
    {
        case "DOCX":
            type = "WPS文档";
            break;
        case "XLSX":
            type = "WPS表格";
            break;
        case "PDF":
            type = "PDF文档";
            break;
        case "JPG":
        case "PNG":
        case "BMP":
        case "GIF":
            type = "图片文件";
            break;
        default:
            type = "未知文件类型";
    }

    // type = fileType.length != 0 ? fileType + "文件" : "未知类型";

    return type;
}

/**
 * 检查文件名中是否有无法使用的字符。
 * @param filename 文件名字符串。
 * @returns 检查结果。true 无问题；false表示文件名含有不合适的字符。
 */
function checkFileName( filename: string ): boolean
{
    let result = true;

    for ( const c of filename )
    {
        switch ( c )
        {
            case "%":
            case " ":
            case "+":
            case "/":
            case "?":
            case "&":
            case "#":
            case "=":
                result = false;
                break;
            default:
                result = true;
        }
    }

    return result;
}

export { getFileType, checkFileName };