@sap/generator-fiori
Version:
Create an SAPUI5 application using SAP Fiori elements or a freestyle approach
1 lines • 6.71 kB
JavaScript
;exports.id=1949,exports.ids=[1949],exports.modules={39034(e,i,s){s.d(i,{nY:()=>c,cM:()=>generate});var a=s(76760),p=s(73136),n=s(29473),o=s(76750),r=s(55550),l=s(27381);const c={Basic:"basic",Worklist:"worklist",ListDetail:"listdetail"};var u=s(63422),d=s(85263);const m="1.120.0";function compareUI5VersionGte(e,i){return""===e||(0,d.gte)(e,i,{loose:!0})}function processDestinationPath(e){return e.replace(`${a.sep}1.120.0`,"").replace(`${a.sep}1.71.0`,"")}var f=s(94443);const g=(0,a.dirname)((0,p.fileURLToPath)(require("node:url").pathToFileURL(__filename).href)),w="test/flp.html";function setDefaults(e){if(function setAppDefaults(e){e.baseComponent=e.baseComponent||"sap/ui/core/UIComponent",e.flpAction=e.flpAction||"display",e.flpAppId=e.flpAppId||(0,f.getFlpId)(e.id,e.flpAction)}(e.app),!e.app.sourceTemplate?.version||!e.app.sourceTemplate?.id){const i=u.sync({cwd:g});e.app.sourceTemplate={id:`${i?.packageJson.name}:${e.template.type}`,version:i?.packageJson.version,toolsId:e.app.sourceTemplate?.toolsId}}e.template.type===c.Basic&&function setBasicTemplateDefaults(e){e.viewName=e.viewName||"View1"}(e.template.settings);let i=!0;if(compareUI5VersionGte(e.ui5?.minUI5Version??e.ui5?.version??"",m)&&e.template.type===c.Basic&&(i=!1),e.appOptions=Object.assign({loadReuseLibs:i},e.appOptions),e.ui5){const i="sap.ushell";e.ui5.manifestLibs=e.ui5?.manifestLibs??e.ui5?.ui5Libs,Array.isArray(e.ui5?.ui5Libs)?e.ui5.ui5Libs=e.ui5?.ui5Libs?.concat(i):"string"==typeof e.ui5?.ui5Libs&&(e.ui5.ui5Libs=e.ui5?.ui5Libs.includes(i)?e.ui5?.ui5Libs:e.ui5?.ui5Libs.concat(i))}}const escapeFLPText=e=>e.replace(/\\/g,"\\\\").replace(/(")/g,"\\$&");var y=s(2307),v=s(68801);const T=JSON.parse('{"info":{"mockOnlyWarning":"This application was generated with a local metadata file and does not reference a live server. Please add the required server configuration or start this application with mock data using the target: `npm run start-mock`.","unsupportedTestTemplateMessage":"The specified template: {{ templateType }} is not supported for test generation. Generation will continue but the test files will not be generated."},"text":{"defaultAppDescription":"Description of test.me"}}'),h="fiori-freestyle-writer",b=v.createInstance();async function initI18n(){await b.init({resources:{en:{[h]:T}},lng:"en",fallbackLng:"en",defaultNS:h,ns:[h],showSupportNotice:!1})}initI18n().catch(()=>{});var O=s(88167),P=s(6435);async function generateOPATests(e,i,s,a,p,n){if(i.template.type===c.Basic){!function addTestScripts(e,i){const s=i?"--config ./ui5-mock.yaml ":"";e.scripts={...e.scripts,"unit-test":`fiori run ${s}--open "test/unit/unitTests.qunit.html"`,"int-test":`fiori run ${s}--open "test/integration/opaTests.qunit.html"`}}(a,s);const o={appId:i.app.id,applicationDescription:i.app.description,applicationTitle:i.app.title,viewName:i.template.settings.viewName,ui5Theme:i.ui5?.ui5Theme,ui5Version:i.ui5?.version,enableTypeScript:i.appOptions?.typescript,useVirtualPreviewEndpoints:i.appOptions?.useVirtualPreviewEndpoints};await(0,P.kJ)(e,o,p,n)}else n?.info(function t(e,i){return b.t(e,i)}("info.unsupportedTestTemplateMessage",{templateType:i.template.type}))}const j=(0,a.dirname)((0,p.fileURLToPath)(require("node:url").pathToFileURL(__filename).href));async function generate(e,i,s,p){await initI18n();const u=l(i);setDefaults(u);const d=u.appOptions?.typescript;s=await(0,o.cM)(e,u,s);const g=(0,a.join)(j,"..","templates"),v=[d?"**/*.js":"**/*.ts",...u.appOptions?.useVirtualPreviewEndpoints?["**/webapp/test/flpSandbox.html"]:[]],T="EDMXBackend"===u.app.projectType,{uShellBootstrapResourceUrl:h,uiBootstrapResourceUrl:b}=(0,f.getBootstrapResourceUrls)(T,u.ui5?.frameworkUrl,u.ui5?.version),k={...u,uShellBootstrapResourceUrl:h,uiBootstrapResourceUrl:b},I=function getTemplateVersionPath(e){let i="";const s=e.ui5?.minUI5Version??e.ui5?.version??"";return e.template.type===c.Basic&&(i=compareUI5VersionGte(s,m)?m:"1.71.0"),i}(u);if(s.copyTpl((0,a.join)(g,"common","add",I),e,{...k,escapeFLPText},void 0,{globOptions:{ignore:v,dot:!0},processDestinationPath}),s.copyTpl((0,a.join)(g,u.template.type,"add",u.template.type===c.Basic?I:""),e,u,void 0,{globOptions:{ignore:v,dot:!0},processDestinationPath}),u.template.type===c.Basic){const i=u.template.settings.viewName,p=(0,a.join)(e,"webapp","view",`${i}.view.xml`);s.copyTpl((0,a.join)(g,u.template.type,`custom/${I}/View.xml`),p,u,void 0,{processDestinationPath});const n=d?"ts":"js",o=(0,a.join)(e,`webapp/controller/${i}.controller.${n}`);s.copyTpl((0,a.join)(g,u.template.type,`custom/${I}/Controller.${n}`),o,u,void 0,{processDestinationPath})}const S=(0,a.join)(e,"webapp","manifest.json"),U=(0,a.join)(j,"..","templates",u.template.type,"extend",u.template.type===c.Basic?I:"","webapp");s.extendJSON(S,JSON.parse((0,n.render)(s.read((0,a.join)(U,"manifest.json")),u,{}))),s.append((0,a.join)(e,"webapp","i18n","i18n.properties"),(0,n.render)(s.read((0,a.join)(U,"i18n","i18n.properties")),u,{}));const x=(0,a.join)(e,"package.json");s.extendJSON(x,JSON.parse((0,n.render)(s.read((0,a.join)(g,"common","extend","package.json")),u,{})));const D=u.appOptions?.addTests,L=JSON.parse(s.read(x));if(u.appOptions?.useVirtualPreviewEndpoints&&function setVirtualEndpointDefaults(e){e.app.flpAppId="app-preview",e.app.localStartFile=w,e.app.startFile=w}(u),T){const i=!!u.service?.metadata;L.scripts={...L.scripts,...(0,f.getPackageScripts)({localOnly:!!u.service&&!u.service?.url,addMock:i,sapClient:u.service?.client,flpAppId:u.app.flpAppId,startFile:u.app?.startFile,localStartFile:u.app?.localStartFile,generateIndex:u.appOptions?.generateIndex,addTest:D&&u.template.type===c.Basic,supportVirtualEndpoints:u.appOptions?.useVirtualPreviewEndpoints})},D&&await generateOPATests(e,u,i,L,s,p)}else L.scripts={"deploy-config":"npx -p @sap/ux-ui5-tooling fiori add deploy-config cf"};if(s.writeJSON(x,L),u.service)await(0,r.generate)(e,u.service,s);else{const i=(0,a.join)(e,"ui5-local.yaml"),p=await y.io.newInstance(s.read(i));p.addFioriToolsProxyMiddleware({}),s.write(i,p.toString())}if(u.service?.capService){const i={appRoot:e,packageName:u.package.name??"",appId:u.app.id,sapux:u.appOptions?.sapux,enableCdsUi5Plugin:u.appOptions?.addCdsUi5Plugin,enableTypescript:u.appOptions?.typescript,disableRootPackageJsonUpdates:u.appOptions?.disableCapRootPkgJsonUpdates};await(0,O.dK)(s,u.service.capService,i)}return T&&D&&u.appOptions?.useVirtualPreviewEndpoints&&await(0,P.Vo)(e,[{framework:"OPA5",path:"/test/integration/opaTests.qunit.html",pattern:d?"/test/**/*Journey.*":"/test/**/AllJourneys.*"},{framework:"Testsuite"},{framework:"QUnit",path:"/test/unit/unitTests.qunit.html",pattern:"/test/unit/controller/*.{js,ts}"}],s),s}}};