39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			39 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { existsSync, readFileSync, writeFileSync } from "fs";
 | 
						|
import { ensureFileSync } from "fs-extra";
 | 
						|
import path from "path";
 | 
						|
 | 
						|
export class CfgData {
 | 
						|
    version: string = "1.0.0";
 | 
						|
    md5: string = "";
 | 
						|
}
 | 
						|
 | 
						|
export class CfgUtils {
 | 
						|
    private static getCfgFile(pkg: string) {
 | 
						|
        if (!pkg || pkg.trim() === '') {
 | 
						|
            throw new Error('包名不能为空');
 | 
						|
        }
 | 
						|
        return path.join(__dirname, `../../../temp/max-framework-hotupdate/${pkg}.json`);
 | 
						|
    }
 | 
						|
 | 
						|
    static getCfgData(pkg: string): CfgData {
 | 
						|
        const cfgFile = CfgUtils.getCfgFile(pkg);
 | 
						|
        if (existsSync(cfgFile)) {
 | 
						|
            const data = readFileSync(cfgFile, 'utf-8');
 | 
						|
            const cfgData = JSON.parse(data) as CfgData;
 | 
						|
            console.log('读取配置文件', pkg, JSON.stringify(cfgData));
 | 
						|
            return cfgData;
 | 
						|
        } else {
 | 
						|
            const data = new CfgData();
 | 
						|
            CfgUtils.savaConfig(pkg, data);
 | 
						|
            return data;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    static savaConfig(pkg: string, data: CfgData) {
 | 
						|
        console.log('保存配置文件', pkg, JSON.stringify(data));
 | 
						|
        const cfgFile = CfgUtils.getCfgFile(pkg);
 | 
						|
        ensureFileSync(cfgFile);
 | 
						|
        writeFileSync(cfgFile, JSON.stringify(data), 'utf-8');
 | 
						|
    }
 | 
						|
}
 |