nativescript
Version:
Command-line interface for building NativeScript projects
61 lines • 2.54 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.InitializeService = void 0;
const os_1 = require("os");
const _ = require("lodash");
const constants_1 = require("../constants");
const yok_1 = require("../common/yok");
class InitializeService {
// NOTE: Do not inject anything here, use $injector.resolve in the code
// Injecting something may lead to logger initialization, but we want to initialize it from here.
constructor($injector) {
this.$injector = $injector;
}
async initialize(initOpts) {
initOpts = initOpts || {};
const $logger = this.$injector.resolve("logger");
const $options = this.$injector.resolve("options");
if (initOpts.loggerOptions) {
$logger.initialize(initOpts.loggerOptions);
}
else {
const loggerLevel = $options.log &&
constants_1.LoggerLevel[$options.log.toUpperCase()];
$logger.initializeCliLogger({ level: loggerLevel });
}
if (initOpts.settingsServiceOptions) {
const $settingsService = this.$injector.resolve("settingsService");
$settingsService.setSettings(initOpts.settingsServiceOptions);
}
if (initOpts.extensibilityOptions) {
if (initOpts.extensibilityOptions.pathToExtensions) {
const $extensibilityService = this.$injector.resolve("extensibilityService");
$extensibilityService.pathToExtensions =
initOpts.extensibilityOptions.pathToExtensions;
}
}
if ($options.json) {
// speed up --json commands by not gathering system warnings...
$logger.trace("Skipping system warnings for --json commands");
}
else {
await this.showWarnings($logger);
}
}
async showWarnings($logger) {
const $sysInfo = yok_1.injector.resolve("sysInfo");
const systemWarnings = await $sysInfo.getSystemWarnings();
_.each(systemWarnings, (systemWarning) => {
const message = `${os_1.EOL}${systemWarning.message}${os_1.EOL}`;
if (systemWarning.severity === "high" /* SystemWarningsSeverity.high */) {
$logger.error(message);
}
else {
$logger.warn(message);
}
});
}
}
exports.InitializeService = InitializeService;
yok_1.injector.register("initializeService", InitializeService);
//# sourceMappingURL=initialize-service.js.map
;