UNPKG

@qodalis/angular-cli

Version:

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

63 lines 7.81 kB
import { Injectable, Injector, } from '@angular/core'; import * as i0 from "@angular/core"; export class CliServiceProvider { constructor(injector) { this.providers = []; this.currentInjector = injector; } get(service) { try { return this.currentInjector.get(service); } catch (e) { throw new Error(`Service ${service} not found`); } } set(definition) { const definitions = Array.isArray(definition) ? definition : [definition]; const newProviders = []; for (const def of definitions) { let newProvider = { provide: def.provide, }; if (def.hasOwnProperty('useClass')) { const classProvider = { provide: def.provide, useClass: def.useClass, multi: def.multi, }; newProvider = classProvider; } else if (def.hasOwnProperty('useValue')) { const valueProvider = { provide: def.provide, useValue: def.useValue, multi: def.multi, }; newProvider = valueProvider; } else if (def.hasOwnProperty('useFactory')) { const valueProvider = { provide: def.provide, useFactory: def.useFactory, multi: def.multi, }; newProvider = valueProvider; } newProviders.push(newProvider); } this.providers.push(...newProviders); this.currentInjector = Injector.create({ providers: newProviders, parent: this.currentInjector, }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliServiceProvider, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliServiceProvider }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CliServiceProvider, decorators: [{ type: Injectable }], ctorParameters: function () { return [{ type: i0.Injector }]; } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLXNlcnZpY2UtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGkvc3JjL2xpYi9jbGkvc2VydmljZXMvc3lzdGVtL2NsaS1zZXJ2aWNlLXByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHSCxVQUFVLEVBQ1YsUUFBUSxHQUlYLE1BQU0sZUFBZSxDQUFDOztBQUl2QixNQUFNLE9BQU8sa0JBQWtCO0lBSTNCLFlBQVksUUFBa0I7UUFIdEIsY0FBUyxHQUFxQixFQUFFLENBQUM7UUFJckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUM7SUFDcEMsQ0FBQztJQUVELEdBQUcsQ0FBSSxPQUFZO1FBQ2YsSUFBSTtZQUNBLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUksT0FBTyxDQUFDLENBQUM7U0FDL0M7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsV0FBVyxPQUFPLFlBQVksQ0FBQyxDQUFDO1NBQ25EO0lBQ0wsQ0FBQztJQUVELEdBQUcsQ0FBQyxVQUF1QztRQUN2QyxNQUFNLFdBQVcsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQztZQUN6QyxDQUFDLENBQUMsVUFBVTtZQUNaLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRW5CLE1BQU0sWUFBWSxHQUFhLEVBQUUsQ0FBQztRQUVsQyxLQUFLLE1BQU0sR0FBRyxJQUFJLFdBQVcsRUFBRTtZQUMzQixJQUFJLFdBQVcsR0FBYTtnQkFDeEIsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO2FBQ3ZCLENBQUM7WUFFRixJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ2hDLE1BQU0sYUFBYSxHQUFrQjtvQkFDakMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxPQUFPO29CQUNwQixRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVE7b0JBQ3RCLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztpQkFDbkIsQ0FBQztnQkFDRixXQUFXLEdBQUcsYUFBYSxDQUFDO2FBQy9CO2lCQUFNLElBQUksR0FBRyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxhQUFhLEdBQWtCO29CQUNqQyxPQUFPLEVBQUUsR0FBRyxDQUFDLE9BQU87b0JBQ3BCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUTtvQkFDdEIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO2lCQUNuQixDQUFDO2dCQUVGLFdBQVcsR0FBRyxhQUFhLENBQUM7YUFDL0I7aUJBQU0sSUFBSSxHQUFHLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxFQUFFO2dCQUN6QyxNQUFNLGFBQWEsR0FBb0I7b0JBQ25DLE9BQU8sRUFBRSxHQUFHLENBQUMsT0FBTztvQkFDcEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxVQUFVO29CQUMxQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7aUJBQ25CLENBQUM7Z0JBRUYsV0FBVyxHQUFHLGFBQWEsQ0FBQzthQUMvQjtZQUVELFlBQVksQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDbEM7UUFFRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLFlBQVksQ0FBQyxDQUFDO1FBRXJDLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNuQyxTQUFTLEVBQUUsWUFBWTtZQUN2QixNQUFNLEVBQUUsSUFBSSxDQUFDLGVBQWU7U0FDL0IsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0E5RFEsa0JBQWtCO21IQUFsQixrQkFBa0I7OzRGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENsYXNzUHJvdmlkZXIsXG4gICAgRmFjdG9yeVByb3ZpZGVyLFxuICAgIEluamVjdGFibGUsXG4gICAgSW5qZWN0b3IsXG4gICAgUHJvdmlkZXIsXG4gICAgU3RhdGljUHJvdmlkZXIsXG4gICAgVmFsdWVQcm92aWRlcixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGlQcm92aWRlciwgSUNsaVNlcnZpY2VQcm92aWRlciB9IGZyb20gJ0Bxb2RhbGlzL2NsaS1jb3JlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENsaVNlcnZpY2VQcm92aWRlciBpbXBsZW1lbnRzIElDbGlTZXJ2aWNlUHJvdmlkZXIge1xuICAgIHByaXZhdGUgcHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdID0gW107XG4gICAgcHJpdmF0ZSBjdXJyZW50SW5qZWN0b3I6IEluamVjdG9yO1xuXG4gICAgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHRoaXMuY3VycmVudEluamVjdG9yID0gaW5qZWN0b3I7XG4gICAgfVxuXG4gICAgZ2V0PFQ+KHNlcnZpY2U6IGFueSk6IFQge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY3VycmVudEluamVjdG9yLmdldDxUPihzZXJ2aWNlKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBTZXJ2aWNlICR7c2VydmljZX0gbm90IGZvdW5kYCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXQoZGVmaW5pdGlvbjogQ2xpUHJvdmlkZXIgfCBDbGlQcm92aWRlcltdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRlZmluaXRpb25zID0gQXJyYXkuaXNBcnJheShkZWZpbml0aW9uKVxuICAgICAgICAgICAgPyBkZWZpbml0aW9uXG4gICAgICAgICAgICA6IFtkZWZpbml0aW9uXTtcblxuICAgICAgICBjb25zdCBuZXdQcm92aWRlcnM6IFByb3ZpZGVyID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBkZWYgb2YgZGVmaW5pdGlvbnMpIHtcbiAgICAgICAgICAgIGxldCBuZXdQcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogZGVmLnByb3ZpZGUsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBpZiAoZGVmLmhhc093blByb3BlcnR5KCd1c2VDbGFzcycpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xhc3NQcm92aWRlcjogQ2xhc3NQcm92aWRlciA9IHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogZGVmLnByb3ZpZGUsXG4gICAgICAgICAgICAgICAgICAgIHVzZUNsYXNzOiBkZWYudXNlQ2xhc3MsXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiBkZWYubXVsdGksXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBuZXdQcm92aWRlciA9IGNsYXNzUHJvdmlkZXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRlZi5oYXNPd25Qcm9wZXJ0eSgndXNlVmFsdWUnKSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlUHJvdmlkZXI6IFZhbHVlUHJvdmlkZXIgPSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IGRlZi5wcm92aWRlLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogZGVmLnVzZVZhbHVlLFxuICAgICAgICAgICAgICAgICAgICBtdWx0aTogZGVmLm11bHRpLFxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBuZXdQcm92aWRlciA9IHZhbHVlUHJvdmlkZXI7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRlZi5oYXNPd25Qcm9wZXJ0eSgndXNlRmFjdG9yeScpKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsdWVQcm92aWRlcjogRmFjdG9yeVByb3ZpZGVyID0ge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBkZWYucHJvdmlkZSxcbiAgICAgICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogZGVmLnVzZUZhY3RvcnksXG4gICAgICAgICAgICAgICAgICAgIG11bHRpOiBkZWYubXVsdGksXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIG5ld1Byb3ZpZGVyID0gdmFsdWVQcm92aWRlcjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbmV3UHJvdmlkZXJzLnB1c2gobmV3UHJvdmlkZXIpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5wcm92aWRlcnMucHVzaCguLi5uZXdQcm92aWRlcnMpO1xuXG4gICAgICAgIHRoaXMuY3VycmVudEluamVjdG9yID0gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogbmV3UHJvdmlkZXJzLFxuICAgICAgICAgICAgcGFyZW50OiB0aGlzLmN1cnJlbnRJbmplY3RvcixcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19