@magic-xpa/cli 4.1100.0-dev4110.20 → 4.1100.0-dev4110.203
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.
- package/index.d.ts +1 -1
- package/index.js +4 -4
- package/package.json +2 -2
- package/src/public_api.d.ts +3 -3
- package/src/public_api.js +6 -6
- package/src/schematics/magic-utils/Util.d.ts +6 -6
- package/src/schematics/magic-utils/Util.js +26 -26
- package/src/schematics/magic-utils/config.d.ts +12 -12
- package/src/schematics/magic-utils/config.js +56 -56
- package/src/schematics/magic-utils/env.d.ts +23 -23
- package/src/schematics/magic-utils/env.js +39 -39
- package/src/schematics/magic-utils/env.js.map +1 -1
- package/src/schematics/magic-utils/env.ts +5 -5
- package/src/schematics/magic-utils/manifest.d.ts +11 -11
- package/src/schematics/magic-utils/manifest.js +40 -40
- package/src/schematics/magic-utils/manifest.js.map +1 -1
- package/src/schematics/magic-utils/metadata.class.d.ts +51 -51
- package/src/schematics/magic-utils/metadata.class.js +124 -124
- package/src/schematics/magic-utils/metadata.class.js.map +1 -1
- package/src/schematics/magic-utils/process-json.d.ts +2 -2
- package/src/schematics/magic-utils/process-json.js +158 -158
- package/src/schematics/magic-utils/process-json.js.map +1 -1
- package/src/schematics/magic-utils/rules/build-control.rule.d.ts +5 -5
- package/src/schematics/magic-utils/rules/build-control.rule.js +74 -74
- package/src/schematics/magic-utils/rules/build-control.rule.js.map +1 -1
- package/src/schematics/magic-utils/rules/build-view.rule.d.ts +3 -3
- package/src/schematics/magic-utils/rules/build-view.rule.js +83 -80
- package/src/schematics/magic-utils/rules/build-view.rule.js.map +1 -1
- package/src/schematics/magic-utils/rules/build-view.rule.ts +4 -0
- package/src/schematics/magic-utils/rules/component-list.rule.d.ts +3 -3
- package/src/schematics/magic-utils/rules/component-list.rule.js +317 -317
- package/src/schematics/magic-utils/rules/component-list.rule.js.map +1 -1
- package/src/schematics/magic-utils/rules/generate.rule.d.ts +5 -5
- package/src/schematics/magic-utils/rules/generate.rule.js +54 -54
- package/src/schematics/magic-utils/rules/generate.rule.js.map +1 -1
- package/src/schematics/magic-utils/rules/init-add-modules.rule.d.ts +12 -12
- package/src/schematics/magic-utils/rules/init-add-modules.rule.js +296 -296
- package/src/schematics/magic-utils/rules/init-add-modules.rule.js.map +1 -1
- package/src/schematics/magic-utils/rules/init-gen-components.rule.d.ts +4 -4
- package/src/schematics/magic-utils/rules/init-gen-components.rule.js +66 -66
- package/src/schematics/magic-utils/rules/init-gen-components.rule.js.map +1 -1
- package/src/schematics/magic-utils/rules/init-magic-metadata.rule.d.ts +3 -3
- package/src/schematics/magic-utils/rules/init-magic-metadata.rule.js +18 -18
- package/src/schematics/magic-utils/rules/init-magic-metadata.rule.js.map +1 -1
- package/src/schematics/magic-utils/rules/load-views-gen.rule.d.ts +3 -3
- package/src/schematics/magic-utils/rules/load-views-gen.rule.js +29 -29
- package/src/schematics/magic-utils/rules/magic-option.scheme.d.ts +22 -21
- package/src/schematics/magic-utils/rules/magic-option.scheme.js +2 -2
- package/src/schematics/magic-utils/rules/magic-option.scheme.js.map +1 -1
- package/src/schematics/magic-utils/rules/magic-option.scheme.ts +1 -0
- package/src/schematics/magic-utils/utils.d.ts +12 -12
- package/src/schematics/magic-utils/utils.js +117 -117
- package/src/schematics/magic-utils/utils.js.map +1 -1
- package/src/schematics/mg-Install-prerequisites/index.d.ts +3 -3
- package/src/schematics/mg-Install-prerequisites/index.js +25 -25
- package/src/schematics/mg-Install-prerequisites/index.js.map +1 -1
- package/src/schematics/mg-add/files/src/app/magic/lazy-loader.service.ts +2 -1
- package/src/schematics/mg-add/files/src/app/magic/magic.gen.lib.module.ts +19 -19
- package/src/schematics/mg-add/files/src/magic-styles.css +2 -2
- package/src/schematics/mg-add/index.d.ts +3 -3
- package/src/schematics/mg-add/index.js +151 -151
- package/src/schematics/mg-add/index.js.map +1 -1
- package/src/schematics/mg-add/utils/add-declaration-to-root-module.d.ts +2 -2
- package/src/schematics/mg-add/utils/add-declaration-to-root-module.js +11 -11
- package/src/schematics/mg-add-tasks/index.d.ts +3 -3
- package/src/schematics/mg-add-tasks/index.js +30 -30
- package/src/schematics/mg-delete-files/index.d.ts +3 -3
- package/src/schematics/mg-delete-files/index.js +13 -13
- package/src/schematics/mg-gen-module/index.d.ts +3 -3
- package/src/schematics/mg-gen-module/index.js +15 -15
- package/src/schematics/mg-generate/index.d.ts +3 -3
- package/src/schematics/mg-generate/index.js +13 -13
- package/src/schematics/mg-generate-component/index.d.ts +3 -3
- package/src/schematics/mg-generate-component/index.js +35 -35
- package/src/schematics/mg-generate-component/index.js.map +1 -1
- package/src/schematics/mg-generate-component/schema.json +6 -0
- package/src/schematics/mg-install/index.d.ts +3 -3
- package/src/schematics/mg-install/index.js +30 -30
- package/src/schematics/mg-install/index.js.map +1 -1
- package/src/schematics/mg-routes/index.d.ts +6 -6
- package/src/schematics/mg-routes/index.js +63 -63
- package/src/schematics/mg-routes/index.js.map +1 -1
- package/src/schematics/mg-single-control/index.d.ts +3 -3
- package/src/schematics/mg-single-control/index.js +29 -29
- package/src/schematics/utils/ast.d.ts +21 -21
- package/src/schematics/utils/ast.js +91 -91
- package/src/schematics/utils/ast.js.map +1 -1
- package/src/schematics/utils/ast.ts +1 -1
- package/src/schematics/utils/devkit-utils/ast-utils.d.ts +87 -87
- package/src/schematics/utils/devkit-utils/ast-utils.js +490 -490
- package/src/schematics/utils/devkit-utils/ast-utils.js.map +1 -1
- package/src/schematics/utils/devkit-utils/ast-utils_old.d.ts +68 -68
- package/src/schematics/utils/devkit-utils/ast-utils_old.js +420 -420
- package/src/schematics/utils/devkit-utils/ast-utils_old.js.map +1 -1
- package/src/schematics/utils/devkit-utils/change.d.ts +66 -66
- package/src/schematics/utils/devkit-utils/change.js +94 -94
- package/src/schematics/utils/devkit-utils/change.js.map +1 -1
- package/src/schematics/utils/devkit-utils/component.d.ts +2 -2
- package/src/schematics/utils/devkit-utils/component.js +97 -97
- package/src/schematics/utils/devkit-utils/component.js.map +1 -1
- package/src/schematics/utils/devkit-utils/config.d.ts +78 -78
- package/src/schematics/utils/devkit-utils/config.js +52 -52
- package/src/schematics/utils/devkit-utils/config.js.map +1 -1
- package/src/schematics/utils/devkit-utils/find-module.d.ts +28 -28
- package/src/schematics/utils/devkit-utils/find-module.js +93 -93
- package/src/schematics/utils/devkit-utils/find-module.js.map +1 -1
- package/src/schematics/utils/devkit-utils/ng-ast-utils.d.ts +5 -5
- package/src/schematics/utils/devkit-utils/ng-ast-utils.js +74 -74
- package/src/schematics/utils/devkit-utils/ng-ast-utils.js.map +1 -1
- package/src/schematics/utils/devkit-utils/parse-name.d.ts +13 -13
- package/src/schematics/utils/devkit-utils/parse-name.js +20 -20
- package/src/schematics/utils/devkit-utils/route-utils.d.ts +20 -20
- package/src/schematics/utils/devkit-utils/route-utils.js +134 -134
- package/src/schematics/utils/devkit-utils/route-utils.js.map +1 -1
- package/src/schematics/utils/devkit-utils/validation.d.ts +1 -1
- package/src/schematics/utils/devkit-utils/validation.js +18 -18
- package/src/schematics/utils/devkit-utils/validation.js.map +1 -1
- package/src/schematics/utils/html.d.ts +18 -18
- package/src/schematics/utils/html.js +60 -60
- package/src/schematics/utils/html.js.map +1 -1
- package/src/schematics/utils/lib-versions.d.ts +3 -3
- package/src/schematics/utils/lib-versions.js +6 -6
- package/src/schematics/utils/package.d.ts +5 -5
- package/src/schematics/utils/package.js +21 -21
- package/src/schematics/utils/package.js.map +1 -1
- package/src/schematics/utils/testing.d.ts +5 -5
- package/src/schematics/utils/testing.js +27 -27
- package/src/schematics/utils/testing.js.map +1 -1
- package/src/schematics/utils/testing.ts +2 -2
- package/src/types/enums/Enums.d.ts +1646 -1646
- package/src/types/enums/Enums.js +1862 -1862
- package/src/types/enums/Enums.js.map +1 -1
- package/src/types/enums/generated-file-types.enum.d.ts +6 -6
- package/src/types/enums/generated-file-types.enum.js +10 -10
- package/src/types/enums/generated-file-types.enum.js.map +1 -1
- package/src/types/enums/horizontal-alignments.enum.d.ts +5 -5
- package/src/types/enums/horizontal-alignments.enum.js +9 -9
- package/src/types/enums/horizontal-alignments.enum.js.map +1 -1
- package/src/types/enums/themes.enum.d.ts +6 -6
- package/src/types/enums/themes.enum.js +10 -10
- package/src/types/enums/themes.enum.js.map +1 -1
- package/src/types/index.d.ts +7 -7
- package/src/types/index.js +10 -10
- package/src/types/interfaces/app.d.ts +53 -53
- package/src/types/interfaces/app.js +9 -9
- package/src/types/interfaces/control.d.ts +82 -82
- package/src/types/interfaces/control.js +2 -2
- package/src/types/interfaces/env.interface.d.ts +19 -19
- package/src/types/interfaces/env.interface.js +10 -10
- package/src/types/interfaces/template.config.d.ts +8 -8
- package/src/types/interfaces/template.config.js +2 -2
- package/templates/themes/basicHTML/checkbox.ejs +1 -1
- package/templates/themes/basicHTML/edit.ejs +2 -1
- package/templates/themes/basicHTML/label.ejs +1 -1
- package/templates/themes/material/checkbox.ejs +1 -1
- package/templates/themes/material/listbox.ejs +0 -1
- package/templates/themes/table/HTMLTable/columnHeader.ejs +3 -1
- package/templates/themes/table/grid/column.ejs +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-list.rule.js","sourceRoot":"","sources":["component-list.rule.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ts from 'typescript';\r\nimport * as EJS from \"ejs\";\r\nimport {chain, Rule, SchematicContext, SchematicsException, Tree} from \"@angular-devkit/schematics\";\r\nimport {env, GEN_COMPONENTS_ARRAY, GEN_COMPONENTS_HASH, GEN_LAZY_LOAD_MODULES_ARRAY} from \"../env\";\r\nimport {MagicOptionScheme} from \"./magic-option.scheme\";\r\nimport {GeneratedFileTypes, TemplateConfig, View, WindowType} from \"../../../types\";\r\nimport {generate} from \"./generate.rule\";\r\nimport {getSourceFile} from \"../../utils/ast\";\r\nimport {insertImport, insertImport2} from \"../../utils/devkit-utils/route-utils\";\r\nimport {InsertChange} from \"../../utils/devkit-utils/change\";\r\nimport {findNodes} from \"../../utils/devkit-utils/ast-utils\";\r\nimport {LogLn} from \"../Util\";\r\nimport {isNullOrUndefined} from \"util\";\r\n\r\n\r\nlet existCmpListSet: Set<string>;\r\nlet newCmpListSet = new Set();\r\nlet toAddImports: boolean = true;\r\nlet orgPreventLog = env.prevent_log;\r\n\r\n\r\nexport function componentlistGen(options: MagicOptionScheme, module_name: string, loadOnDemand: boolean): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n LogLn(`[>] Step 4: components-list.`);\r\n return chain([\r\n addNewCmpsToCmpListOrGenAll(options, module_name),\r\n addCmpsImportsToCmpList(options, module_name),\r\n createLazyModuleMap(options, module_name),\r\n addLazyLoadComponentList(options, module_name, loadOnDemand),\r\n addLazyModuleToMagicGen(options),\r\n addImportForLazyModule(options)\r\n ])(host, context);\r\n }\r\n}\r\n\r\n// create the lazy load map if it does not exist\r\nfunction createLazyModuleMap(options: MagicOptionScheme, module_name: string) {\r\n return (host: Tree, context: SchematicContext) => {\r\n const cmpListPath = env.metadata.paths.componentListPath(\"\");\r\n env.prevent_log = false;\r\n const source = host.read(cmpListPath).toString(\"utf-8\")\r\n\r\n const LazyModuleArrayStart = 'export const ' + GEN_LAZY_LOAD_MODULES_ARRAY + ' = {';\r\n const LazyMOduleArrayEnd = '};';\r\n // create lazy load component array if it does not exist\r\n if (source.indexOf(LazyModuleArrayStart) < 0) {\r\n LogLn(`[>] Creating LazyLoadModulesMap `);\r\n // add the code of creating map in file\r\n host.overwrite(cmpListPath, source + \"\\r\\n\" + LazyModuleArrayStart + LazyMOduleArrayEnd);\r\n }\r\n\r\n }\r\n}\r\n\r\n// add the lazy load components\r\nfunction addLazyLoadComponentList(options: MagicOptionScheme, module_name: string, loadOnDemand: boolean): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n if (loadOnDemand) {\r\n let lazyLoadedComponents: Array<View> = new Array<View>();\r\n const cmpListPath = env.metadata.paths.componentListPath(\"\");\r\n\r\n const source = host.read(cmpListPath);\r\n if (source) {\r\n let cmpListSource = getSourceFile(host, cmpListPath);\r\n\r\n let cmpListTs = getLazyLoadCompoenentsInfo(cmpListSource, GEN_LAZY_LOAD_MODULES_ARRAY);\r\n let sourceStep1 = host.read(cmpListPath).toString(\"utf-8\");\r\n\r\n env.app.views.forEach(view => {\r\n if( isNullOrUndefined(cmpListTs.components) || !(cmpListTs.components.includes(view.props.component_uniquename))) {\r\n lazyLoadedComponents.push(view); // if component does not exist add it to list\r\n LogLn(`[>] Add ${view.props.component_uniquename} component to LazyLoadModulesMap`, );\r\n }\r\n });\r\n\r\n // add components to map\r\n if (lazyLoadedComponents.length > 0) {\r\n let sourceStep2 = addComponentsToLazyLoad(sourceStep1, cmpListTs, lazyLoadedComponents, module_name);\r\n host.overwrite(cmpListPath, sourceStep2);\r\n }\r\n }\r\n env.prevent_log = orgPreventLog;\r\n }\r\n return host;\r\n }\r\n}\r\n\r\nfunction addImportForLazyModule(options) {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let genLibPath= env.metadata.paths.rootMagicGenFolder + '/magic/magic.gen.lib.module.ts';\r\n const recorder = tree.beginUpdate(genLibPath);\r\n let genLibSource = getSourceFile(tree, genLibPath);\r\n\r\n const importChange = insertImport(genLibSource, genLibPath, GEN_LAZY_LOAD_MODULES_ARRAY, './component-list.g') as InsertChange;\r\n if (importChange.toAdd) {\r\n recorder.insertLeft(importChange.pos, importChange.toAdd);\r\n }\r\n tree.commitUpdate(recorder);\r\n }\r\n}\r\n\r\n// add the lazy load module to magic.gen.lib\r\nfunction addLazyModuleToMagicGen(options) {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let origModuleFileName= env.metadata.paths.rootMagicGenFolder + '/magic/magic.gen.lib.module.ts';\r\n if(!tree.exists(origModuleFileName)){\r\n LogLn(` [>Error] File cannot be overwrite, The file is not exist !!! : ${origModuleFileName}`);\r\n }\r\n const text = tree.read(origModuleFileName);\r\n\r\n if (text === null) {\r\n throw new SchematicsException(`File ${origModuleFileName} does not exist.`);\r\n }\r\n let sourceText = text.toString('utf-8');\r\n const lazyModuleStatement = '\\r\\n componentList.lazyLoadModulesMap = '+ GEN_LAZY_LOAD_MODULES_ARRAY+';';\r\n if (sourceText !== \"\" && sourceText.indexOf(lazyModuleStatement)== -1) {\r\n let genLibSource = getSourceFile(tree, origModuleFileName);\r\n let newLazyModuleText: string = sourceText.replace(lazyModuleStatement, '').trim();\r\n const constNode: ts.FunctionLikeDeclarationBase = findNodes(genLibSource, ts.SyntaxKind.Constructor)[0] as ts.FunctionLikeDeclarationBase;\r\n\r\n let lastStatementEnd = (<ts.Block>constNode.body).statements.end;\r\n\r\n const prefix = sourceText.substring(0, lastStatementEnd);\r\n const suffix = sourceText.substring(lastStatementEnd );\r\n tree.overwrite(origModuleFileName, `${prefix} ${lazyModuleStatement} ${suffix}` );\r\n\r\n }\r\n return tree;\r\n }\r\n}\r\n\r\n/*\r\n* Add new component to component-list.g file (Array and Hash).\r\n* If the file not exist new file will create by componentListGenIfNotExist function.\r\n* */\r\nfunction addNewCmpsToCmpListOrGenAll(options: MagicOptionScheme, module_name: string): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n const metadata = env.metadata;\r\n const cmpsToGen = env.app.views;\r\n const cmpListPath = env.metadata.paths.componentListPath(module_name);\r\n const source = host.read(cmpListPath);\r\n if (source) {\r\n let cmpToGenNum = 0;\r\n let sourceStep1 = source.toString(\"utf-8\");\r\n let cmpListSource = getSourceFile(host, cmpListPath);\r\n\r\n let cmpListTs = getComponentsArrayInfo(cmpListSource, GEN_COMPONENTS_ARRAY);\r\n existCmpListSet = new Set(cmpListTs.components);\r\n newCmpListSet = new Set<string>();\r\n\r\n // merge between components in the file and new component to gen\r\n cmpsToGen.forEach(newCmpGen => {\r\n if (!existCmpListSet.has(newCmpGen.props.component_uniquename)) {\r\n newCmpListSet.add(newCmpGen.props.component_uniquename);\r\n }\r\n });\r\n const newCmpListArray: string[] = <string[]>Array.from(newCmpListSet);\r\n if (newCmpListArray && newCmpListArray.length > 0) {\r\n let sourceStep2 = addComponentsToArray(sourceStep1, cmpListTs, newCmpListArray);\r\n\r\n let cmpListHashTs = getComponentsHashInfo(cmpListSource, GEN_COMPONENTS_HASH);\r\n let sourceStep3 = addComponentsToHash(sourceStep2, cmpListHashTs, newCmpListArray);\r\n\r\n LogLn(` Total old components: ${existCmpListSet.size}, added components: ${newCmpListSet.size}. `);\r\n\r\n host.overwrite(cmpListPath, sourceStep3);\r\n }\r\n } else {\r\n // If component-list.g.ts doesn't exist.\r\n toAddImports = false; // We generate the entire file with imports.\r\n return componentListGenIfNotExist(options)(host, context);\r\n }\r\n\r\n return host;\r\n }\r\n}\r\n\r\n/*\r\n* Create new component-list.g file.\r\n* */\r\nfunction componentListGenIfNotExist(options: MagicOptionScheme): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n\r\n console.log(\"creating component-list\");\r\n const metadata = env.metadata;\r\n const cmpList = new Set<string>();\r\n const data: any = {\r\n app: env.app,\r\n cmpList: env.app.views\r\n };\r\n\r\n const componentFile: TemplateConfig = {\r\n template: `./templates/angular/src/app/component-list.g.ts`,\r\n name: 'component-list.g.ts',\r\n destination: metadata.paths.magicGenFolderPath,\r\n type: GeneratedFileTypes.TS,\r\n data: data\r\n };\r\n\r\n return chain([\r\n generate(componentFile, options)\r\n ])(host, context);\r\n }\r\n}\r\n\r\n/*\r\n* Add new imports to component-list.g file.\r\n* */\r\nfunction addCmpsImportsToCmpList(options: MagicOptionScheme, module_name: string): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n if (toAddImports) {\r\n const cmpsToGen = env.app.views;\r\n let cmpListSource = getSourceFile(host, env.metadata.paths.componentListPath(module_name));\r\n\r\n const recorder = host.beginUpdate(env.metadata.paths.componentListPath(module_name));\r\n\r\n cmpsToGen.forEach(cmp => {\r\n let name = cmp.props.id;\r\n let uniqueName = cmp.props.component_uniquename;\r\n let cmpPath = cmp.props.component_path;\r\n\r\n if (newCmpListSet.has(uniqueName)) {\r\n const importsChange =\r\n insertImport2(\r\n cmpListSource,\r\n env.metadata.paths.componentListPath(module_name),\r\n name,\r\n uniqueName,\r\n `./${cmpPath}${name}.component`\r\n ) as InsertChange;\r\n\r\n if (importsChange.toAdd) {\r\n recorder.insertLeft(importsChange.pos, importsChange.toAdd);\r\n }\r\n }\r\n });\r\n\r\n host.commitUpdate(recorder);\r\n }\r\n return host;\r\n }\r\n}\r\n\r\n\r\n// //-------------------------------------------------------------------------------------------------\r\n// //\r\n// //-------------------------------------------------------------------------------------------------\r\n// function checkIfTheComponentNeedToBeRemoveFromGeneralMagicModule\r\n// (options: MagicOptionScheme, modulePath:string, moduleName:string, srcModuleName:string) : Rule {\r\n// return (tree: Tree , context : SchematicContext)=>{\r\n// const project = env.project;\r\n//\r\n// if (env.metadata.paths.generateCompForModuleName != \"\") {\r\n// LogLn(` [>] checking component name [${moduleName}]\r\n// from ${srcModuleName}]\r\n// To App Module : [${modulePath}]`);\r\n// const moduleSourceFile = getSourceFile(tree, modulePath);\r\n// if (isImported(moduleSourceFile, moduleName, srcModuleName)) {\r\n//\r\n// }\r\n// }\r\n//\r\n// return tree;\r\n// }\r\n// }\r\n\r\n/**************************\r\n * Helper Functions\r\n ***************************/\r\n\r\ninterface IComponentListParser {\r\n components: string[];\r\n endPos: number;\r\n isEmpty: boolean;\r\n}\r\n\r\nfunction getComponentsHashInfo(source: ts.SourceFile, variable: string): IComponentListParser {\r\n\r\n const rootNode = source;\r\n const cmpListVars: ts.Node[] = findNodes(rootNode, ts.SyntaxKind.VariableDeclaration);\r\n let endPos = -1;\r\n let isEmpty = true;\r\n\r\n let magicGenCmpsInfo = cmpListVars.filter(\r\n (node: any) => node.name.escapedText === variable);\r\n\r\n if (magicGenCmpsInfo && magicGenCmpsInfo.length > 0) {\r\n const firstPunctuation: ts.Node[] = findNodes(magicGenCmpsInfo[0], ts.SyntaxKind.FirstPunctuation);\r\n if (!(firstPunctuation && firstPunctuation.length > 0)) {\r\n throw new Error('magicGenCmpsHash variable has no open bracket ( { )');\r\n }\r\n endPos = firstPunctuation[0].end;\r\n const propertyAssignment = findNodes(firstPunctuation[0].parent, ts.SyntaxKind.PropertyAssignment);\r\n if (propertyAssignment && propertyAssignment.length > 0) {\r\n isEmpty = false;\r\n }\r\n }\r\n return {\r\n components: null,\r\n endPos,\r\n isEmpty\r\n };\r\n}\r\n\r\nfunction getComponentsArrayInfo(source: ts.SourceFile, variable: string): IComponentListParser {\r\n\r\n const rootNode = source;\r\n const cmpListVars: ts.Node[] = findNodes(rootNode, ts.SyntaxKind.VariableDeclaration);\r\n let endPos = -1;\r\n let cmpListArray;\r\n let isEmpty = true;\r\n let magicGenCmpsInfo = cmpListVars.filter(\r\n (node: any) => node.name.escapedText === variable);\r\n\r\n if (magicGenCmpsInfo && magicGenCmpsInfo.length > 0) {\r\n const openBracketToken: ts.Node[] = findNodes(magicGenCmpsInfo[0], ts.SyntaxKind.OpenBracketToken);\r\n if (!(openBracketToken && openBracketToken.length > 0)) {\r\n throw new Error('magicGenComponents variable has no open bracket ([)');\r\n }\r\n endPos = openBracketToken[0].end;\r\n const identifiers = findNodes(openBracketToken[0].parent, ts.SyntaxKind.Identifier);\r\n\r\n\r\n // Array with items\r\n if (identifiers && identifiers.length > 0) {\r\n isEmpty = false;\r\n //endPos = identifiers[identifiers.length - 1].end;\r\n cmpListArray = identifiers.map((i: any) => i.escapedText) as string[];\r\n }\r\n // Array with no items\r\n // else{\r\n // endPos = openBracketToken[0].end;\r\n // }\r\n }\r\n return {\r\n components: cmpListArray,\r\n endPos,\r\n isEmpty\r\n };\r\n}\r\n\r\n\r\nfunction getLazyLoadCompoenentsInfo(source: ts.SourceFile, variable: string): IComponentListParser {\r\n\r\n const cmpListVars: ts.Node[] = findNodes(source, ts.SyntaxKind.VariableDeclaration);\r\n let endPos = -1;\r\n let cmpListArray;\r\n let isEmpty = true;\r\n let magicGenCmpsInfo = cmpListVars.filter(\r\n (node: any) => node.name.escapedText === variable);\r\n\r\n if (magicGenCmpsInfo && magicGenCmpsInfo.length > 0) {\r\n const openBracketToken: ts.Node[] = findNodes(magicGenCmpsInfo[0], ts.SyntaxKind.FirstPunctuation);\r\n if (!(openBracketToken && openBracketToken.length > 0)) {\r\n throw new Error('FirstPunctuation variable has no open bracket ([)');\r\n }\r\n endPos = openBracketToken[0].end;\r\n const identifiers = findNodes(openBracketToken[0].parent, ts.SyntaxKind.PropertyAssignment);\r\n const identifiers1 = findNodes(openBracketToken[0].parent, ts.SyntaxKind.Identifier);\r\n\r\n // Array with items\r\n if (identifiers && identifiers.length > 0) {\r\n isEmpty = false;\r\n cmpListArray = identifiers.map((i: any) => i.name.escapedText ).filter(id => id !== \"moduleName\" && id !== \"modulePath\");\r\n }\r\n }\r\n return {\r\n components: cmpListArray,\r\n endPos,\r\n isEmpty\r\n };\r\n}\r\n\r\nfunction addComponentsToArray(source: string, info: IComponentListParser, cmpsToAdd: string[]): string {\r\n const prefix = source.substring(0, info.endPos);\r\n const suffix = source.substring(info.endPos);\r\n let toAdd = `${cmpsToAdd}`;\r\n toAdd = `${toAdd.replace(/,/g, \",\\n\\t\")}`;\r\n\r\n return info.isEmpty ?\r\n`${prefix}\r\n\\t${toAdd} ${suffix}` :\r\n`${prefix}\r\n\\t${toAdd},${suffix}` ;\r\n}\r\n\r\nfunction addComponentsToHash(source: string, info: IComponentListParser, cmpsToAdd: string[]): string {\r\n const prefix = source.substring(0, info.endPos);\r\n const suffix = source.substring(info.endPos);\r\n const cmpHashStr = EJS.render(`\r\n <% components.forEach(componentUniqueName => { %>\r\n <%= componentUniqueName %>:<%- componentUniqueName %>,\r\n <%})%>`, {components: cmpsToAdd});\r\n let toAdd = `${cmpHashStr.replace(/\\n/g, '').replace(/,/g, \",\\n\")}`;\r\n // update source\r\n return `${prefix} ${toAdd} ${suffix}`;\r\n /*return info.isEmpty ?\r\n `${prefix} ${delLastComma(cmpHashStr)} ${suffix}` :\r\n `${prefix} ${delLastComma(cmpHashStr)}, ${suffix}` ;*/\r\n}\r\n\r\n// add the lazy loaded components to map\r\nfunction addComponentsToLazyLoad(source: string, info: IComponentListParser, cmpsToAdd: View[], module_name: string): string {\r\n const prefix = source.substring(0, info.endPos);\r\n const suffix = source.substring(info.endPos);\r\n\r\n // get the module path\r\n let currentModulePath = env.metadata.paths.magicGenLibModulePath(module_name);\r\n\r\n const cmpHashStr = EJS.render(`\r\n<%{components.forEach(view =>{-%>\r\n<%=view.props.component_uniquename %> : { moduleName : 'Magic<%=moduleName%>Module'},\r\n<%})}-%>`, {components: cmpsToAdd, moduleName: module_name, modulePath: currentModulePath});\r\n\r\n let toAdd = `${cmpHashStr.replace(/\\n/g, '').replace(/,/g, \",\\n\")}`;\r\n // update source\r\n return `${prefix} ${toAdd} ${suffix}`;\r\n}\r\n\r\nfunction delLastComma(source: string) {\r\n let index = source.lastIndexOf(',');\r\n return source.substring(0, index);\r\n}\r\n\r\n\r\n\r\n"]}
|
|
1
|
+
{"version":3,"file":"component-list.rule.js","sourceRoot":"","sources":["component-list.rule.ts"],"names":[],"mappings":"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","sourcesContent":["import * as ts from 'typescript';\r\nimport * as EJS from \"ejs\";\r\nimport {chain, Rule, SchematicContext, SchematicsException, Tree} from \"@angular-devkit/schematics\";\r\nimport {env, GEN_COMPONENTS_ARRAY, GEN_COMPONENTS_HASH, GEN_LAZY_LOAD_MODULES_ARRAY} from \"../env\";\r\nimport {MagicOptionScheme} from \"./magic-option.scheme\";\r\nimport {GeneratedFileTypes, TemplateConfig, View, WindowType} from \"../../../types\";\r\nimport {generate} from \"./generate.rule\";\r\nimport {getSourceFile} from \"../../utils/ast\";\r\nimport {insertImport, insertImport2} from \"../../utils/devkit-utils/route-utils\";\r\nimport {InsertChange} from \"../../utils/devkit-utils/change\";\r\nimport {findNodes} from \"../../utils/devkit-utils/ast-utils\";\r\nimport {LogLn} from \"../Util\";\r\nimport {isNullOrUndefined} from \"util\";\r\n\r\n\r\nlet existCmpListSet: Set<string>;\r\nlet newCmpListSet = new Set();\r\nlet toAddImports: boolean = true;\r\nlet orgPreventLog = env.prevent_log;\r\n\r\n\r\nexport function componentlistGen(options: MagicOptionScheme, module_name: string, loadOnDemand: boolean): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n LogLn(`[>] Step 4: components-list.`);\r\n return chain([\r\n addNewCmpsToCmpListOrGenAll(options, module_name),\r\n addCmpsImportsToCmpList(options, module_name),\r\n createLazyModuleMap(options, module_name),\r\n addLazyLoadComponentList(options, module_name, loadOnDemand),\r\n addLazyModuleToMagicGen(options),\r\n addImportForLazyModule(options)\r\n ])(host, context);\r\n }\r\n}\r\n\r\n// create the lazy load map if it does not exist\r\nfunction createLazyModuleMap(options: MagicOptionScheme, module_name: string) {\r\n return (host: Tree, context: SchematicContext) => {\r\n const cmpListPath = env.metadata.paths.componentListPath(\"\");\r\n env.prevent_log = false;\r\n const source = host.read(cmpListPath).toString(\"utf-8\")\r\n\r\n const LazyModuleArrayStart = 'export const ' + GEN_LAZY_LOAD_MODULES_ARRAY + ' = {';\r\n const LazyMOduleArrayEnd = '};';\r\n // create lazy load component array if it does not exist\r\n if (source.indexOf(LazyModuleArrayStart) < 0) {\r\n LogLn(`[>] Creating LazyLoadModulesMap `);\r\n // add the code of creating map in file\r\n host.overwrite(cmpListPath, source + \"\\r\\n\" + LazyModuleArrayStart + LazyMOduleArrayEnd);\r\n }\r\n\r\n }\r\n}\r\n\r\n// add the lazy load components\r\nfunction addLazyLoadComponentList(options: MagicOptionScheme, module_name: string, loadOnDemand: boolean): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n if (loadOnDemand) {\r\n let lazyLoadedComponents: Array<View> = new Array<View>();\r\n const cmpListPath = env.metadata.paths.componentListPath(\"\");\r\n\r\n const source = host.read(cmpListPath);\r\n if (source) {\r\n let cmpListSource = getSourceFile(host, cmpListPath);\r\n\r\n let cmpListTs = getLazyLoadCompoenentsInfo(cmpListSource, GEN_LAZY_LOAD_MODULES_ARRAY);\r\n let sourceStep1 = host.read(cmpListPath).toString(\"utf-8\");\r\n\r\n env.app.views.forEach(view => {\r\n if( isNullOrUndefined(cmpListTs.components) || !(cmpListTs.components.includes(view.props.component_uniquename))) {\r\n lazyLoadedComponents.push(view); // if component does not exist add it to list\r\n LogLn(`[>] Add ${view.props.component_uniquename} component to LazyLoadModulesMap`, );\r\n }\r\n });\r\n\r\n // add components to map\r\n if (lazyLoadedComponents.length > 0) {\r\n let sourceStep2 = addComponentsToLazyLoad(sourceStep1, cmpListTs, lazyLoadedComponents, module_name);\r\n host.overwrite(cmpListPath, sourceStep2);\r\n }\r\n }\r\n env.prevent_log = orgPreventLog;\r\n }\r\n return host;\r\n }\r\n}\r\n\r\nfunction addImportForLazyModule(options) {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let genLibPath= env.metadata.paths.rootMagicGenFolder + '/magic/magic.gen.lib.module.ts';\r\n const recorder = tree.beginUpdate(genLibPath);\r\n let genLibSource = getSourceFile(tree, genLibPath);\r\n\r\n const importChange = insertImport(genLibSource, genLibPath, GEN_LAZY_LOAD_MODULES_ARRAY, './component-list.g') as InsertChange;\r\n if (importChange.toAdd) {\r\n recorder.insertLeft(importChange.pos, importChange.toAdd);\r\n }\r\n tree.commitUpdate(recorder);\r\n }\r\n}\r\n\r\n// add the lazy load module to magic.gen.lib\r\nfunction addLazyModuleToMagicGen(options) {\r\n return (tree: Tree, context: SchematicContext) => {\r\n\r\n let origModuleFileName= env.metadata.paths.rootMagicGenFolder + '/magic/magic.gen.lib.module.ts';\r\n if(!tree.exists(origModuleFileName)){\r\n LogLn(` [>Error] File cannot be overwrite, The file is not exist !!! : ${origModuleFileName}`);\r\n }\r\n const text = tree.read(origModuleFileName);\r\n\r\n if (text === null) {\r\n throw new SchematicsException(`File ${origModuleFileName} does not exist.`);\r\n }\r\n let sourceText = text.toString('utf-8');\r\n const lazyModuleStatement = '\\r\\n componentList.lazyLoadModulesMap = '+ GEN_LAZY_LOAD_MODULES_ARRAY+';';\r\n if (sourceText !== \"\" && sourceText.indexOf(lazyModuleStatement)== -1) {\r\n let genLibSource = getSourceFile(tree, origModuleFileName);\r\n let newLazyModuleText: string = sourceText.replace(lazyModuleStatement, '').trim();\r\n const constNode: ts.FunctionLikeDeclarationBase = findNodes(genLibSource, ts.SyntaxKind.Constructor)[0] as ts.FunctionLikeDeclarationBase;\r\n\r\n let lastStatementEnd = (<ts.Block>constNode.body).statements.end;\r\n\r\n const prefix = sourceText.substring(0, lastStatementEnd);\r\n const suffix = sourceText.substring(lastStatementEnd );\r\n tree.overwrite(origModuleFileName, `${prefix} ${lazyModuleStatement} ${suffix}` );\r\n\r\n }\r\n return tree;\r\n }\r\n}\r\n\r\n/*\r\n* Add new component to component-list.g file (Array and Hash).\r\n* If the file not exist new file will create by componentListGenIfNotExist function.\r\n* */\r\nfunction addNewCmpsToCmpListOrGenAll(options: MagicOptionScheme, module_name: string): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n const metadata = env.metadata;\r\n const cmpsToGen = env.app.views;\r\n const cmpListPath = env.metadata.paths.componentListPath(module_name);\r\n const source = host.read(cmpListPath);\r\n if (source) {\r\n let cmpToGenNum = 0;\r\n let sourceStep1 = source.toString(\"utf-8\");\r\n let cmpListSource = getSourceFile(host, cmpListPath);\r\n\r\n let cmpListTs = getComponentsArrayInfo(cmpListSource, GEN_COMPONENTS_ARRAY);\r\n existCmpListSet = new Set(cmpListTs.components);\r\n newCmpListSet = new Set<string>();\r\n\r\n // merge between components in the file and new component to gen\r\n cmpsToGen.forEach(newCmpGen => {\r\n if (!existCmpListSet.has(newCmpGen.props.component_uniquename)) {\r\n newCmpListSet.add(newCmpGen.props.component_uniquename);\r\n }\r\n });\r\n const newCmpListArray: string[] = <string[]>Array.from(newCmpListSet);\r\n if (newCmpListArray && newCmpListArray.length > 0) {\r\n let sourceStep2 = addComponentsToArray(sourceStep1, cmpListTs, newCmpListArray);\r\n\r\n let cmpListHashTs = getComponentsHashInfo(cmpListSource, GEN_COMPONENTS_HASH);\r\n let sourceStep3 = addComponentsToHash(sourceStep2, cmpListHashTs, newCmpListArray);\r\n\r\n LogLn(` Total old components: ${existCmpListSet.size}, added components: ${newCmpListSet.size}. `);\r\n\r\n host.overwrite(cmpListPath, sourceStep3);\r\n }\r\n } else {\r\n // If component-list.g.ts doesn't exist.\r\n toAddImports = false; // We generate the entire file with imports.\r\n return componentListGenIfNotExist(options)(host, context);\r\n }\r\n\r\n return host;\r\n }\r\n}\r\n\r\n/*\r\n* Create new component-list.g file.\r\n* */\r\nfunction componentListGenIfNotExist(options: MagicOptionScheme): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n\r\n console.log(\"creating component-list\");\r\n const metadata = env.metadata;\r\n const cmpList = new Set<string>();\r\n const data: any = {\r\n app: env.app,\r\n cmpList: env.app.views\r\n };\r\n\r\n const componentFile: TemplateConfig = {\r\n template: `./templates/angular/src/app/component-list.g.ts`,\r\n name: 'component-list.g.ts',\r\n destination: metadata.paths.magicGenFolderPath,\r\n type: GeneratedFileTypes.TS,\r\n data: data\r\n };\r\n\r\n return chain([\r\n generate(componentFile, options)\r\n ])(host, context);\r\n }\r\n}\r\n\r\n/*\r\n* Add new imports to component-list.g file.\r\n* */\r\nfunction addCmpsImportsToCmpList(options: MagicOptionScheme, module_name: string): Rule {\r\n return (host: Tree, context: SchematicContext) => {\r\n if (toAddImports) {\r\n const cmpsToGen = env.app.views;\r\n let cmpListSource = getSourceFile(host, env.metadata.paths.componentListPath(module_name));\r\n\r\n const recorder = host.beginUpdate(env.metadata.paths.componentListPath(module_name));\r\n\r\n cmpsToGen.forEach(cmp => {\r\n let name = cmp.props.id;\r\n let uniqueName = cmp.props.component_uniquename;\r\n let cmpPath = cmp.props.component_path;\r\n\r\n if (newCmpListSet.has(uniqueName)) {\r\n const importsChange =\r\n insertImport2(\r\n cmpListSource,\r\n env.metadata.paths.componentListPath(module_name),\r\n name,\r\n uniqueName,\r\n `./${cmpPath}${name}.component`\r\n ) as InsertChange;\r\n\r\n if (importsChange.toAdd) {\r\n recorder.insertLeft(importsChange.pos, importsChange.toAdd);\r\n }\r\n }\r\n });\r\n\r\n host.commitUpdate(recorder);\r\n }\r\n return host;\r\n }\r\n}\r\n\r\n\r\n// //-------------------------------------------------------------------------------------------------\r\n// //\r\n// //-------------------------------------------------------------------------------------------------\r\n// function checkIfTheComponentNeedToBeRemoveFromGeneralMagicModule\r\n// (options: MagicOptionScheme, modulePath:string, moduleName:string, srcModuleName:string) : Rule {\r\n// return (tree: Tree , context : SchematicContext)=>{\r\n// const project = env.project;\r\n//\r\n// if (env.metadata.paths.generateCompForModuleName != \"\") {\r\n// LogLn(` [>] checking component name [${moduleName}]\r\n// from ${srcModuleName}]\r\n// To App Module : [${modulePath}]`);\r\n// const moduleSourceFile = getSourceFile(tree, modulePath);\r\n// if (isImported(moduleSourceFile, moduleName, srcModuleName)) {\r\n//\r\n// }\r\n// }\r\n//\r\n// return tree;\r\n// }\r\n// }\r\n\r\n/**************************\r\n * Helper Functions\r\n ***************************/\r\n\r\ninterface IComponentListParser {\r\n components: string[];\r\n endPos: number;\r\n isEmpty: boolean;\r\n}\r\n\r\nfunction getComponentsHashInfo(source: ts.SourceFile, variable: string): IComponentListParser {\r\n\r\n const rootNode = source;\r\n const cmpListVars: ts.Node[] = findNodes(rootNode, ts.SyntaxKind.VariableDeclaration);\r\n let endPos = -1;\r\n let isEmpty = true;\r\n\r\n let magicGenCmpsInfo = cmpListVars.filter(\r\n (node: any) => node.name.escapedText === variable);\r\n\r\n if (magicGenCmpsInfo && magicGenCmpsInfo.length > 0) {\r\n const firstPunctuation: ts.Node[] = findNodes(magicGenCmpsInfo[0], ts.SyntaxKind.FirstPunctuation);\r\n if (!(firstPunctuation && firstPunctuation.length > 0)) {\r\n throw new Error('magicGenCmpsHash variable has no open bracket ( { )');\r\n }\r\n endPos = firstPunctuation[0].end;\r\n const propertyAssignment = findNodes(firstPunctuation[0].parent, ts.SyntaxKind.PropertyAssignment);\r\n if (propertyAssignment && propertyAssignment.length > 0) {\r\n isEmpty = false;\r\n }\r\n }\r\n return {\r\n components: null,\r\n endPos,\r\n isEmpty\r\n };\r\n}\r\n\r\nfunction getComponentsArrayInfo(source: ts.SourceFile, variable: string): IComponentListParser {\r\n\r\n const rootNode = source;\r\n const cmpListVars: ts.Node[] = findNodes(rootNode, ts.SyntaxKind.VariableDeclaration);\r\n let endPos = -1;\r\n let cmpListArray;\r\n let isEmpty = true;\r\n let magicGenCmpsInfo = cmpListVars.filter(\r\n (node: any) => node.name.escapedText === variable);\r\n\r\n if (magicGenCmpsInfo && magicGenCmpsInfo.length > 0) {\r\n const openBracketToken: ts.Node[] = findNodes(magicGenCmpsInfo[0], ts.SyntaxKind.OpenBracketToken);\r\n if (!(openBracketToken && openBracketToken.length > 0)) {\r\n throw new Error('magicGenComponents variable has no open bracket ([)');\r\n }\r\n endPos = openBracketToken[0].end;\r\n const identifiers = findNodes(openBracketToken[0].parent, ts.SyntaxKind.Identifier);\r\n\r\n\r\n // Array with items\r\n if (identifiers && identifiers.length > 0) {\r\n isEmpty = false;\r\n //endPos = identifiers[identifiers.length - 1].end;\r\n cmpListArray = identifiers.map((i: any) => i.escapedText) as string[];\r\n }\r\n // Array with no items\r\n // else{\r\n // endPos = openBracketToken[0].end;\r\n // }\r\n }\r\n return {\r\n components: cmpListArray,\r\n endPos,\r\n isEmpty\r\n };\r\n}\r\n\r\n\r\nfunction getLazyLoadCompoenentsInfo(source: ts.SourceFile, variable: string): IComponentListParser {\r\n\r\n const cmpListVars: ts.Node[] = findNodes(source, ts.SyntaxKind.VariableDeclaration);\r\n let endPos = -1;\r\n let cmpListArray;\r\n let isEmpty = true;\r\n let magicGenCmpsInfo = cmpListVars.filter(\r\n (node: any) => node.name.escapedText === variable);\r\n\r\n if (magicGenCmpsInfo && magicGenCmpsInfo.length > 0) {\r\n const openBracketToken: ts.Node[] = findNodes(magicGenCmpsInfo[0], ts.SyntaxKind.FirstPunctuation);\r\n if (!(openBracketToken && openBracketToken.length > 0)) {\r\n throw new Error('FirstPunctuation variable has no open bracket ([)');\r\n }\r\n endPos = openBracketToken[0].end;\r\n const identifiers = findNodes(openBracketToken[0].parent, ts.SyntaxKind.PropertyAssignment);\r\n const identifiers1 = findNodes(openBracketToken[0].parent, ts.SyntaxKind.Identifier);\r\n\r\n // Array with items\r\n if (identifiers && identifiers.length > 0) {\r\n isEmpty = false;\r\n cmpListArray = identifiers.map((i: any) => i.name.escapedText ).filter(id => id !== \"moduleName\" && id !== \"modulePath\");\r\n }\r\n }\r\n return {\r\n components: cmpListArray,\r\n endPos,\r\n isEmpty\r\n };\r\n}\r\n\r\nfunction addComponentsToArray(source: string, info: IComponentListParser, cmpsToAdd: string[]): string {\r\n const prefix = source.substring(0, info.endPos);\r\n const suffix = source.substring(info.endPos);\r\n let toAdd = `${cmpsToAdd}`;\r\n toAdd = `${toAdd.replace(/,/g, \",\\n\\t\")}`;\r\n\r\n return info.isEmpty ?\r\n`${prefix}\r\n\\t${toAdd} ${suffix}` :\r\n`${prefix}\r\n\\t${toAdd},${suffix}` ;\r\n}\r\n\r\nfunction addComponentsToHash(source: string, info: IComponentListParser, cmpsToAdd: string[]): string {\r\n const prefix = source.substring(0, info.endPos);\r\n const suffix = source.substring(info.endPos);\r\n const cmpHashStr = EJS.render(`\r\n <% components.forEach(componentUniqueName => { %>\r\n <%= componentUniqueName %>:<%- componentUniqueName %>,\r\n <%})%>`, {components: cmpsToAdd});\r\n let toAdd = `${cmpHashStr.replace(/\\n/g, '').replace(/,/g, \",\\n\")}`;\r\n // update source\r\n return `${prefix} ${toAdd} ${suffix}`;\r\n /*return info.isEmpty ?\r\n `${prefix} ${delLastComma(cmpHashStr)} ${suffix}` :\r\n `${prefix} ${delLastComma(cmpHashStr)}, ${suffix}` ;*/\r\n}\r\n\r\n// add the lazy loaded components to map\r\nfunction addComponentsToLazyLoad(source: string, info: IComponentListParser, cmpsToAdd: View[], module_name: string): string {\r\n const prefix = source.substring(0, info.endPos);\r\n const suffix = source.substring(info.endPos);\r\n\r\n // get the module path\r\n let currentModulePath = env.metadata.paths.magicGenLibModulePath(module_name);\r\n\r\n const cmpHashStr = EJS.render(`\r\n<%{components.forEach(view =>{-%>\r\n<%=view.props.component_uniquename %> : { moduleName : 'Magic<%=moduleName%>Module'},\r\n<%})}-%>`, {components: cmpsToAdd, moduleName: module_name, modulePath: currentModulePath});\r\n\r\n let toAdd = `${cmpHashStr.replace(/\\n/g, '').replace(/,/g, \",\\n\")}`;\r\n // update source\r\n return `${prefix} ${toAdd} ${suffix}`;\r\n}\r\n\r\nfunction delLastComma(source: string) {\r\n let index = source.lastIndexOf(',');\r\n return source.substring(0, index);\r\n}\r\n\r\n\r\n\r\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Rule } from "@angular-devkit/schematics";
|
|
2
|
-
import { GeneratedFileTypes, TemplateConfig } from "../../../types";
|
|
3
|
-
import { MagicOptionScheme } from "./magic-option.scheme";
|
|
4
|
-
export declare function createGenFuncs(output: string, type: GeneratedFileTypes): any;
|
|
5
|
-
export declare function generate(file: TemplateConfig, options: MagicOptionScheme): Rule;
|
|
1
|
+
import { Rule } from "@angular-devkit/schematics";
|
|
2
|
+
import { GeneratedFileTypes, TemplateConfig } from "../../../types";
|
|
3
|
+
import { MagicOptionScheme } from "./magic-option.scheme";
|
|
4
|
+
export declare function createGenFuncs(output: string, type: GeneratedFileTypes): any;
|
|
5
|
+
export declare function generate(file: TemplateConfig, options: MagicOptionScheme): Rule;
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generate = exports.createGenFuncs = void 0;
|
|
4
|
-
const EJS = require("ejs");
|
|
5
|
-
//import * as prettier from "prettier";
|
|
6
|
-
const jsbeautify = require("js-beautify");
|
|
7
|
-
const Util_1 = require("../Util");
|
|
8
|
-
const env_1 = require("../env");
|
|
9
|
-
const types_1 = require("../../../types");
|
|
10
|
-
function createGenFuncs(output, type) {
|
|
11
|
-
const htmlFn = jsbeautify.html.bind(this, output, {
|
|
12
|
-
"max_preserve_newlines": 0,
|
|
13
|
-
"wrap_line_length": 0,
|
|
14
|
-
"wrap_attributes": "force-expand-multiline",
|
|
15
|
-
"brace_style": 'collapse,preserve-inline'
|
|
16
|
-
});
|
|
17
|
-
const fnMap = {
|
|
18
|
-
[types_1.GeneratedFileTypes.HTML]: htmlFn,
|
|
19
|
-
//[GeneratedFileTypes.TS] : prettier.format.bind(this, output, prettierConfig),
|
|
20
|
-
[types_1.GeneratedFileTypes.TS]: jsbeautify.js.bind(this, output, { "brace_style": 'collapse,preserve-inline' }),
|
|
21
|
-
[types_1.GeneratedFileTypes.HELPER]: jsbeautify.js.bind(this, output, {}),
|
|
22
|
-
[types_1.GeneratedFileTypes.CSS]: jsbeautify.css.bind(this, output, {})
|
|
23
|
-
};
|
|
24
|
-
return fnMap[type]();
|
|
25
|
-
}
|
|
26
|
-
exports.createGenFuncs = createGenFuncs;
|
|
27
|
-
function generate(file, options) {
|
|
28
|
-
return (host, context) => {
|
|
29
|
-
EJS.renderFile(`${env_1.MAGIC_CLI_FOLDER}/${file.template}`, file.data, { "rmWhitespace": true }, (err, output) => {
|
|
30
|
-
if (err) {
|
|
31
|
-
(0, Util_1.logErr)(err);
|
|
32
|
-
return;
|
|
33
|
-
}
|
|
34
|
-
try {
|
|
35
|
-
//if(file.type != GeneratedFileTypes.TS) {
|
|
36
|
-
output = createGenFuncs(output, file.type);
|
|
37
|
-
//}
|
|
38
|
-
let path = `${file.destination}/${file.name}`;
|
|
39
|
-
if (host.exists(path)) {
|
|
40
|
-
host.overwrite(`${file.destination}/${file.name}`, output);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
host.create(`${file.destination}/${file.name}`, output);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
catch (err) {
|
|
47
|
-
(0, Util_1.logErr)(output);
|
|
48
|
-
(0, Util_1.logErr)(err);
|
|
49
|
-
}
|
|
50
|
-
});
|
|
51
|
-
return host;
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
exports.generate = generate;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generate = exports.createGenFuncs = void 0;
|
|
4
|
+
const EJS = require("ejs");
|
|
5
|
+
//import * as prettier from "prettier";
|
|
6
|
+
const jsbeautify = require("js-beautify");
|
|
7
|
+
const Util_1 = require("../Util");
|
|
8
|
+
const env_1 = require("../env");
|
|
9
|
+
const types_1 = require("../../../types");
|
|
10
|
+
function createGenFuncs(output, type) {
|
|
11
|
+
const htmlFn = jsbeautify.html.bind(this, output, {
|
|
12
|
+
"max_preserve_newlines": 0,
|
|
13
|
+
"wrap_line_length": 0,
|
|
14
|
+
"wrap_attributes": "force-expand-multiline",
|
|
15
|
+
"brace_style": 'collapse,preserve-inline'
|
|
16
|
+
});
|
|
17
|
+
const fnMap = {
|
|
18
|
+
[types_1.GeneratedFileTypes.HTML]: htmlFn,
|
|
19
|
+
//[GeneratedFileTypes.TS] : prettier.format.bind(this, output, prettierConfig),
|
|
20
|
+
[types_1.GeneratedFileTypes.TS]: jsbeautify.js.bind(this, output, { "brace_style": 'collapse,preserve-inline' }),
|
|
21
|
+
[types_1.GeneratedFileTypes.HELPER]: jsbeautify.js.bind(this, output, {}),
|
|
22
|
+
[types_1.GeneratedFileTypes.CSS]: jsbeautify.css.bind(this, output, {})
|
|
23
|
+
};
|
|
24
|
+
return fnMap[type]();
|
|
25
|
+
}
|
|
26
|
+
exports.createGenFuncs = createGenFuncs;
|
|
27
|
+
function generate(file, options) {
|
|
28
|
+
return (host, context) => {
|
|
29
|
+
EJS.renderFile(`${env_1.MAGIC_CLI_FOLDER}/${file.template}`, file.data, { "rmWhitespace": true }, (err, output) => {
|
|
30
|
+
if (err) {
|
|
31
|
+
(0, Util_1.logErr)(err);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
try {
|
|
35
|
+
//if(file.type != GeneratedFileTypes.TS) {
|
|
36
|
+
output = createGenFuncs(output, file.type);
|
|
37
|
+
//}
|
|
38
|
+
let path = `${file.destination}/${file.name}`;
|
|
39
|
+
if (host.exists(path)) {
|
|
40
|
+
host.overwrite(`${file.destination}/${file.name}`, output);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
host.create(`${file.destination}/${file.name}`, output);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
(0, Util_1.logErr)(output);
|
|
48
|
+
(0, Util_1.logErr)(err);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
return host;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
exports.generate = generate;
|
|
55
55
|
//# sourceMappingURL=generate.rule.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.rule.js","sourceRoot":"","sources":["generate.rule.ts"],"names":[],"mappings":";;;AAAA,2BAAmC;AACnC,0CAA0C;AAC1C,0CAA2C;AAI3C,kCAAiC;AACjC,gCAA0C;AAC1C,0CAAoE;AAIpE,SAAgB,cAAc,CAAC,MAAe,EAAC,IAAwB;IACrE,MAAM,MAAM,GAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;QACjD,uBAAuB,EAAE,CAAC;QAC1B,kBAAkB,EAAO,CAAC;QAC1B,iBAAiB,EAAQ,wBAAwB;QAChD,aAAa,EAAG,0BAA0B;KAC5C,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACZ,CAAC,0BAAkB,CAAC,IAAI,CAAC,EAAE,MAAM;QACjC,gFAAgF;QAChF,CAAC,0BAAkB,CAAC,EAAE,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAC,aAAa,EAAG,0BAA0B,EAAC,CAAC;QACzG,CAAC,0BAAkB,CAAC,MAAM,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QACnE,CAAC,0BAAkB,CAAC,GAAG,CAAC,EAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAG,CAAC;KAClE,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACvB,CAAC;AAjBD,wCAiBC;AAED,SAAgB,QAAQ,CAAC,IAAoB,EAAC,OAAyB;IACrE,OAAO,CAAC,IAAS,EAAE,OAAyB,EAAE,EAAE;QAC9C,GAAG,CAAC,UAAU,CACZ,GAAG,sBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE,EACtC,IAAI,CAAC,IAAI,EACT,EAAC,cAAc,EAAG,IAAI,EAAC,EACxB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACb,IAAI,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"generate.rule.js","sourceRoot":"","sources":["generate.rule.ts"],"names":[],"mappings":";;;AAAA,2BAAmC;AACnC,0CAA0C;AAC1C,0CAA2C;AAI3C,kCAAiC;AACjC,gCAA0C;AAC1C,0CAAoE;AAIpE,SAAgB,cAAc,CAAC,MAAe,EAAC,IAAwB;IACrE,MAAM,MAAM,GAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE;QACjD,uBAAuB,EAAE,CAAC;QAC1B,kBAAkB,EAAO,CAAC;QAC1B,iBAAiB,EAAQ,wBAAwB;QAChD,aAAa,EAAG,0BAA0B;KAC5C,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG;QACZ,CAAC,0BAAkB,CAAC,IAAI,CAAC,EAAE,MAAM;QACjC,gFAAgF;QAChF,CAAC,0BAAkB,CAAC,EAAE,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAC,aAAa,EAAG,0BAA0B,EAAC,CAAC;QACzG,CAAC,0BAAkB,CAAC,MAAM,CAAC,EAAI,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QACnE,CAAC,0BAAkB,CAAC,GAAG,CAAC,EAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,EAAG,CAAC;KAClE,CAAC;IAEF,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACvB,CAAC;AAjBD,wCAiBC;AAED,SAAgB,QAAQ,CAAC,IAAoB,EAAC,OAAyB;IACrE,OAAO,CAAC,IAAS,EAAE,OAAyB,EAAE,EAAE;QAC9C,GAAG,CAAC,UAAU,CACZ,GAAG,sBAAgB,IAAI,IAAI,CAAC,QAAQ,EAAE,EACtC,IAAI,CAAC,IAAI,EACT,EAAC,cAAc,EAAG,IAAI,EAAC,EACxB,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE;YACb,IAAI,GAAG,EAAE,CAAC;gBAAC,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC;gBAAC,OAAM;YAAC,CAAC;YAEhC,IAAI,CAAC;gBACH,0CAA0C;gBACxC,MAAM,GAAG,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC7C,GAAG;gBAEH,IAAI,IAAI,GAAG,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAE9C,IAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAC,CAAC;oBACpB,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAA;gBAC5D,CAAC;qBAAK,CAAC;oBACL,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;YACD,OAAO,GAAG,EAAE,CAAC;gBACX,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC;gBACf,IAAA,aAAM,EAAC,GAAG,CAAC,CAAC;YACd,CAAC;QACH,CAAC,CAAC,CAAC;QACL,OAAO,IAAI,CAAC;IACd,CAAC,CAAA;AACH,CAAC;AA7BD,4BA6BC","sourcesContent":["import * as EJS from \"ejs\";\n//import * as prettier from \"prettier\";\nimport * as jsbeautify from \"js-beautify\";\n\nimport { Rule, SchematicContext, Tree } from \"@angular-devkit/schematics\";\n\nimport { logErr } from \"../Util\";\nimport { MAGIC_CLI_FOLDER } from \"../env\";\nimport { GeneratedFileTypes, TemplateConfig } from \"../../../types\";\nimport { MagicOptionScheme } from \"./magic-option.scheme\";\nimport { prettierConfig } from \"../config\";\n\nexport function createGenFuncs(output : string,type: GeneratedFileTypes ) {\n const htmlFn = jsbeautify.html.bind(this, output, {\n \"max_preserve_newlines\": 0,\n \"wrap_line_length\" : 0,\n \"wrap_attributes\" : \"force-expand-multiline\",\n \"brace_style\" : 'collapse,preserve-inline'\n });\n\n const fnMap = {\n [GeneratedFileTypes.HTML]: htmlFn,\n //[GeneratedFileTypes.TS] : prettier.format.bind(this, output, prettierConfig),\n [GeneratedFileTypes.TS] : jsbeautify.js.bind(this, output, {\"brace_style\" : 'collapse,preserve-inline'}),\n [GeneratedFileTypes.HELPER] : jsbeautify.js.bind(this, output, {}),\n [GeneratedFileTypes.CSS] : jsbeautify.css.bind(this, output, { })\n };\n\n return fnMap[type]();\n}\n\nexport function generate(file: TemplateConfig,options:MagicOptionScheme) :Rule{\n return (host:Tree, context: SchematicContext) => {\n EJS.renderFile(\n `${MAGIC_CLI_FOLDER}/${file.template}`,\n file.data,\n {\"rmWhitespace\" : true},\n (err, output) => {\n if (err) { logErr(err); return }\n\n try {\n //if(file.type != GeneratedFileTypes.TS) {\n output = createGenFuncs(output, file.type);\n //}\n\n let path = `${file.destination}/${file.name}`;\n\n if(host.exists(path)){\n host.overwrite(`${file.destination}/${file.name}`, output)\n } else{\n host.create(`${file.destination}/${file.name}`, output);\n }\n }\n catch (err) {\n logErr(output);\n logErr(err);\n }\n });\n return host;\n }\n}\n"]}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Rule } from "@angular-devkit/schematics";
|
|
2
|
-
import { MagicOptionScheme } from "./magic-option.scheme";
|
|
3
|
-
export declare function initGenModules(options: MagicOptionScheme, generateViaCLI?: boolean): Rule;
|
|
4
|
-
export declare function overwriteWebModuleFileName(options: any, moduleNameFileName: string, content: string): Rule;
|
|
5
|
-
export declare function updateWebModuleFileWithNewClassName(options: any, webModuleName: string): Rule;
|
|
6
|
-
export declare function getDestinationModulePathByWebModuleName(webModuleName: string): string;
|
|
7
|
-
export declare function checkAndCreateModule(options: MagicOptionScheme, webModuleName: string, loadOnDemand: boolean): Rule;
|
|
8
|
-
export declare function generateWebModule(options: MagicOptionScheme, webModuleName: string, loadOnDemand: boolean): Rule;
|
|
9
|
-
export declare function generateWebModules(options: MagicOptionScheme, generateViaCLI?: boolean): Rule;
|
|
10
|
-
export declare function checkAndCreateRouteForModule(options: MagicOptionScheme, webModuleName: string, loadOnDemand: boolean): Rule;
|
|
11
|
-
export declare function createRoute(options: MagicOptionScheme, webModuleName: string): Rule;
|
|
12
|
-
export declare function addRouteFileToModuleFile(options: MagicOptionScheme, webModuleName: string): Rule;
|
|
1
|
+
import { Rule } from "@angular-devkit/schematics";
|
|
2
|
+
import { MagicOptionScheme } from "./magic-option.scheme";
|
|
3
|
+
export declare function initGenModules(options: MagicOptionScheme, generateViaCLI?: boolean): Rule;
|
|
4
|
+
export declare function overwriteWebModuleFileName(options: any, moduleNameFileName: string, content: string): Rule;
|
|
5
|
+
export declare function updateWebModuleFileWithNewClassName(options: any, webModuleName: string): Rule;
|
|
6
|
+
export declare function getDestinationModulePathByWebModuleName(webModuleName: string): string;
|
|
7
|
+
export declare function checkAndCreateModule(options: MagicOptionScheme, webModuleName: string, loadOnDemand: boolean): Rule;
|
|
8
|
+
export declare function generateWebModule(options: MagicOptionScheme, webModuleName: string, loadOnDemand: boolean): Rule;
|
|
9
|
+
export declare function generateWebModules(options: MagicOptionScheme, generateViaCLI?: boolean): Rule;
|
|
10
|
+
export declare function checkAndCreateRouteForModule(options: MagicOptionScheme, webModuleName: string, loadOnDemand: boolean): Rule;
|
|
11
|
+
export declare function createRoute(options: MagicOptionScheme, webModuleName: string): Rule;
|
|
12
|
+
export declare function addRouteFileToModuleFile(options: MagicOptionScheme, webModuleName: string): Rule;
|