HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //proc/self/root/usr/local/lib/node_modules/@ionic/cli/lib/executor.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getFullCommandParts = exports.metadataToCmdOptsEnv = exports.runCommand = exports.Executor = exports.HELP_FLAGS = exports.VERSION_FLAGS = void 0;
const tslib_1 = require("tslib");
const cli_framework_1 = require("@ionic/cli-framework");
const lodash = tslib_1.__importStar(require("lodash"));
const guards_1 = require("../guards");
const color_1 = require("./color");
const config_1 = require("./config");
const errors_1 = require("./errors");
exports.VERSION_FLAGS = ['--version', '-v'];
exports.HELP_FLAGS = ['--help', '-?', '-h'];
class Executor extends cli_framework_1.BaseExecutor {
    async locate(argv) {
        const pargs = (0, cli_framework_1.stripOptions)(argv, {});
        const location = await this.namespace.locate(pargs);
        const args = lodash.drop(argv, location.path.length - 1);
        if (lodash.intersection(exports.VERSION_FLAGS, argv).length > 0) {
            return this.locate(['version', ...pargs]);
        }
        else if (lodash.intersection(exports.HELP_FLAGS, argv).length > 0 || !(0, guards_1.isCommand)(location.obj)) {
            return this.locate(['help', ...pargs]);
        }
        return { ...location, args };
    }
    async run(command, cmdargs, { location, env, executor }) {
        const metadata = await command.getMetadata();
        const parts = getFullCommandParts(location);
        if (metadata.options) {
            const optMap = metadataToCmdOptsEnv(metadata, parts.slice(1));
            // TODO: changes opt by reference, which is probably bad
            for (const [opt, envvar] of optMap.entries()) {
                const envdefault = env[envvar];
                if (typeof envdefault !== 'undefined') {
                    opt.default = opt.type === Boolean ? (envdefault && envdefault !== '0' ? true : false) : envdefault;
                }
            }
        }
        const metadataOpts = [...metadata.options ? metadata.options : [], ...config_1.GLOBAL_OPTIONS];
        const minimistOpts = (0, cli_framework_1.metadataOptionsToParseArgsOptions)(metadataOpts);
        const cmdoptions = (0, cli_framework_1.parseArgs)(cmdargs, minimistOpts);
        const cmdinputs = cmdoptions._;
        const { project } = this.namespace;
        if (project) {
            if (project.details.context === 'multiapp') {
                cmdoptions['project'] = project.details.id;
            }
        }
        else {
            if (metadata.type === 'project') {
                throw new errors_1.FatalException(`Sorry! ${(0, color_1.input)(parts.join(' '))} can only be run in an Ionic project directory.\n` +
                    `If this is a project you'd like to integrate with Ionic, run ${(0, color_1.input)('ionic init')}.`);
            }
        }
        await command.execute(cmdinputs, cmdoptions, { location, env, executor });
    }
}
exports.Executor = Executor;
async function runCommand(runinfo, argv) {
    const { env, executor } = runinfo;
    const metadata = await executor.namespace.getMetadata();
    executor.namespace.env.log.msg(`> ${(0, color_1.input)([metadata.name, ...argv].map(a => a.includes(' ') ? `"${a}"` : a).join(' '))}`);
    await executor.execute(argv, env);
}
exports.runCommand = runCommand;
function metadataToCmdOptsEnv(metadata, cmdNameParts) {
    const optMap = new Map();
    if (!metadata.options) {
        return optMap;
    }
    const prefix = `IONIC_CMDOPTS_${cmdNameParts.map(s => s.toUpperCase()).join('_')}`;
    for (const option of metadata.options) {
        optMap.set(option, `${prefix}_${option.name.toUpperCase().split('-').join('_')}`);
    }
    return optMap;
}
exports.metadataToCmdOptsEnv = metadataToCmdOptsEnv;
function getFullCommandParts(location) {
    return location.path.map(([p]) => p);
}
exports.getFullCommandParts = getFullCommandParts;