@wavemaker/angular-codegen 10.10.2-next.23192 → 11.0.0-next.139406
Sign up to get free protection for your applications and to get access to all the features.
- 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();
|