UNPKG

@sap/generator-adaptation-project

Version:

Adaptation project allows you to create an app variant for an existing SAP Fiori elements-based or SAPUI5 freestyle application, without changing the original application.

86 lines 3.87 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; const Generator = require("yeoman-generator"); const yeoman_ui_types_1 = require("@sap-devx/yeoman-ui-types"); const adp_common_1 = require("@sap/adp-common"); const adp_cf_1 = require("@sap/adp-cf"); class AdaptationProjectGeneratorBase extends Generator { constructor(args, opts, type) { super(args, opts); this.type = type; this.appWizard = yeoman_ui_types_1.AppWizard.create(opts); this.logger = { log: (message) => { this.log(this._getLoggerMessageTemplate(this.type, true, message)); }, error: (message) => { this.log(this._getLoggerMessageTemplate(this.type, true, message)); }, info: (message) => { this.appWizard.showInformation(message, yeoman_ui_types_1.MessageType.notification); } }; adp_common_1.Logger.setLogger = this.logger; adp_common_1.Workspace.setGeneratorHeaderTitle(opts, this.resolved, this.type); } _getLoggerMessageTemplate(type, isInfo, message) { const datePart = `${new Date().toISOString()}`; let generatorInfoPart = ""; switch (type) { case adp_common_1.GeneratorTypes.CREATION: generatorInfoPart = "[ADP Creation]"; break; case adp_common_1.GeneratorTypes.ADD_ANNOTATIONS_TO_DATA: generatorInfoPart = "[ADP Add Annotation File]"; break; case adp_common_1.GeneratorTypes.ADD_COMPONENT_USAGES: generatorInfoPart = "[ADP Add SAPUI5 Component Usages]"; break; case adp_common_1.GeneratorTypes.ADD_NEW_MODEL: generatorInfoPart = "[ADP Add OData Service And SAPUI5 Model]"; break; case adp_common_1.GeneratorTypes.CHANGE_INBOUND: generatorInfoPart = "[ADP Change Inbound]"; break; case adp_common_1.GeneratorTypes.CHANGE_DATA_SOURCE: generatorInfoPart = "[ADP Replace OData Service]"; break; default: break; } const template = `\n${datePart} ${generatorInfoPart} ${isInfo ? "[INFO]" : "[ERROR]"} : ${message}`; return template; } handleRuntimeCrash(errorMessage, isCFEnv = false) { return __awaiter(this, void 0, void 0, function* () { if (isCFEnv) { yield adp_cf_1.CFUtils.cFLogout(); } yield this.prompt(this.getErrorMessagePrompt(errorMessage, isCFEnv)); }); } getErrorMessagePrompt(errorMessage, isCFEnv) { return [ { type: "input", name: "errorMessagePrompt", message: isCFEnv ? adp_common_1.Messages.CRASH_MESSAGE_CF : adp_common_1.Messages.CRASH_MESSAGE_ABAP, guiOptions: { type: "label", hint: errorMessage }, validate: () => false } ]; } } module.exports = AdaptationProjectGeneratorBase; //# sourceMappingURL=AdaptationProjectGeneratorBase.js.map