@qodalis/angular-cli
Version:
A lightweight and flexible command-line interface (CLI) tool designed to streamline workflows and automate tasks for developers.
61 lines • 8.52 kB
JavaScript
import { Injectable } from '@angular/core';
import { CliIcon, } from '@qodalis/cli-core';
import { DefaultLibraryAuthor } from '@qodalis/cli-core';
import * as i0 from "@angular/core";
import * as i1 from "../../services";
export class CliHistoryCommandProcessor {
constructor(commandHistoryService) {
this.commandHistoryService = commandHistoryService;
this.command = 'history';
this.description = 'Prints the command history of the current session';
this.processors = [];
this.author = DefaultLibraryAuthor;
this.metadata = {
sealed: true,
icon: CliIcon.Code,
module: 'system',
};
this.processors?.push({
command: 'list',
description: this.description,
processCommand: this.processCommand.bind(this),
writeDescription: this.writeDescription.bind(this),
});
this.processors?.push({
command: 'clear',
description: 'Clears the command history',
processCommand: async (_, context) => {
await this.commandHistoryService.clearHistory();
context.writer.writeInfo('Command history cleared');
},
writeDescription: (context) => {
context.writer.writeln('Clears the command history');
},
});
}
async processCommand(_, { writer }) {
const history = this.commandHistoryService.getHistory();
if (history.length === 0) {
writer.writeln('No history available');
return;
}
else {
writer.writeln('Command history:');
history.forEach((command, index) => {
writer.writeln(`${index + 1}. ${command}`);
});
}
}
writeDescription({ writer }) {
writer.writeln('Prints the command history of the current session');
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliHistoryCommandProcessor, deps: [{ token: i1.CliCommandHistoryService }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliHistoryCommandProcessor, providedIn: 'root' }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliHistoryCommandProcessor, decorators: [{
type: Injectable,
args: [{
providedIn: 'root',
}]
}], ctorParameters: function () { return [{ type: i1.CliCommandHistoryService }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLWhpc3RvcnktY29tbWFuZC1wcm9jZXNzb3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGkvc3JjL2xpYi9jbGkvcHJvY2Vzc29ycy9zeXN0ZW0vY2xpLWhpc3RvcnktY29tbWFuZC1wcm9jZXNzb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBTUgsT0FBTyxHQUNWLE1BQU0sbUJBQW1CLENBQUM7QUFFM0IsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7OztBQU16RCxNQUFNLE9BQU8sMEJBQTBCO0lBZ0JuQyxZQUNxQixxQkFBK0M7UUFBL0MsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUEwQjtRQWhCcEUsWUFBTyxHQUFHLFNBQVMsQ0FBQztRQUVwQixnQkFBVyxHQUNQLG1EQUFtRCxDQUFDO1FBRXhELGVBQVUsR0FBd0MsRUFBRSxDQUFDO1FBRXJELFdBQU0sR0FBbUMsb0JBQW9CLENBQUM7UUFFOUQsYUFBUSxHQUFzQztZQUMxQyxNQUFNLEVBQUUsSUFBSTtZQUNaLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixNQUFNLEVBQUUsUUFBUTtTQUNuQixDQUFDO1FBS0UsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUM7WUFDbEIsT0FBTyxFQUFFLE1BQU07WUFDZixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0IsY0FBYyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztZQUM5QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztTQUNyRCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQztZQUNsQixPQUFPLEVBQUUsT0FBTztZQUNoQixXQUFXLEVBQUUsNEJBQTRCO1lBQ3pDLGNBQWMsRUFBRSxLQUFLLEVBQ2pCLENBQW9CLEVBQ3BCLE9BQTZCLEVBQy9CLEVBQUU7Z0JBQ0EsTUFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ2hELE9BQU8sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLENBQUM7WUFDeEQsQ0FBQztZQUNELGdCQUFnQixFQUFFLENBQUMsT0FBNkIsRUFBRSxFQUFFO2dCQUNoRCxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1lBQ3pELENBQUM7U0FDSixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsS0FBSyxDQUFDLGNBQWMsQ0FDaEIsQ0FBb0IsRUFDcEIsRUFBRSxNQUFNLEVBQXdCO1FBRWhDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUV4RCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUN2QyxPQUFPO1NBQ1Y7YUFBTTtZQUNILE1BQU0sQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztZQUNuQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUMvQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsS0FBSyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEVBQXdCO1FBQzdDLE1BQU0sQ0FBQyxPQUFPLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUN4RSxDQUFDOytHQTdEUSwwQkFBMEI7bUhBQTFCLDBCQUEwQixjQUZ2QixNQUFNOzs0RkFFVCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICBJQ2xpQ29tbWFuZFByb2Nlc3NvcixcbiAgICBJQ2xpQ29tbWFuZEF1dGhvcixcbiAgICBDbGlQcm9jZXNzb3JNZXRhZGF0YSxcbiAgICBDbGlJY29uLFxufSBmcm9tICdAcW9kYWxpcy9jbGktY29yZSc7XG5cbmltcG9ydCB7IERlZmF1bHRMaWJyYXJ5QXV0aG9yIH0gZnJvbSAnQHFvZGFsaXMvY2xpLWNvcmUnO1xuaW1wb3J0IHsgQ2xpQ29tbWFuZEhpc3RvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDbGlIaXN0b3J5Q29tbWFuZFByb2Nlc3NvciBpbXBsZW1lbnRzIElDbGlDb21tYW5kUHJvY2Vzc29yIHtcbiAgICBjb21tYW5kID0gJ2hpc3RvcnknO1xuXG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmcgfCB1bmRlZmluZWQgPVxuICAgICAgICAnUHJpbnRzIHRoZSBjb21tYW5kIGhpc3Rvcnkgb2YgdGhlIGN1cnJlbnQgc2Vzc2lvbic7XG5cbiAgICBwcm9jZXNzb3JzPzogSUNsaUNvbW1hbmRQcm9jZXNzb3JbXSB8IHVuZGVmaW5lZCA9IFtdO1xuXG4gICAgYXV0aG9yPzogSUNsaUNvbW1hbmRBdXRob3IgfCB1bmRlZmluZWQgPSBEZWZhdWx0TGlicmFyeUF1dGhvcjtcblxuICAgIG1ldGFkYXRhPzogQ2xpUHJvY2Vzc29yTWV0YWRhdGEgfCB1bmRlZmluZWQgPSB7XG4gICAgICAgIHNlYWxlZDogdHJ1ZSxcbiAgICAgICAgaWNvbjogQ2xpSWNvbi5Db2RlLFxuICAgICAgICBtb2R1bGU6ICdzeXN0ZW0nLFxuICAgIH07XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBjb21tYW5kSGlzdG9yeVNlcnZpY2U6IENsaUNvbW1hbmRIaXN0b3J5U2VydmljZSxcbiAgICApIHtcbiAgICAgICAgdGhpcy5wcm9jZXNzb3JzPy5wdXNoKHtcbiAgICAgICAgICAgIGNvbW1hbmQ6ICdsaXN0JyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IHRoaXMucHJvY2Vzc0NvbW1hbmQuYmluZCh0aGlzKSxcbiAgICAgICAgICAgIHdyaXRlRGVzY3JpcHRpb246IHRoaXMud3JpdGVEZXNjcmlwdGlvbi5iaW5kKHRoaXMpLFxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnByb2Nlc3NvcnM/LnB1c2goe1xuICAgICAgICAgICAgY29tbWFuZDogJ2NsZWFyJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnQ2xlYXJzIHRoZSBjb21tYW5kIGhpc3RvcnknLFxuICAgICAgICAgICAgcHJvY2Vzc0NvbW1hbmQ6IGFzeW5jIChcbiAgICAgICAgICAgICAgICBfOiBDbGlQcm9jZXNzQ29tbWFuZCxcbiAgICAgICAgICAgICAgICBjb250ZXh0OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuY29tbWFuZEhpc3RvcnlTZXJ2aWNlLmNsZWFySGlzdG9yeSgpO1xuICAgICAgICAgICAgICAgIGNvbnRleHQud3JpdGVyLndyaXRlSW5mbygnQ29tbWFuZCBoaXN0b3J5IGNsZWFyZWQnKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB3cml0ZURlc2NyaXB0aW9uOiAoY29udGV4dDogSUNsaUV4ZWN1dGlvbkNvbnRleHQpID0+IHtcbiAgICAgICAgICAgICAgICBjb250ZXh0LndyaXRlci53cml0ZWxuKCdDbGVhcnMgdGhlIGNvbW1hbmQgaGlzdG9yeScpO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgYXN5bmMgcHJvY2Vzc0NvbW1hbmQoXG4gICAgICAgIF86IENsaVByb2Nlc3NDb21tYW5kLFxuICAgICAgICB7IHdyaXRlciB9OiBJQ2xpRXhlY3V0aW9uQ29udGV4dCxcbiAgICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgaGlzdG9yeSA9IHRoaXMuY29tbWFuZEhpc3RvcnlTZXJ2aWNlLmdldEhpc3RvcnkoKTtcblxuICAgICAgICBpZiAoaGlzdG9yeS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHdyaXRlci53cml0ZWxuKCdObyBoaXN0b3J5IGF2YWlsYWJsZScpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd3JpdGVyLndyaXRlbG4oJ0NvbW1hbmQgaGlzdG9yeTonKTtcbiAgICAgICAgICAgIGhpc3RvcnkuZm9yRWFjaCgoY29tbWFuZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICB3cml0ZXIud3JpdGVsbihgJHtpbmRleCArIDF9LiAke2NvbW1hbmR9YCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHdyaXRlRGVzY3JpcHRpb24oeyB3cml0ZXIgfTogSUNsaUV4ZWN1dGlvbkNvbnRleHQpOiB2b2lkIHtcbiAgICAgICAgd3JpdGVyLndyaXRlbG4oJ1ByaW50cyB0aGUgY29tbWFuZCBoaXN0b3J5IG9mIHRoZSBjdXJyZW50IHNlc3Npb24nKTtcbiAgICB9XG59XG4iXX0=