@pmeig/srv-cli
Version:
A powerful command-line interface for the @pmeig/srv framework ecosystem. Provides project scaffolding, code generation, build automation, and development tools for creating and managing framework-based applications and libraries.
44 lines • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NoopContext = void 0;
const cli_context_1 = require("./server/cli.context");
const runner_1 = require("./runner/runner");
const runner_helper_1 = require("./runner/runner.helper");
const node_process_1 = require("node:process");
exports.NoopContext = {
type: 'noop',
name: 'noop',
projects: {},
architecture: {},
location: {
root: ''
},
assets: []
};
const main = async (params) => {
const request = params.shift();
if (request) {
const contextMetadata = (0, cli_context_1.findContext)(process.cwd());
if (contextMetadata.context) {
if (contextMetadata.context.type === 'application') {
contextMetadata.context.projects['main'] = contextMetadata.context;
params.unshift('main');
}
else if (params.length === 0) {
params.unshift((Object.entries(contextMetadata.context.projects ?? {}).find(([_, project]) => project.type === 'application') ?? ['main'])[0]);
}
}
const runner = runner_1.Runner[request];
if (runner) {
const parameters = (0, runner_helper_1.extractParameters)(params, runner.parameters, contextMetadata.context?.projects ?? {});
return runner.run(contextMetadata.context ?? exports.NoopContext, parameters.cli, contextMetadata.rootProject, ...parameters.command);
}
}
};
(async () => await main(process.argv.slice(2))
.then(() => (0, node_process_1.exit)(0))
.catch(error => {
console.error(error);
(0, node_process_1.exit)(1);
}))();
//# sourceMappingURL=index.js.map