UNPKG

@lenne.tech/cli

Version:

lenne.Tech CLI: lt

133 lines 9.24 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 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* () { const { default: open } = yield Promise.resolve().then(() => require('open')); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9leHRlbnNpb25zL3R5cGVzY3JpcHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEseUJBQXlCO0FBQ3pCLCtCQUE0QjtBQUk1Qjs7R0FFRztBQUNILE1BQWEsVUFBVTtJQUNyQjs7T0FFRztJQUNILFlBQXNCLE9BQStCO1FBQS9CLFlBQU8sR0FBUCxPQUFPLENBQXdCO0lBQUcsQ0FBQztJQUV6RDs7T0FFRztJQUNVLE1BQU07O1lBQ2pCLG1CQUFtQjtZQUNuQixNQUFNLEVBQ0osVUFBVSxFQUFFLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxFQUNoQyxNQUFNLEVBQ04sR0FBRyxFQUNILEtBQUssRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUNyQyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUNuQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7WUFFakIsbUJBQW1CO1lBQ25CLE1BQU0sSUFBSSxHQUFHLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3ZDLElBQUksRUFBRSxjQUFjO2dCQUNwQixTQUFTLEVBQUUsSUFBSTthQUNoQixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1YsT0FBTztZQUNULENBQUM7WUFFRCxZQUFZO1lBQ1osTUFBTSxHQUFHLEdBQUcsSUFBQSxXQUFJLEVBQUMsR0FBRyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDOUIsSUFBSSxNQUFNLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMzQixLQUFLLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxDQUFDO1lBQ25DLENBQUM7WUFFRCxjQUFjO1lBQ2QsTUFBTSxLQUFLLEdBQUcsVUFBVSxFQUFFLENB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