UNPKG

@lenne.tech/cli

Version:

lenne.Tech CLI: lt

133 lines 9.12 kB
"use strict"; 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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