ngsp
Version:
Generate spec files from existing Angular files
109 lines • 4.02 kB
JavaScript
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
;