@wavemaker/angular-codegen 11.1.0-next.24321 → 11.1.0-next.24322
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
angular-codegen/package.json
CHANGED
angular-codegen/src/codegen.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
global._WM_APP_PROPERTIES={},global._WM_PACKAGE_PATH="./libraries",global.$=require("jquery"),global._=require("lodash");const cheerio=require("cheerio"),{deleteResource:deleteResource,getIndexHtmlPath:getIndexHtmlPath,getPagesDirPath:getPagesDirPath,readFile:readFile,searchFileByName:searchFileByName,writeFile:writeFile,readFileSync:readFileSync}=require("./wm-utils"),{createAppSkeleton:createApp}=require("./gen-app-skeleton"),{generateAppModule:generateAppModule,generateCodeGenModule:generateCodeGenModule}=require("./gen-app-codegen-module"),{generatePrefabConfigFile:generatePrefabConfigFile}=require("./gen-prefabs"),{generateAppRoutes:generateAppRoutes}=require("./gen-app-routes"),{generateAppJS:generateAppJS}=require("./gen-app-js"),{generateAppVariables:generateAppVariables}=require("./gen-app-variables"),{getWmProjectProperties:getWmProjectProperties,getSecurityConfig:getSecurityConfig,getPagesConfig:getPagesConfig,getPrefabConfigsUsedInApp:getPrefabConfigsUsedInApp,getPrefabPartialsConfig:getPrefabPartialsConfig}=require("./project-meta"),{generateTSConfig:generateTSConfig}=require("./gen-tsconfig"),{generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent}=require("./gen-components"),{generateWmProjectProperties:generateWmProjectProperties}=require("./gen-wm-project-properties"),{generateIndexHtml:generateIndexHtml}=require("./gen-index-html"),{updateAngularJSON:updateAngularJSON}=require("./update-angular-json"),{generatePwaFiles:generatePwaFiles}=require("./gen-pwa-files"),{generateLazyModuleRoutes:generateLazyModuleRoutes}=require("./gen-lazy-module-routes"),getMarkupFiles=async e=>{const a=[];return searchFileByName(e+"/src/app",/\.html$/,e=>{a.push(e)}),a},isDynamicComponentUsedInMarkup=async e=>{const a=await readFile(e,"utf8");return cheerio.load(a)("form[wmForm][metadata],form[wmForm][metadata\\.bind],div[wmTable]:not(:has(*))").length>0},isDynamicComponentUsedInApp=async e=>{const a=await getMarkupFiles(e);return(await Promise.all(a.map(e=>isDynamicComponentUsedInMarkup(e)))).find(e=>e)},cleanPackageJSON=async(e,a)=>{const r=`${e}/package.json`;let t=readFileSync(r,!0);["@ampproject/rollup-plugin-closure-compiler","rollup","rollup-plugin-alias","rollup-plugin-commonjs","rollup-plugin-includepaths","rollup-plugin-multi-entry","rollup-plugin-node-resolve"].forEach(e=>{delete t.devDependencies[e]}),a||delete t.dependencies["@angular/service-worker"],await writeFile(r,JSON.stringify(t,null,4))},generateSources=async(e,a,r,t,n)=>{console.time("generate app-sources"),await Promise.all([deleteResource(`${a}/src/app/pages`),deleteResource(`${a}/src/app/partials`),deleteResource(`${a}/src/app/prefabs`)]);const o=readFileSync(`${a}/angular.json`);global._WM_PACKAGE_PATH=o.includes("./node_modules/@wavemaker/app-ng-runtime/")?"./node_modules/@wavemaker/app-ng-runtime":"./libraries";const i=await getWmProjectProperties(e),g=await getSecurityConfig(e),p=await getPagesConfig(e),l=await getPrefabConfigsUsedInApp(i,e);let s={};for(const a of l.keys())s[a]=await getPrefabPartialsConfig(e,a);r&&!r.endsWith("/")&&(r+="/"),await Promise.all([generateIndexHtml(e,a,i,r,t),generateWmProjectProperties(i,a),generateAppRoutes(e,i,p,g,a),generateLazyModuleRoutes(p,l,s,a),generatePrefabConfigFile(l,a),generateCodeGenModule(i,p,l,g,a),generateTSConfig(i,a),generateAppJS(e,a),generateAppVariables(e,a,n),generateComponents(e,i,p,l,a,s,n)]);const u=await isDynamicComponentUsedInApp(a),c={aot:!u,buildOptimizer:!u};await generateAppModule(i,a,u,t),await updateAngularJSON(e,a,i,p,l,r,c,s,t),await cleanPackageJSON(a,t),t&&await generatePwaFiles(e,a,i),console.timeEnd("generate app-sources")},createAppSkeleton=async(e,a,r)=>{console.time("create-angular-app"),await createApp(e,a,r),console.timeEnd("create-angular-app")},generatePage=async(e,a,r,t)=>{console.time("generate page",r);const n=getPagesDirPath(e),o=await getWmProjectProperties(e),i=await getPagesConfig(e),g=_.find(i,{name:r}),p="PAGE"===g.type?"pages":"partials";await deleteResource(`${a}/src/app/${p}/${r}`),await generatePagePartialComponent(n,o,g.name,g.type,a,t),console.timeEnd("generate page",r)};module.exports={generateSources:generateSources,createAppSkeleton:createAppSkeleton,generatePage:generatePage};
|
|
1
|
+
global._WM_APP_PROPERTIES={},global._WM_PACKAGE_PATH="./libraries",global.$=require("jquery"),global._=require("lodash");const cheerio=require("cheerio"),{deleteResource:deleteResource,getIndexHtmlPath:getIndexHtmlPath,getPagesDirPath:getPagesDirPath,readFile:readFile,searchFileByName:searchFileByName,writeFile:writeFile,readFileSync:readFileSync}=require("./wm-utils"),{createAppSkeleton:createApp}=require("./gen-app-skeleton"),{generateAppModule:generateAppModule,generateCodeGenModule:generateCodeGenModule}=require("./gen-app-codegen-module"),{generatePrefabConfigFile:generatePrefabConfigFile}=require("./gen-prefabs"),{generateAppRoutes:generateAppRoutes}=require("./gen-app-routes"),{generateAppJS:generateAppJS}=require("./gen-app-js"),{generateAppVariables:generateAppVariables}=require("./gen-app-variables"),{getWmProjectProperties:getWmProjectProperties,getSecurityConfig:getSecurityConfig,getPagesConfig:getPagesConfig,getPrefabConfigsUsedInApp:getPrefabConfigsUsedInApp,getPrefabPartialsConfig:getPrefabPartialsConfig}=require("./project-meta"),{generateTSConfig:generateTSConfig}=require("./gen-tsconfig"),{generateComponents:generateComponents,generatePagePartialComponent:generatePagePartialComponent}=require("./gen-components"),{generateWmProjectProperties:generateWmProjectProperties}=require("./gen-wm-project-properties"),{generateIndexHtml:generateIndexHtml}=require("./gen-index-html"),{updateAngularJSON:updateAngularJSON}=require("./update-angular-json"),{generatePwaFiles:generatePwaFiles}=require("./gen-pwa-files"),{generateLazyModuleRoutes:generateLazyModuleRoutes}=require("./gen-lazy-module-routes"),getMarkupFiles=async e=>{const a=[];return searchFileByName(e+"/src/app",/\.html$/,e=>{a.push(e)}),a},isDynamicComponentUsedInMarkup=async e=>{const a=await readFile(e,"utf8");return cheerio.load(a)("form[wmForm][metadata],form[wmForm][metadata\\.bind],div[wmTable]:not(:has(*))").length>0},isDynamicComponentUsedInApp=async e=>{const a=await getMarkupFiles(e);return(await Promise.all(a.map(e=>isDynamicComponentUsedInMarkup(e)))).find(e=>e)},cleanPackageJSON=async(e,a)=>{const r=`${e}/package.json`;let t=readFileSync(r,!0);["@ampproject/rollup-plugin-closure-compiler","rollup","rollup-plugin-alias","rollup-plugin-commonjs","rollup-plugin-includepaths","rollup-plugin-multi-entry","rollup-plugin-node-resolve"].forEach(e=>{delete t.devDependencies[e]}),a||delete t.dependencies["@angular/service-worker"],await writeFile(r,JSON.stringify(t,null,4))},generateSources=async(e,a,r,t,n)=>{console.time("generate app-sources"),await Promise.all([deleteResource(`${a}/src/app/pages`),deleteResource(`${a}/src/app/partials`),deleteResource(`${a}/src/app/prefabs`)]);const o=readFileSync(`${a}/angular.json`);global._WM_PACKAGE_PATH=o.includes("./node_modules/@wavemaker/app-ng-runtime/")?"./node_modules/@wavemaker/app-ng-runtime":"./libraries";const i=await getWmProjectProperties(e),g=await getSecurityConfig(e),p=await getPagesConfig(e),l=await getPrefabConfigsUsedInApp(i,e);let s={};for(const a of l.keys())s[a]=await getPrefabPartialsConfig(e,a);r&&!r.endsWith("/")&&(r+="/"),await Promise.all([generateIndexHtml(e,a,i,r,t),generateWmProjectProperties(i,a),generateAppRoutes(e,i,p,g,a),generateLazyModuleRoutes(p,l,s,a),generatePrefabConfigFile(l,a),generateCodeGenModule(i,p,l,g,a),generateTSConfig(i,a),generateAppJS(e,a),generateAppVariables(e,a,n),generateComponents(e,i,p,l,a,s,n)]);const u=await isDynamicComponentUsedInApp(a),c={aot:!u,buildOptimizer:!u};await generateAppModule(i,a,u,t),await updateAngularJSON(e,a,i,p,l,r,c,s,t),await cleanPackageJSON(a,t),t&&await generatePwaFiles(e,a,i),console.timeEnd("generate app-sources")},createAppSkeleton=async(e,a,r)=>{console.time("create-angular-app"),await createApp(e,a,r),console.timeEnd("create-angular-app")},generatePage=async(e,a,r,t)=>{console.time("generate page",r);const n=getPagesDirPath(e),o=await getWmProjectProperties(e),i=await getPagesConfig(e),g=_.find(i,{name:r}),p="PAGE"===g.type?"pages":"partials";await deleteResource(`${a}/src/app/${p}/${r}`),await generatePagePartialComponent(n,o,g.name,g.type,a,void 0,void 0,t),console.timeEnd("generate page",r)};module.exports={generateSources:generateSources,createAppSkeleton:createAppSkeleton,generatePage:generatePage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),cheerio=require("cheerio");let processedPageExpr=[];const isDisplayExpressionAttr=e=>{return["displayexpression","displaylabel","displayimagesrc","nodelabel","nodeicon","nodechildren","nodeid","itemid","itemlabel","itemicon","itemaction","itembadge","itemchildren","itemlink","itemtarget","userrole","isactive"].includes(e)},checkIsCustomPipeExpression=function(e){let r=e.match(/(custom(\s*:))/g);return r&&r.length},updateBindExpressionForDisplayexpression=e=>{let r,t,n,
|
|
1
|
+
const{getHandlebarTemplate:getHandlebarTemplate,safeString:safeString}=require("./handlebar-helpers"),cheerio=require("cheerio");let processedPageExpr=[];const isDisplayExpressionAttr=e=>{return["displayexpression","displaylabel","displayimagesrc","nodelabel","nodeicon","nodechildren","nodeid","itemid","itemlabel","itemicon","itemaction","itembadge","itemchildren","itemlink","itemtarget","userrole","isactive"].includes(e)},checkIsCustomPipeExpression=function(e){let r=e.match(/(custom(\s*:))/g);return r&&r.length},updateBindExpressionForDisplayexpression=e=>{let r,t,i,n,a,s,o,l,p,c="";for(checkIsCustomPipeExpression(e)&&(e+=": __1"),e=e.replace(/\$\[data\[\$i\]/g,"$[__1"),i=0;i<e.length;i++)if(r=e[i],t=e[i+1],"$"===r&&"["===t){for(s=1,p=!1,o=!1,n=i+2;n<e.length;n++)if(" "!==(a=e[n])&&(p||(o='"'===e[n]||"'"===e[n],p=!0),"["===a?s++:"]"===a&&s--,!s)){l=e.substring(i+2,n),c+=o?"__1["+l+"]":l;break}i=n}else c+=r;return c},updateArrTypeExpr=(e,r,t)=>{let i=/\[\$i\]/g;return isArrayTypeProperty(r,t)?e.substr(0,e.lastIndexOf("[$i]")).replace("[$i]","[0]"):e.replace(i,"[0]")},isArrayTypeProperty=(e,r)=>{const t=r?r.attribs:{};return["dataset","dataoptions","customcolors"].includes(e)||"datavalue"===e&&void 0!==t.wmcheckbox||"selecteditem"===e&&void 0!==t.wmtable||"selecteditem"===e&&void 0!==t.wmlist||"datavalue"===e&&t.wmselect&&t.multiple},getFnForExpr=(e,r)=>{if(!e)return"";let t=(r=r||{}).isEvent,i=r.widgetNode,n=r.prop;if(t||-1===e.indexOf("[$i]")||(e=updateArrTypeExpr(e,n,i)),processedPageExpr.includes(e))return"";processedPageExpr.push(e);let a,s="";const o=require("../dependencies/expression-parser.cjs");a=t?o.$parseEvent(e,!0):o.$parseExpr(e,!0);const l=safeString(a.fnArgs),p=safeString(a.fnBody),c=a.pipes||[];c.forEach((e,r)=>{s+="["+e.reduce((e,r)=>"'"+e+"','"+r+"'")+"]"+(r<c.length?",":"")}),s=safeString(s);const d=safeString(e.replace(/(?<!\\)"/g,'\\"').replace(/\r/g,"\\r").replace(/\n/g,"\\n"));return getHandlebarTemplate("expr-vs-fn")({expr:d,fnArgs:l,fnBody:p,fnPipes:s})+","},getExprForBinding=e=>{let r="";return"string"==typeof e&&e.startsWith("bind:")&&(r=getFnForExpr(e.replace("bind:",""))),r},generateFilterExprBindings=e=>{let r="";return e.rules&&_.forEach(e.rules,(e,t)=>{e.rules?r+=generateFilterExprBindings(e):("between"===e.matchMode&&(r+=getExprForBinding(e.secondvalue)),r+=getExprForBinding(e.value))}),r},getCRUDVariableExpressions=e=>{let r=e.dataBinding||{},t="";for(let e in r){(r[e]||[]).forEach(e=>{t+=getExprForBinding(e.value)})}return t},getActionDatasetExpressions=e=>{let r="";return(e.dataSet||[]).forEach(e=>{r+=getExprForBinding(e.value)}),r},generateVariableExpressions=e=>{let r="";e=JSON.parse(e);const t=["onBefore","onBeforeUpdate","onResult","onBeforeOpen","onOpen","onBeforeMessageSend","onMessageReceive","onProgress","onError","onBeforeDatasetReady","onCanUpdate","onClick","onHide","onOk","onCancel","onBeforeClose","onClose","onTimerFire","onSuccess","onOnline","onOffline"];for(const i in e){const n=e[i];if("wm.LiveVariable"===n.category&&"read"===n.operation)r+=generateFilterExprBindings(n.filterExpressions);else if("wm.CrudVariable"===n.category)r+=getCRUDVariableExpressions(n);else{"wm.NavigationVariable"!==n.category&&"wm.NotificationVariable"!==n.category||(r+=getActionDatasetExpressions(n)),(n.dataBinding||[]).forEach(e=>{r+=getExprForBinding(e.value)})}t.forEach(e=>{n[e]&&(r+=getFnForExpr(n[e],{isEvent:!0}))})}return r},generateInternalWidgetExpressions=e=>{let r="";return["wmalertdialog","wmconfirmdialog","wmtable","wmtablecolumn","wmform","wmformaction","wmformfield","wmformfield","wmchips","wmlist","wmmedialist"].forEach(t=>{if(void 0!==e.attribs[t])switch(t){case"wmalertdialog":r+=getFnForExpr("oktext");break;case"wmconfirmdialog":r+=getFnForExpr("oktext"),r+=getFnForExpr("canceltext");break;case"wmtable":r+=e.attribs.rowngclass?getFnForExpr(e.attribs.rowngclass):"";break;case"wmtablecolumn":r+=e.attribs["col-ng-class"]?getFnForExpr(e.attribs["col-ng-class"]):"";break;case"wmform":r+=getFnForExpr("boundFn(fn)");break;case"wmformaction":e.attribs["disabled.bind"]&&(r+=getFnForExpr("ngform.status === 'PENDING' || btn.disabled"));break;case"wmformfield":if(e.attribs.filterexpressions){let t=e.attribs.filterexpressions;try{t=JSON.parse(t),r+=generateFilterExprBindings(t)}catch(r){console.log("ERROR: there was an error while parsing filter-expressions in a form field named ",e.attribs.name)}}break;case"wmchips":e.attribs["disabled.bind"]&&(r+=getFnForExpr("disabled || readonly || saturate")),e.attribs["placeholder.bind"]&&(r+=getFnForExpr("saturate ? maxSizeReached : placeholder"));break;case"wmlist":r+=getFnForExpr("!onDemandLoad");break;case"wmmedialist":r+=getFnForExpr("getPicTitle()"),r+=getFnForExpr("src || getSrc(field)")}}),r},isActionTypeNode=e=>["wmtableaction","wmtablerowaction","wmformaction"].some(r=>void 0!==e.attribs[r]),generatePageExpressions=(e,r,t)=>{let i,n,a="";const s=cheerio.load(e);if(processedPageExpr.length=0,s("*").each((e,r)=>{for(let e in r.attribs)e.endsWith(".bind")?(n=e.replace(".bind",""),i=r.attribs[e],isDisplayExpressionAttr(n)&&(i=updateBindExpressionForDisplayexpression(i)),a+=getFnForExpr(i,{prop:n,widgetNode:r})):e.endsWith(".event")?(n=e.replace(".event",""),i=r.attribs[e],a+=getFnForExpr(i,{isEvent:!0})):"displayexpression"===e?(i=r.attribs[e],a+=getFnForExpr(i)):"action"===e&&isActionTypeNode(r)?(i=r.attribs[e],a+=getFnForExpr(i,{isEvent:!0})):"*lazyload"===e&&(i=(i=r.attribs[e]).replace(/'/g,"").replace(/\\"/g,'"'),a+=getFnForExpr(i));a+=generateInternalWidgetExpressions(r)}),a+=generateVariableExpressions(r),t){const e=(t=JSON.parse(t.toString())).properties||{};Object.keys(e).forEach(r=>{let t=e[r];"string"==typeof t.value&&t.value.startsWith("bind:")&&(a+=getFnForExpr(t.value.replace("bind:","")))})}return a};module.exports={generatePageExpressions:generatePageExpressions,generateVariableExpressions:generateVariableExpressions};
|