UNPKG

ngsp

Version:

Generate spec files from existing Angular files

109 lines 4.02 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); const fs = require("fs"); const path = require("path"); const createSpec_1 = require("./createSpec"); const chalk = require('chalk'); class App { constructor() { this.app(); } app() { return __awaiter(this, void 0, void 0, function* () { try { const sourceDir = this.getSource(); console.log(chalk.green(`from Url: ${sourceDir}`)); const handlerFile = this.getSholudSpec(this.getFileTree(sourceDir)); createSpec_1.createSpec(handlerFile); console.log(chalk.green('completed!')); } catch (err) { console.log(chalk.red(err)); } }); } getSource() { const args = process.argv.slice(2); return args[0]; } getFileTree(sourceUrl) { const returnObj = []; const files = fs.readdirSync(sourceUrl); files.forEach((file) => { const url = path.join(sourceUrl, file); if (fs.lstatSync(url).isDirectory()) { returnObj.push(...this.getFileTree(url)); } returnObj.push(url); }); return returnObj; } getSholudSpec(array) { const newArray = []; array.forEach((url) => { const file = path.parse(url); if (file.ext === '.ts' && !url.includes('.spec')) { if (url.includes('guard')) { newArray.push({ type: 'guard', name: file.name, dir: file.dir, url: url }); } else if (url.includes('component')) { newArray.push({ type: 'component', name: file.name, dir: file.dir, url: url }); } else if (url.includes('service')) { newArray.push({ type: 'service', name: file.name, dir: file.dir, url: url }); } else if (url.includes('directive')) { newArray.push({ type: 'directive', name: file.name, dir: file.dir, url: url }); } else if (url.includes('model')) { newArray.push({ type: 'model', name: file.name, dir: file.dir, url: url }); } else if (url.includes('pipe')) { newArray.push({ type: 'pipe', name: file.name, dir: file.dir, url: url }); } } }); return newArray; } } exports.App = App; module.exports = new App(); //# sourceMappingURL=index.js.map