@lenne.tech/cli
Version:
lenne.Tech CLI: lt
133 lines • 9.12 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 });
exports.Typescript = void 0;
const fs = require("fs");
const open = require("open");
const path_1 = require("path");
/**
* Common helper functions
*/
class Typescript {
/**
* Constructor for integration of toolbox
*/
constructor(toolbox) {
this.toolbox = toolbox;
}
/**
* Create a simple typescript project
*/
create() {
return __awaiter(this, void 0, void 0, function* () {
// Toolbox features
const { filesystem: { cwd, existsAsync }, helper, npm, print: { error, info, spin, success }, system: { run, startTimer, which }, } = this.toolbox;
// Get project name
const name = yield helper.getInput(null, {
name: 'project name',
showError: true,
});
if (!name) {
return;
}
// Check dir
const dir = (0, path_1.join)(cwd(), name);
if (yield existsAsync(dir)) {
error(`Diretory ${dir} exists!`);
}
// Start timer
const timer = startTimer();
// Init
const cloneSpin = spin(`Init project ${name}`);
// Init gts
fs.mkdirSync(dir);
yield run(`cd ${dir} && npm init -y && npx gts init && npm install -D ts-node`);
// Prepare package.json
const { data, path } = yield npm.getPackageJson({
cwd: dir,
showError: true,
});
if (!path) {
return;
}
data.scripts.start = 'npx ts-node src/index.ts';
data.main = 'build/index.js';
if (!(yield npm.setPackageJson(data, { cwd: dir, showError: true }))) {
return;
}
// Overwrite index.ts
const pathOfIndex = (0, path_1.join)(dir, 'src', 'index.ts');
fs.unlinkSync(pathOfIndex);
fs.writeFileSync(pathOfIndex, '// Write your code here\nconsole.log(\'hello world!\');');
// Init git
if (which('git')) {
yield run('git init');
}
cloneSpin.succeed();
// Success info
success(`Project ${name} was created in ${helper.msToMinutesAndSeconds(timer())}.`);
info('');
});
}
/**
* Open stackblitz
*/
stackblitz() {
return __awaiter(this, void 0, void 0, function* () {
return open('https://stackblitz.com/fork/typescript');
});
}
/**
* Download and install Web-Maker
*/
webmaker() {
return __awaiter(this, void 0, void 0, function* () {
// Toolbox features
const { filesystem: { cwd, existsAsync }, git, helper, npm, print: { error, spin }, system: { run }, } = this.toolbox;
// Check git
if (!(yield git.gitInstalled())) {
return;
}
// Get project name
const name = yield helper.getInput(null, {
name: 'project name',
showError: true,
});
if (!name) {
return;
}
// Check dir
const dir = (0, path_1.join)(cwd(), name);
if (yield existsAsync(dir)) {
error(`Diretory ${dir} exists!`);
}
// Clone
const repository = 'https://github.com/chinchang/web-maker.git';
const cloneSpin = spin(`Cloning web-maker: ${repository}`);
yield run(`git clone ${repository} ${dir}`);
cloneSpin.succeed();
// Install packages
if (yield npm.install({ cwd: dir, showError: true })) {
return;
}
// Start
yield run(`cd ${dir} && npm start`);
});
}
}
exports.Typescript = Typescript;
/**
* Extend toolbox
*/
exports.default = (toolbox) => {
toolbox.typescript = new Typescript(toolbox);
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL3R5cGVzY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QiwrQkFBNEI7QUFJNUI7O0dBRUc7QUFDSCxNQUFhLFVBQVU7SUFDckI7O09BRUc7SUFDSCxZQUFzQixPQUErQjtRQUEvQixZQUFPLEdBQVAsT0FBTyxDQUF3QjtJQUFHLENBQUM7SUFFekQ7O09BRUc7SUFDVSxNQUFNOztZQUNqQixtQkFBbUI7WUFDbkIsTUFBTSxFQUNKLFVBQVUsRUFBRSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsRUFDaEMsTUFBTSxFQUNOLEdBQUcsRUFDSCxLQUFLLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsRUFDckMsTUFBTSxFQUFFLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsR0FDbkMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1lBRWpCLG1CQUFtQjtZQUNuQixNQUFNLElBQUksR0FBRyxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFO2dCQUN2QyxJQUFJLEVBQUUsY0FBYztnQkFDcEIsU0FBUyxFQUFFLElBQUk7YUFDaEIsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLE9BQU87WUFDVCxDQUFDO1lBRUQsWUFBWTtZQUNaLE1BQU0sR0FBRyxHQUFHLElBQUEsV0FBSSxFQUFDLEdBQUcsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzlCLElBQUksTUFBTSxXQUFXLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDM0IsS0FBSyxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsQ0FBQztZQUNuQyxDQUFDO1lBRUQsY0FBYztZQUNkLE1BQU0sS0FBSyxHQUFH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