@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
JavaScript
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