@wavemaker/angular-codegen 10.10.2-next.23192 → 11.0.0-next.139406
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/angular-app/package.json +1 -1
- angular-codegen/build-angular-app.js +5 -7
- angular-codegen/dependencies/transpilation-mobile.cjs.js +2 -12
- angular-codegen/dependencies/transpilation-web.cjs.js +2 -12
- angular-codegen/package.json +1 -1
- angular-codegen/src/codegen-cli.js +1 -1
- angular-codegen/src/codegen.js +1 -1
- angular-codegen/src/gen-app-skeleton.js +1 -1
- angular-codegen/src/gen-pwa-files.js +1 -1
- angular-codegen/src/handlebar-helpers.js +1 -1
- angular-codegen/src/wm-utils.js +1 -1
- angular-codegen/src/codegen-args-cli.js +0 -1
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"tslib": "^2.0.0",
|
|
69
69
|
"x2js": "3.2.6",
|
|
70
70
|
"zone.js": "~0.10.3",
|
|
71
|
-
"@wavemaker/app-ng-runtime": "
|
|
71
|
+
"@wavemaker/app-ng-runtime": "11.0.0-next.139406"
|
|
72
72
|
},
|
|
73
73
|
"devDependencies": {
|
|
74
74
|
"@ampproject/rollup-plugin-closure-compiler": "0.8.5",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
const fs = require('fs');
|
|
16
16
|
const { downloadNPMPackage } = require('./download-packages');
|
|
17
17
|
|
|
18
|
-
const { executeSyncCmd,
|
|
18
|
+
const { executeSyncCmd, args, MSG_NG_RUNTIME_LOG, MSG_NG_RUNTIME_SUCCESS } = require('./build-util');
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* @TODO: This is a temporary workaround to extract deploy-url from 'ngBuildParams', need to be replaced in future.
|
|
@@ -31,7 +31,8 @@ const getDeployUrl = (ngBuildParams) => {
|
|
|
31
31
|
* Symlink to reuse the existing node modules (If windows optimizeUIBuild will be false and install all node modules every build )
|
|
32
32
|
* Run the ng build and post build for the project
|
|
33
33
|
*/
|
|
34
|
-
const
|
|
34
|
+
const init = () => {
|
|
35
|
+
|
|
35
36
|
let packageInfo = {
|
|
36
37
|
name: 'app-ng-runtime',
|
|
37
38
|
version: args.runtimeUIVersion,
|
|
@@ -43,7 +44,7 @@ const buildAngularApp = (args) => {
|
|
|
43
44
|
|
|
44
45
|
try {
|
|
45
46
|
// Symlink to reuse the existing node_modules
|
|
46
|
-
if (args.optimizeUIBuild) {
|
|
47
|
+
if (args.optimizeUIBuild === 'true') {
|
|
47
48
|
// Download app-ng-runtime node modules
|
|
48
49
|
let pathNGRuntimePackage = downloadNPMPackage(packageInfo);
|
|
49
50
|
fs.symlinkSync(pathNGRuntimePackage + '/node_modules', args.appTarget + '/node_modules', 'dir');
|
|
@@ -62,7 +63,4 @@ const buildAngularApp = (args) => {
|
|
|
62
63
|
executeSyncCmd('cd ' + args.appTarget + ' && node ' + args.nodeVMArgs + ' ' + './node_modules/@angular/cli/bin/ng build ' + args.ngBuildParams + ' && node build-scripts/post-build.js --deploy-url=' + deployUrl, null, MSG_NG_RUNTIME_LOG, false, NG_BUILD_MSG);
|
|
63
64
|
}
|
|
64
65
|
|
|
65
|
-
|
|
66
|
-
module.exports = {
|
|
67
|
-
buildAngularApp
|
|
68
|
-
}
|
|
66
|
+
init();
|
|
@@ -38335,18 +38335,8 @@ const VALIDATOR = {
|
|
|
38335
38335
|
EXCLUDEDAYS: 'excludedays'
|
|
38336
38336
|
};
|
|
38337
38337
|
const transformFileURI = (url) => {
|
|
38338
|
-
if (url && hasCordova() && url.startsWith('file://')) {
|
|
38339
|
-
|
|
38340
|
-
return url.replace('file://', '/_app_file_');
|
|
38341
|
-
}
|
|
38342
|
-
else if (isAndroid() && location.href.startsWith('http')) {
|
|
38343
|
-
if (url.startsWith(cordova.file.applicationDirectory)) {
|
|
38344
|
-
return url.replace(cordova.file.applicationDirectory + 'www', '');
|
|
38345
|
-
}
|
|
38346
|
-
else if (url.startsWith('file://')) {
|
|
38347
|
-
return url.replace('file://', '/_app_file_');
|
|
38348
|
-
}
|
|
38349
|
-
}
|
|
38338
|
+
if (url && hasCordova() && isIos() && url.startsWith('file://')) {
|
|
38339
|
+
return url.replace('file://', '/_app_file_');
|
|
38350
38340
|
}
|
|
38351
38341
|
return url;
|
|
38352
38342
|
};
|
|
@@ -38335,18 +38335,8 @@ const VALIDATOR = {
|
|
|
38335
38335
|
EXCLUDEDAYS: 'excludedays'
|
|
38336
38336
|
};
|
|
38337
38337
|
const transformFileURI = (url) => {
|
|
38338
|
-
if (url && hasCordova() && url.startsWith('file://')) {
|
|
38339
|
-
|
|
38340
|
-
return url.replace('file://', '/_app_file_');
|
|
38341
|
-
}
|
|
38342
|
-
else if (isAndroid() && location.href.startsWith('http')) {
|
|
38343
|
-
if (url.startsWith(cordova.file.applicationDirectory)) {
|
|
38344
|
-
return url.replace(cordova.file.applicationDirectory + 'www', '');
|
|
38345
|
-
}
|
|
38346
|
-
else if (url.startsWith('file://')) {
|
|
38347
|
-
return url.replace('file://', '/_app_file_');
|
|
38348
|
-
}
|
|
38349
|
-
}
|
|
38338
|
+
if (url && hasCordova() && isIos() && url.startsWith('file://')) {
|
|
38339
|
+
return url.replace('file://', '/_app_file_');
|
|
38350
38340
|
}
|
|
38351
38341
|
return url;
|
|
38352
38342
|
};
|
angular-codegen/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const codegen=require("./codegen"),
|
|
1
|
+
const codegen=require("./codegen"),argv=require("yargs").usage("Usage: $0 -s [wavemaker project path] -t [target location] [-c] [-g]").options({create:{alias:"c",type:"boolean"},deploy_url:{alias:"d",type:"string"},generate:{alias:"g",type:"boolean"},generate_page:{type:"string"},source:{alias:"s",describe:"source project web-app path",type:"string"},target:{alias:"t",describe:"target directory",type:"string"},codegenPath:{describe:"Codegen installation path",type:"string"},pwa:{describe:"Toggle pwa capability",type:"boolean",default:!1}}).demandOption(["source","target"],"please provide source project and target directory paths").help().argv,create=async()=>{await codegen.createAppSkeleton(argv.source,argv.target)},generate=async()=>{await codegen.generateSources(argv.source,argv.target,argv.deploy_url,argv.pwa)},generatePage=async()=>{await codegen.generatePage(argv.source,argv.target,argv.generate_page)},processRequest=async()=>{argv.create&&await create(),argv.generate&&await generate(),argv.generate_page&&await generatePage(),argv.create||argv.generate||argv.generate_page||(await create(),await generate())};processRequest();
|
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"),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=
|
|
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"),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=(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"],writeFile(r,JSON.stringify(t,null,4))},generateSources=async(e,a,r,t)=>{console.time("generate app-sources"),await Promise.all([deleteResource(`${a}/src/app/pages`),deleteResource(`${a}/src/app/partials`),deleteResource(`${a}/src/app/prefabs`)]);const n=readFileSync(`${a}/angular.json`);global._WM_PACKAGE_PATH=n.includes("./node_modules/@wavemaker/app-ng-runtime/")?"./node_modules/@wavemaker/app-ng-runtime":"./libraries";const i=await getWmProjectProperties(e),o=await getSecurityConfig(e),g=await getPagesConfig(e),p=await getPrefabConfigsUsedInApp(i,e);let l={};for(const a of p.keys())l[a]=await getPrefabPartialsConfig(e,a);r&&!r.endsWith("/")&&(r+="/"),await Promise.all([generateIndexHtml(e,a,i,r,t),generateWmProjectProperties(i,a),generateAppRoutes(e,i,g,o,a),generatePrefabConfigFile(p,a),generateCodeGenModule(i,g,p,o,a),generateTSConfig(i,a),generateAppJS(e,a),generateAppVariables(e,a),generateComponents(e,i,g,p,a,l)]);const s=await isDynamicComponentUsedInApp(a),c={aot:!s,buildOptimizer:!s};await generateAppModule(i,a,s,t),await updateAngularJSON(e,a,i,g,p,r,c,l,t),cleanPackageJSON(a,t),t&&generatePwaFiles(e,a,i),console.timeEnd("generate app-sources")},createAppSkeleton=async(e,a)=>{console.time("create-angular-app"),await createApp(e,a),console.timeEnd("create-angular-app")},generatePage=async(e,a,r)=>{console.time("generate page",r);const t=getPagesDirPath(e),n=await getWmProjectProperties(e),i=await getPagesConfig(e),o=_.find(i,{name:r}),g="PAGE"===o.type?"pages":"partials";await deleteResource(`${a}/src/app/${g}/${r}`),await generatePagePartialComponent(t,n,o.name,o.type,a),console.timeEnd("generate page",r)};module.exports={generateSources:generateSources,createAppSkeleton:createAppSkeleton,generatePage:generatePage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const{deleteResource:deleteResource,createDir:createDir,readDir:readDir,getWebAppPath:getWebAppPath,isMobileProject:isMobileProject}=require("./wm-utils"),{getWmProjectProperties:getWmProjectProperties}=require("./project-meta"),util=require("util"),ncp=util.promisify(require("ncp").ncp),createAppSkeleton=async(e,t
|
|
1
|
+
const{deleteResource:deleteResource,createDir:createDir,readDir:readDir,getWebAppPath:getWebAppPath,isMobileProject:isMobileProject,codegenPath:codegenPath}=require("./wm-utils"),{getWmProjectProperties:getWmProjectProperties}=require("./project-meta"),util=require("util"),ncp=util.promisify(require("ncp").ncp),createAppSkeleton=async(e,t)=>{await deleteResource(t),await createDir(t,{recursive:!0}),await ncp(codegenPath+"/angular-app",t);const r=getWebAppPath(e);if((await readDir(`${r}/themes`)).length){const e=`${r}/themes/`;await ncp(e,`${t}/src/assets/themes`)}(await readDir(`${r}/extensions`)).length&&await ncp(`${r}/extensions`,`${t}/src/app/extensions`),await ncp(`${r}/app.css`,`${t}/src/assets/app.css`),await ncp(`${r}/resources`,`${t}/resources`)};module.exports={createAppSkeleton:createAppSkeleton};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const util=require("util"),fs=require("fs"),ncp=util.promisify(require("ncp").ncp),{writeFile:writeFile,readFileSync:readFileSync,
|
|
1
|
+
const util=require("util"),fs=require("fs"),ncp=util.promisify(require("ncp").ncp),{writeFile:writeFile,readFileSync:readFileSync,codegenPath:codegenPath}=require("./wm-utils"),PWA_ICONS=["icon-512x512.png","icon-384x384.png","icon-192x192.png","icon-152x152.png","icon-144x144.png","icon-128x128.png","icon-96x96.png","icon-72x72.png"],generatePwaFiles=async(s,n,e)=>{await copyAssets(s,n),await updateManifestJson(n,e)},copyAssets=async(s,n)=>{await ncp(codegenPath+"/pwa-assets/ngsw-config.json",`${n}/ngsw-config.json`),await ncp(codegenPath+"/pwa-assets/wmsw-worker.js",`${n}/src/wmsw-worker.js`),await ncp(codegenPath+"/pwa-assets/manifest.json",`${n}/src/manifest.json`),await copyIcons(s,n)},copyIcons=async(s,n)=>{const e=`${n}/src/assets/icons`;let a;if(fs.existsSync(e)||fs.mkdirSync(e,{recursive:!0}),fs.existsSync(`${s}/pwa-icons`))for(const[n,c]of PWA_ICONS.entries()){const t=`${s}/pwa-icons/${c}`;if(fs.existsSync(t)){if(!a)for(i=0;i<n;i++)await ncp(t,`${e}/${PWA_ICONS[i]}`);a=t,await ncp(t,`${e}/${c}`)}else a&&await ncp(a,`${e}/${c}`)}a||await ncp(`${codegenPath}/pwa-assets/icons`,e)},updateManifestJson=async(s,n)=>{const e=`${s}/src/manifest.json`;let i=readFileSync(e,!0);i.name=n.displayName,i.short_name=n.displayName,await writeFile(e,JSON.stringify(i,null,4))};module.exports={generatePwaFiles:generatePwaFiles,copyIcons:copyIcons,PWA_ICONS:PWA_ICONS};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const Handlebars=require("handlebars"),fs=require("fs"),{getComponentName:getComponentName,isPrefabProject:isPrefabProject,getComponentModuleName:getComponentModuleName,
|
|
1
|
+
const Handlebars=require("handlebars"),fs=require("fs"),{getComponentName:getComponentName,isPrefabProject:isPrefabProject,getComponentModuleName:getComponentModuleName,codegenPath:codegenPath}=require("./wm-utils"),getPageRouteInfo=(e,t)=>{let a,n;if(null!==e){a="[AuthGuard]";for(const p of e)if(p.urlPattern.startsWith("/pages/")){p.urlPattern.split("/")[2]===t&&("Role"===p.permission?(a="[RoleGuard]",p.roles&&(n=JSON.stringify(p.roles))):"PermitAll"===p.permission&&(a=void 0))}}return`{\n path: '${t}',\n pathMatch: 'full',\n loadChildren: './pages/${t}/${t}.module#${getComponentModuleName(t)}',${a?`\n canActivate: ${a},`:""}\n data : {\n ${n?`allowedRoles: ${n},`:""}\n pageName: '${t}'\n }\n }`};Handlebars.registerHelper("PageComponentsImportStmts",(e,t)=>{if(isPrefabProject(e))return"";const a=t.filter(e=>"PAGE"===e.type).map(e=>`import { ${getComponentName(e.name)} } from './pages/${e.name}/${e.name}.component';`).join("\n");return safeString(a)}),Handlebars.registerHelper("WMComponentsImportStmts",(e=[])=>{const t=e.map(e=>`import { ${e.name} as ${e.as||"WM_"+e.name} } from '${e.from}';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PartialModuleImportStmts",e=>{const t=e.filter(e=>"PARTIAL"===e.type).map(e=>`import { ${getComponentModuleName(e.name)} as Partial${getComponentModuleName(e.name)}} from '../../partials/${e.name}/${e.name}.module';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PrefabPartialModuleImportStmts",e=>{const t=e.filter(e=>"PARTIAL"===e.type).map(e=>`import { ${getComponentModuleName(e.name)} as Partial${getComponentModuleName(e.name)}} from './partials/${e.name}/${e.name}.module';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PartialModuleStmts",e=>{const t=e.filter(e=>"PARTIAL"===e.type).map(e=>"Partial"+getComponentModuleName(e.name)).join(",\n\t");return safeString(t)}),Handlebars.registerHelper("PrefabModuleImportStmts",e=>{const t=e.filter(e=>"PREFAB"===e.type).map(e=>`import { ${getComponentModuleName(e.name)} as Prefab${getComponentModuleName(e.name)} } from '../../prefabs/${e.name}/${e.name}.module';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PrefabModuleStmts",e=>{const t=e.filter(e=>"PREFAB"===e.type).map(e=>"Prefab"+getComponentModuleName(e.name)).join(",\n\t");return safeString(t)}),Handlebars.registerHelper("WMComponentModuleStmts",e=>{const t=e.map(e=>`${e.as||"WM_"+e.name}${e.forRoot?".forRoot()":""}`).join(",\n\t");return safeString(t)}),Handlebars.registerHelper("PartialComponentsImportStmts",e=>{const t=e.filter(e=>"PAGE"!==e.type).map(e=>`import { ${getComponentName(e.name)} } from './partials/${e.name}/${e.name}.component';`).join("\n");return safeString(t)}),Handlebars.registerHelper("PrefabComponentsImportStmts",e=>{const t=[];for(const[a]of e.entries())t.push(`import { MainComponent as ${a}Component } from './prefabs/${a}/Main/Main.component';`);return safeString(t.join("\n"))}),Handlebars.registerHelper("RegisterComponents",(e,t,a)=>{let n=[];for(const[e]of a.entries())n.push(`ComponentRefProviderService.registerComponentRef('${e}', ComponentType.PREFAB, ${e}Component, null);`);return safeString(n.join("\n"))}),Handlebars.registerHelper("ComponentDeclarations",(e,t,a)=>{let n=[];for(const[e]of a.entries())n.push(`${e}Component`);return safeString(n.join(",\n\t"))}),Handlebars.registerHelper("RegisterPrefabConfig",e=>{const t=[];for(const[a,n]of e.entries())t.push(`registerPrefabConfig('${a}', ${n})`);return safeString(t.join("\n"))}),Handlebars.registerHelper("DefineHomePage",e=>isPrefabProject(e)?"prefab-preview":e.homePage),Handlebars.registerHelper("ImportPrefabPreviewComponent",e=>isPrefabProject(e)?safeString('import { PrefabPreviewComponent } from "@wm/runtime/base";'):""),Handlebars.registerHelper("DefineAppRoutes",(e,t,a)=>{const n=t.filter(e=>"PAGE"===e.type).map(e=>getPageRouteInfo(a,e.name));let p="";return p=isPrefabProject(e)?"{\n path: 'prefab-preview',\n resolve: appDependenciesResolve,\n component: PrefabPreviewComponent\n }":`{\n path: '',\n resolve: appDependenciesResolve,\n children: [\n ${n.join(",\n")}\n ]\n }`,safeString(`[\n {\n path: '',\n pathMatch: 'full',\n component: EmptyPageComponent,\n resolve: appDependenciesResolve\n },\n ${p},\n {\n path: "**",\n canActivate: [PageNotFoundGaurd],\n component: EmptyPageComponent\n }\n ]`)});const templates=new Map,templatePath=codegenPath+"/templates/",initTemplates=()=>{templates.set("app-module-ts",Handlebars.compile(fs.readFileSync(templatePath+"app.module.ts.hbs","utf-8"))),templates.set("app-codegen-module",Handlebars.compile(fs.readFileSync(templatePath+"app-codegen.module.ts.hbs","utf-8"))),templates.set("app-prefabs-module",Handlebars.compile(fs.readFileSync(templatePath+"app-prefabs.module.ts.hbs","utf-8"))),templates.set("prefab-config",Handlebars.compile(fs.readFileSync(templatePath+"prefab/prefab-config.ts.hbs","utf-8"))),templates.set("app-routes",Handlebars.compile(fs.readFileSync(templatePath+"app-routes.ts.hbs","utf-8"))),templates.set("wm-project-properties",Handlebars.compile(fs.readFileSync(templatePath+"wm-project-properties.ts.hbs","utf-8"))),templates.set("component-variables",Handlebars.compile(fs.readFileSync(templatePath+"component.variables.ts.hbs","utf-8"))),templates.set("app-component-script",Handlebars.compile(fs.readFileSync(templatePath+"app.component.script.js.hbs","utf-8"))),templates.set("page-component-ts",Handlebars.compile(fs.readFileSync(templatePath+"page/page.component.ts.hbs","utf-8"))),templates.set("page-component-script",Handlebars.compile(fs.readFileSync(templatePath+"page/page.component.script.js.hbs","utf-8"))),templates.set("page-module-ts",Handlebars.compile(fs.readFileSync(templatePath+"page/page.module.ts.hbs","utf-8"))),templates.set("partial-component-ts",Handlebars.compile(fs.readFileSync(templatePath+"partial/partial.component.ts.hbs","utf-8"))),templates.set("partial-component-script",Handlebars.compile(fs.readFileSync(templatePath+"partial/partial.component.script.js.hbs","utf-8"))),templates.set("partial-module-ts",Handlebars.compile(fs.readFileSync(templatePath+"partial/partial.module.ts.hbs","utf-8"))),templates.set("prefab-component-ts",Handlebars.compile(fs.readFileSync(templatePath+"prefab/prefab.component.ts.hbs","utf-8"))),templates.set("prefab-module-ts",Handlebars.compile(fs.readFileSync(templatePath+"prefab/prefab.module.ts.hbs","utf-8"))),templates.set("prefab-component-script",Handlebars.compile(fs.readFileSync(templatePath+"prefab/prefab.component.script.js.hbs","utf-8")))};templates.set("app-module-ts",Handlebars.compile(fs.readFileSync(templatePath+"app.module.ts.hbs","utf-8"))),templates.set("app-codegen-module",Handlebars.compile(fs.readFileSync(templatePath+"app-codegen.module.ts.hbs","utf-8"))),templates.set("app-prefabs-module",Handlebars.compile(fs.readFileSync(templatePath+"app-prefabs.module.ts.hbs","utf-8"))),templates.set("prefab-config",Handlebars.compile(fs.readFileSync(templatePath+"prefab/prefab-config.ts.hbs","utf-8"))),templates.set("app-routes",Handlebars.compile(fs.readFileSync(templatePath+"app-routes.ts.hbs","utf-8"))),templates.set("wm-project-properties",Handlebars.compile(fs.readFileSync(templatePath+"wm-project-properties.ts.hbs","utf-8"))),templates.set("component-variables",Handlebars.compile(fs.readFileSync(templatePath+"component.variables.ts.hbs","utf-8"))),templates.set("app-component-script",Handlebars.compile(fs.readFileSync(templatePath+"app.component.script.js.hbs","utf-8"))),templates.set("page-component-ts",Handlebars.compile(fs.readFileSync(templatePath+"page/page.component.ts.hbs","utf-8"))),templates.set("page-component-script",Handlebars.compile(fs.readFileSync(templatePath+"page/page.component.script.js.hbs","utf-8"))),templates.set("page-module-ts",Handlebars.compile(fs.readFileSync(templatePath+"page/page.module.ts.hbs","utf-8"))),templates.set("partial-component-ts",Handlebars.compile(fs.readFileSync(templatePath+"partial/partial.component.ts.hbs","utf-8"))),templates.set("partial-component-script",Handlebars.compile(fs.readFileSync(templatePath+"partial/partial.component.script.js.hbs","utf-8"))),templates.set("partial-module-ts",Handlebars.compile(fs.readFileSync(templatePath+"partial/partial.module.ts.hbs","utf-8"))),templates.set("prefab-component-ts",Handlebars.compile(fs.readFileSync(templatePath+"prefab/prefab.component.ts.hbs","utf-8"))),templates.set("prefab-module-ts",Handlebars.compile(fs.readFileSync(templatePath+"prefab/prefab.module.ts.hbs","utf-8"))),templates.set("prefab-component-script",Handlebars.compile(fs.readFileSync(templatePath+"prefab/prefab.component.script.js.hbs","utf-8")));const getHandlebarTemplate=e=>templates.get(e),safeString=e=>new Handlebars.SafeString(e);module.exports={getHandlebarTemplate:getHandlebarTemplate,safeString:safeString};
|
angular-codegen/src/wm-utils.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const util=require("util"),fs=require("fs"),rimraf=require("rimraf"),decodeUriComponent=require("decode-uri-component"),upperFirst=require("lodash/upperFirst"),tar=require("tar-fs"),prettier=require("prettier"),js_beautify=require("js-beautify"),path=require("path"),stat=util.promisify(fs.stat),createDir=util.promisify(fs.mkdir),createReadStream=util.promisify(fs.createReadStream),readFile=util.promisify(fs.readFile),writeFile=util.promisify(fs.writeFile),readDir=util.promisify(fs.readdir),rename=util.promisify(fs.rename),searchFileByName=(e,t,r)=>{if(!fs.existsSync(e))return;fs.readdirSync(e).forEach(a=>{const i=path.join(e,a);fs.lstatSync(i).isDirectory()?searchFileByName(i,t,r):t.test(i)&&r(i)})},deleteResource=async e=>stat(e).then(()=>new Promise((t,r)=>{rimraf(e,()=>t())}),()=>Promise.resolve()),getComponentName=e=>`${upperFirst(e)}Component`,getComponentModuleName=e=>`${upperFirst(e)}Module`,decodeURIComponent=e=>decodeUriComponent(e.replace(/\+/g," ")),createTar=(e,t)=>new Promise((r,a)=>{tar.pack(e).pipe(fs.createWriteStream(t)).on("finish",r)}),extractTar=(e,t)=>new Promise((r,a)=>{fs.createReadStream(e).pipe(tar.extract(t)).on("finish",r)}),getWebAppPath=e=>`${e}/src/main/webapp`,getPagesDirPath=e=>`${getWebAppPath(e)}/pages`,getPagesConfigPath=e=>`${getWebAppPath(e)}/pages/pages-config.json`,getPrefabsDirPath=e=>`${getWebAppPath(e)}/WEB-INF/prefabs`,getPrefabConfigPath=(e,t)=>`${getPrefabsDirPath(e)}/${t}/webapp/config.json`,getPrefabPagesDirPath=(e,t)=>`${getPrefabsDirPath(e)}/${t}/webapp/pages`,getSecurityConfigPath=e=>`${e}/services/securityService/designtime/intercept-urls.json`,getRolesConfigPath=e=>`${e}/services/securityService/designtime/roles.json`,getAuthInfoFilePath=e=>`${e}/services/securityService/designtime/auth-info.json`,getAppJsFilePath=e=>`${getWebAppPath(e)}/app.js`,getAppVariablesFilePath=e=>`${getWebAppPath(e)}/app.variables.json`,getWmProjectPropertiesFilePath=e=>`${e}/.wmproject.properties`,getIndexHtmlPath=e=>`${getWebAppPath(e)}/index.html
|
|
1
|
+
const util=require("util"),fs=require("fs"),rimraf=require("rimraf"),decodeUriComponent=require("decode-uri-component"),upperFirst=require("lodash/upperFirst"),tar=require("tar-fs"),prettier=require("prettier"),js_beautify=require("js-beautify"),path=require("path"),argv=require("yargs").usage("Usage: $0 -s [wavemaker project path] -t [target location] [-c] [-g]").options({create:{alias:"c",type:"boolean"},deploy_url:{alias:"d",type:"string"},generate:{alias:"g",type:"boolean"},generate_page:{type:"string"},source:{alias:"s",describe:"source project web-app path",type:"string"},target:{alias:"t",describe:"target directory",type:"string"},codegenPath:{describe:"Codegen installation path",type:"string"},pwa:{describe:"Toggle pwa capability",type:"boolean",default:!1}}).demandOption(["source","target"],"please provide source project and target directory paths").help().argv,stat=util.promisify(fs.stat),createDir=util.promisify(fs.mkdir),createReadStream=util.promisify(fs.createReadStream),readFile=util.promisify(fs.readFile),writeFile=util.promisify(fs.writeFile),readDir=util.promisify(fs.readdir),rename=util.promisify(fs.rename),searchFileByName=(e,t,r)=>{if(!fs.existsSync(e))return;fs.readdirSync(e).forEach(a=>{const i=path.join(e,a);fs.lstatSync(i).isDirectory()?searchFileByName(i,t,r):t.test(i)&&r(i)})},deleteResource=async e=>stat(e).then(()=>new Promise((t,r)=>{rimraf(e,()=>t())}),()=>Promise.resolve()),getComponentName=e=>`${upperFirst(e)}Component`,getComponentModuleName=e=>`${upperFirst(e)}Module`,decodeURIComponent=e=>decodeUriComponent(e.replace(/\+/g," ")),createTar=(e,t)=>new Promise((r,a)=>{tar.pack(e).pipe(fs.createWriteStream(t)).on("finish",r)}),extractTar=(e,t)=>new Promise((r,a)=>{fs.createReadStream(e).pipe(tar.extract(t)).on("finish",r)}),getWebAppPath=e=>`${e}/src/main/webapp`,getPagesDirPath=e=>`${getWebAppPath(e)}/pages`,getPagesConfigPath=e=>`${getWebAppPath(e)}/pages/pages-config.json`,getPrefabsDirPath=e=>`${getWebAppPath(e)}/WEB-INF/prefabs`,getPrefabConfigPath=(e,t)=>`${getPrefabsDirPath(e)}/${t}/webapp/config.json`,getPrefabPagesDirPath=(e,t)=>`${getPrefabsDirPath(e)}/${t}/webapp/pages`,getSecurityConfigPath=e=>`${e}/services/securityService/designtime/intercept-urls.json`,getRolesConfigPath=e=>`${e}/services/securityService/designtime/roles.json`,getAuthInfoFilePath=e=>`${e}/services/securityService/designtime/auth-info.json`,getAppJsFilePath=e=>`${getWebAppPath(e)}/app.js`,getAppVariablesFilePath=e=>`${getWebAppPath(e)}/app.variables.json`,getWmProjectPropertiesFilePath=e=>`${e}/.wmproject.properties`,getIndexHtmlPath=e=>`${getWebAppPath(e)}/index.html`,codegenPath=argv.codegenPath?argv.codegenPath:"./node_modules/@wavemaker/angular-codegen",formatContents=(e="",t)=>"javascript"===t?js_beautify(e,{}):prettier.format(e,{semi:!1,parser:"typescript",tabWidth:4}),isMobileProject=e=>"MOBILE"===e.platformType,isPrefabProject=e=>"PREFAB"===e.type,readFileSync=(e,t)=>{let r=fs.readFileSync(e);return t?JSON.parse(r):r};module.exports={stat:stat,createDir:createDir,createReadStream:createReadStream,readFile:readFile,writeFile:writeFile,deleteResource:deleteResource,getComponentName:getComponentName,getComponentModuleName:getComponentModuleName,decodeURIComponent:decodeURIComponent,createTar:createTar,extractTar:extractTar,readDir:readDir,rename:rename,searchFileByName:searchFileByName,getWebAppPath:getWebAppPath,getPagesDirPath:getPagesDirPath,getPagesConfigPath:getPagesConfigPath,getPrefabsDirPath:getPrefabsDirPath,getPrefabConfigPath:getPrefabConfigPath,getPrefabPagesDirPath:getPrefabPagesDirPath,getSecurityConfigPath:getSecurityConfigPath,getRolesConfigPath:getRolesConfigPath,getAuthInfoFilePath:getAuthInfoFilePath,getAppJsFilePath:getAppJsFilePath,getAppVariablesFilePath:getAppVariablesFilePath,getWmProjectPropertiesFilePath:getWmProjectPropertiesFilePath,getIndexHtmlPath:getIndexHtmlPath,formatContents:formatContents,isMobileProject:isMobileProject,isPrefabProject:isPrefabProject,readFileSync:readFileSync,codegenPath:codegenPath,argv:argv};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
const codegenCLI=require("./codegen-cli"),argv=require("yargs").usage("Usage: $0 -s [wavemaker project path] -t [target location] [-c] [-g]").options({deploy_url:{alias:"d",type:"string"},generate_page:{type:"string"},source:{alias:"s",describe:"source project web-app path",type:"string"},target:{alias:"t",describe:"target directory",type:"string"},codegenPath:{describe:"Codegen installation path",type:"string"},pwa:{describe:"Toggle pwa capability",type:"boolean",default:!1}}).demandOption(["source","target"],"please provide source project and target directory paths").help().argv,init=async()=>{argv.generate_page&&await codegenCLI.generatePage(argv.source,argv.target,argv.generate_page,argv.codegenPath),argv.generate_page||await codegenCLI.generateCodegenAngularApp(argv.source,argv.target,argv.deploy_url,argv.pwa,argv.codegenPath)};init();
|