Cli入口和核心应用

Cli 入口

用户可以在终端输入以下命令启动核心应用(fxd-app-core)

fxd _login

或其他子应用(比如 fxd-app-check-chan...)

fxd checkChan --url="https://sct.ftqq.com" --selectors=".marktext table"

应用的载入逻辑可参考以下代码:

// 如果命令不存在,则默认为 core help
if( !command )
{
    command = 'core';
    params = ['help'];
}

// 如果命令以 _ 开头,则为内部命令,转向 core
if( command.startsWith('_') )
{
    // 内部命令
    params = [command.slice(1), ...params];
    command = 'core';
}

// 检查 fxd_app_${command} module 是否存在(ESM语法)
let module;
const formattedCommand = humps.decamelize(command, { separator: '-' });
const packageName = `fxd-app-${formattedCommand}`;
try {
    
    // 调试模式则加载本地文件
    const thePath = DEV ? path.resolve(__dirname, `../${packageName}/index.js`) : `${packageName}`;

    const app = await import(thePath);
    module = new app.default();
    // 如果存在 module.run 方法,则执行
    if (module && module.run) {
        await module.run(params, opts);
    }else
    {
        console.log("no module.run", module);
    }
}    
catch(e)
{
   //...
}