@mindconnect/mindconnect-nodejs
Version:
MindConnect Library for NodeJS (community based)
65 lines • 3.91 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
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) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const console_1 = require("console");
const fs = require("fs");
const package_template_1 = require("../../../templates/ts/package_template");
const ts_template_1 = require("../../../templates/ts/ts-template");
const command_utils_1 = require("./command-utils");
const color = command_utils_1.getColor("green");
exports.default = (program) => {
program
.command("starter-ts")
.alias("st")
.option("-d, --dir <directoryname>", "directory name", "starterts")
.option("-v, --verbose", "verbose output")
.description(color("creates a starter project in typescript #"))
.action(options => {
(() => __awaiter(void 0, void 0, void 0, function* () {
try {
command_utils_1.verboseLog(`Creating directory ${color(options.dir)}`, options.verbose);
if (fs.existsSync(options.dir)) {
throw new Error(`the directory ${color(options.dir)} already exists`);
}
fs.mkdirSync(options.dir);
command_utils_1.verboseLog(`Writing index.ts in ${options.dir}`, options.verbose);
fs.writeFileSync(options.dir + "/index.ts", ts_template_1.tstemplate);
let mypackage;
try {
mypackage = require("../../../package.json");
}
catch (err) { }
// ? for global installation
if (!mypackage) {
mypackage = require("../../../../package.json");
}
package_template_1.packageTemplateTs.dependencies["@mindconnect/mindconnect-nodejs"] = "^" + mypackage.version;
package_template_1.packageTemplateTs.devDependencies["@types/node"] = mypackage.devDependencies["@types/node"];
package_template_1.packageTemplateTs.devDependencies["typescript"] = mypackage.devDependencies["typescript"];
command_utils_1.verboseLog(`Writing package.json in ${options.dir}`, options.verbose);
fs.writeFileSync(options.dir + "/package.json", JSON.stringify(package_template_1.packageTemplateTs, null, 4));
command_utils_1.verboseLog(`Writing tsconfig.json in ${options.dir}`, options.verbose);
fs.writeFileSync(options.dir + "/tsconfig.json", JSON.stringify(ts_template_1.tsconfigjson, null, 4));
console_1.log(`Starter project in ${color(options.dir)} has been created.`);
console_1.log(`Please run npm install in ${color(options.dir)} directory to install dependecies.`);
}
catch (err) {
command_utils_1.errorLog(err, options.verbose);
}
}))();
})
.on("--help", () => {
console_1.log("\n Examples:\n");
console_1.log(` mc starter-ts \t\t\t this creates a directory called ${color("starterts")}`);
console_1.log(` mc st --dir mindconnect-agent \t this creates a directory called ${color("mindconnect-agent")}`);
});
};
//# sourceMappingURL=mc-starter-ts.js.map