Browse Source

feat(client-generator): add creating file template process

pull/2210/head
mehmet-erim 7 years ago
parent
commit
9a550a13fa
  1. 10
      npm/packs/client-generator/lib/angular.js
  2. 2
      npm/packs/client-generator/lib/templates/angular/service-templates.d.ts
  3. 10
      npm/packs/client-generator/lib/templates/angular/service-templates.js
  4. 8
      npm/packs/client-generator/lib/types/api-defination.d.ts
  5. 2
      npm/packs/client-generator/package.json
  6. 17
      npm/packs/client-generator/src/angular.ts
  7. 3
      npm/packs/client-generator/src/cli.ts
  8. 8
      npm/packs/client-generator/src/templates/angular/service-templates.ts
  9. 7
      npm/packs/client-generator/src/types/api-defination.ts
  10. 26
      npm/packs/client-generator/yarn.lock

10
npm/packs/client-generator/lib/angular.js

@ -36,11 +36,19 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
}
};
Object.defineProperty(exports, "__esModule", { value: true });
var service_templates_1 = require("./templates/angular/service-templates");
function angular(data, selectedModules) {
return __awaiter(this, void 0, void 0, function () {
return __generator(this, function (_a) {
selectedModules.forEach(function (module) {
console.log(module);
var element = data.modules[module];
var contents = [];
(Object.keys(element.controllers) || []).forEach(function (key) {
console.warn(element.controllers[key].controllerName);
contents.push('');
});
var service = service_templates_1.ServiceTemplates.classTemplate(element.rootPath, contents);
console.log(service);
});
return [2 /*return*/];
});

2
npm/packs/client-generator/lib/templates/angular/service-templates.d.ts

@ -1,3 +1,3 @@
export declare namespace ServiceTemplates {
function classTemplate(name: string): void;
function classTemplate(name: string, content: string[]): string;
}

10
npm/packs/client-generator/lib/templates/angular/service-templates.js

@ -1,9 +1,15 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var change_case_1 = __importDefault(require("change-case"));
var ServiceTemplates;
(function (ServiceTemplates) {
function classTemplate(name) {
"import { RestService } from '@abp/ng.core';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class " + name + "Service {\n\n constructor(private restService: RestService) { }\n\n}";
function classTemplate(name, content) {
return "import { RestService } from '@abp/ng.core';\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class " + change_case_1.default.pascalCase(name) + "Service {\n\n constructor(private restService: RestService) { }\n\n " + content.forEach(function (element) {
element + '\n\n';
}) + "\n}";
}
ServiceTemplates.classTemplate = classTemplate;
})(ServiceTemplates = exports.ServiceTemplates || (exports.ServiceTemplates = {}));

8
npm/packs/client-generator/lib/types/api-defination.d.ts

@ -3,6 +3,12 @@ export declare namespace APIDefination {
modules: Modules;
}
interface Modules {
[key: string]: any;
[key: string]: Module;
}
interface Module {
rootPath: string;
controllers: {
[key: string]: any;
};
}
}

2
npm/packs/client-generator/package.json

@ -23,11 +23,13 @@
"clear": "^0.1.0",
"commander": "^4.0.1",
"figlet": "^1.2.4",
"fs-extra": "^8.1.0",
"inquirer": "^7.0.0",
"ora": "^4.0.3",
"path": "^0.12.7"
},
"devDependencies": {
"@types/fs-extra": "^8.0.1",
"@types/inquirer": "^6.5.0",
"@types/node": "^12.12.8",
"nodemon": "^1.19.4",

17
npm/packs/client-generator/src/angular.ts

@ -1,7 +1,20 @@
import { APIDefination } from './types/api-defination';
import { ServiceTemplates } from './templates/angular/service-templates';
import changeCase from 'change-case';
import fse from 'fs-extra';
export async function angular(data: APIDefination.Response, selectedModules: string[]) {
selectedModules.forEach(module => {
console.log(module);
selectedModules.forEach(async module => {
const element = data.modules[module];
let contents = [] as string[];
(Object.keys(element.controllers) || []).forEach(key => {
console.warn(element.controllers[key].controllerName);
contents.push(' ');
});
const service = ServiceTemplates.classTemplate(element.rootPath, contents);
await fse.writeFile(`${changeCase.kebabCase(element.rootPath + '-service')}.ts`, service);
console.log(service);
});
}

3
npm/packs/client-generator/src/cli.ts

@ -25,7 +25,8 @@ export async function cli(program: any) {
return selectedModules;
};
const modules = await selection(Object.keys(data.modules));
// const modules = await selection(Object.keys(data.modules));
const modules = ['multi-tenancy'];
switch (program.ui) {
case 'angular':

8
npm/packs/client-generator/src/templates/angular/service-templates.ts

@ -1,8 +1,8 @@
import changeCase from 'change-case';
export namespace ServiceTemplates {
export function classTemplate(name: string, content: string[]) {
`import { RestService } from '@abp/ng.core';
export function classTemplate(name: string, contents: string[]) {
return `import { RestService } from '@abp/ng.core';
import { Injectable } from '@angular/core';
@Injectable({
@ -12,9 +12,7 @@ export class ${changeCase.pascalCase(name)}Service {
constructor(private restService: RestService) { }
${content.forEach(element => {
element + '\n\n';
})}
${contents[0]}
}`;
}
}

7
npm/packs/client-generator/src/types/api-defination.ts

@ -4,6 +4,11 @@ export namespace APIDefination {
}
export interface Modules {
[key: string]: any;
[key: string]: Module;
}
export interface Module {
rootPath: string;
controllers: { [key: string]: any };
}
}

26
npm/packs/client-generator/yarn.lock

@ -6,6 +6,12 @@
version "1.1.1"
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
"@types/fs-extra@^8.0.1":
version "8.0.1"
resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.0.1.tgz#a2378d6e7e8afea1564e44aafa2e207dadf77686"
dependencies:
"@types/node" "*"
"@types/inquirer@^6.5.0":
version "6.5.0"
resolved "https://registry.yarnpkg.com/@types/inquirer/-/inquirer-6.5.0.tgz#b83b0bf30b88b8be7246d40e51d32fe9d10e09be"
@ -586,6 +592,14 @@ fragment-cache@^0.2.1:
dependencies:
map-cache "^0.2.2"
fs-extra@^8.1.0:
version "8.1.0"
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0"
dependencies:
graceful-fs "^4.2.0"
jsonfile "^4.0.0"
universalify "^0.1.0"
fs-minipass@^1.2.5:
version "1.2.7"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7"
@ -664,7 +678,7 @@ got@^6.7.1:
unzip-response "^2.0.1"
url-parse-lax "^1.0.0"
graceful-fs@^4.1.11, graceful-fs@^4.1.2:
graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0:
version "4.2.3"
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423"
@ -962,6 +976,12 @@ isobject@^3.0.0, isobject@^3.0.1:
version "3.0.1"
resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
jsonfile@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
optionalDependencies:
graceful-fs "^4.1.6"
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
version "3.2.2"
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
@ -1806,6 +1826,10 @@ unique-string@^1.0.0:
dependencies:
crypto-random-string "^1.0.0"
universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
unset-value@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"

Loading…
Cancel
Save