UNPKG

@qodalis/angular-cli

Version:

A lightweight and flexible command-line interface (CLI) tool designed to streamline workflows and automate tasks for developers.

39 lines 5.24 kB
import { DefaultLibraryAuthor } from '@qodalis/cli-core'; export class CliEvalCommandProcessor { constructor() { this.command = 'eval'; this.description = 'Evaluate a JavaScript expression'; this.author = DefaultLibraryAuthor; this.allowUnlistedCommands = true; this.metadata = { icon: '🧮', module: 'misc', }; } async processCommand(command, context) { try { const output = eval(command.value ?? ''); if (Array.isArray(output)) { context.writer.writeln('Output:'); context.writer.writeJson(output); return; } if (typeof output === 'object') { context.writer.writeln('Output:'); context.writer.writeJson(output); return; } context.writer.writeln('Output: ' + output?.toString()); } catch (e) { context.writer.writeError(e.toString()); } } writeDescription(context) { context.writer.writeln(this.description); context.writer.writeln('Examples:'); context.writer.writeln(' eval 1 + 1'); context.writer.writeln(' eval "Hello, " + "World!"'); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWV2YWwtY29tbWFuZC1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGkvc3JjL2xpYi9jbGkvcHJvY2Vzc29ycy9jbGktZXZhbC1jb21tYW5kLXByb2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXdCLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFPL0UsTUFBTSxPQUFPLHVCQUF1QjtJQUFwQztRQUNJLFlBQU8sR0FBRyxNQUFNLENBQUM7UUFDakIsZ0JBQVcsR0FBRyxrQ0FBa0MsQ0FBQztRQUNqRCxXQUFNLEdBQUcsb0JBQW9CLENBQUM7UUFDOUIsMEJBQXFCLEdBQUcsSUFBSSxDQUFDO1FBRTdCLGFBQVEsR0FBc0M7WUFDMUMsSUFBSSxFQUFFLElBQUk7WUFDVixNQUFNLEVBQUUsTUFBTTtTQUNqQixDQUFDO0lBaUNOLENBQUM7SUEvQkcsS0FBSyxDQUFDLGNBQWMsQ0FDaEIsT0FBMEIsRUFDMUIsT0FBNkI7UUFFN0IsSUFBSTtZQUNBLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBRXpDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDdkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNqQyxPQUFPO2FBQ1Y7WUFFRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRTtnQkFDNUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7Z0JBQ2xDLE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUNqQyxPQUFPO2FBQ1Y7WUFFRCxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEdBQUcsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDM0Q7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1NBQzVDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLE9BQTZCO1FBQzFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6QyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNwQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN2QyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO0lBQzFELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaVByb2Nlc3Nvck1ldGFkYXRhLCBEZWZhdWx0TGlicmFyeUF1dGhvciB9IGZyb20gJ0Bxb2RhbGlzL2NsaS1jb3JlJztcbmltcG9ydCB7XG4gICAgQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgSUNsaUNvbW1hbmRQcm9jZXNzb3IsXG4gICAgSUNsaUV4ZWN1dGlvbkNvbnRleHQsXG59IGZyb20gJ0Bxb2RhbGlzL2NsaS1jb3JlJztcblxuZXhwb3J0IGNsYXNzIENsaUV2YWxDb21tYW5kUHJvY2Vzc29yIGltcGxlbWVudHMgSUNsaUNvbW1hbmRQcm9jZXNzb3Ige1xuICAgIGNvbW1hbmQgPSAnZXZhbCc7XG4gICAgZGVzY3JpcHRpb24gPSAnRXZhbHVhdGUgYSBKYXZhU2NyaXB0IGV4cHJlc3Npb24nO1xuICAgIGF1dGhvciA9IERlZmF1bHRMaWJyYXJ5QXV0aG9yO1xuICAgIGFsbG93VW5saXN0ZWRDb21tYW5kcyA9IHRydWU7XG5cbiAgICBtZXRhZGF0YT86IENsaVByb2Nlc3Nvck1ldGFkYXRhIHwgdW5kZWZpbmVkID0ge1xuICAgICAgICBpY29uOiAn8J+nricsXG4gICAgICAgIG1vZHVsZTogJ21pc2MnLFxuICAgIH07XG5cbiAgICBhc3luYyBwcm9jZXNzQ29tbWFuZChcbiAgICAgICAgY29tbWFuZDogQ2xpUHJvY2Vzc0NvbW1hbmQsXG4gICAgICAgIGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0LFxuICAgICk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3Qgb3V0cHV0ID0gZXZhbChjb21tYW5kLnZhbHVlID8/ICcnKTtcblxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3V0cHV0KSkge1xuICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ091dHB1dDonKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUpzb24ob3V0cHV0KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3V0cHV0ID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ091dHB1dDonKTtcbiAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZUpzb24ob3V0cHV0KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ091dHB1dDogJyArIG91dHB1dD8udG9TdHJpbmcoKSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlRXJyb3IoZSEudG9TdHJpbmcoKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB3cml0ZURlc2NyaXB0aW9uKGNvbnRleHQ6IElDbGlFeGVjdXRpb25Db250ZXh0KTogdm9pZCB7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4odGhpcy5kZXNjcmlwdGlvbik7XG4gICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlbG4oJ0V4YW1wbGVzOicpO1xuICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCcgIGV2YWwgMSArIDEnKTtcbiAgICAgICAgY29udGV4dC53cml0ZXIud3JpdGVsbignICBldmFsIFwiSGVsbG8sIFwiICsgXCJXb3JsZCFcIicpO1xuICAgIH1cbn1cbiJdfQ==