UNPKG

imod

Version:

A bundler for tiny modules, powered by Rollup.

55 lines 1.88 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const path = require("path"); const fs = require("fs"); const colors_1 = require("colors"); const utils_1 = require("./utils"); const checkFolder = (targetFolder) => { const exists = fs.existsSync(targetFolder); if (!exists) return true; const stat = fs.lstatSync(targetFolder); if (stat.isFile()) return false; if (stat.isDirectory()) { const d = fs.readdirSync(targetFolder); return !d.length; } return false; }; const upgradePkg = (pkgPath, data) => { try { const pkg = require(pkgPath); Object.keys(data).forEach(key => { pkg[key] = data[key]; }); fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + '\n'); } catch (e) { /* noop */ } }; exports.default = async ({ templateName, targetFolder, lite }) => { if (['mod', 'module', 'imod', 'demo'].includes(templateName)) { templateName = 'module'; } if (!checkFolder(targetFolder)) { console.error(colors_1.red(`It's not an empty directory: \`${targetFolder}\``)); return; } utils_1.mkdirp.sync(targetFolder); process.chdir(targetFolder); { const gitRepo = `https://github.com/haozi/imod-template-${templateName}.git ${targetFolder}`; await utils_1.sh(`git clone ${gitRepo} --depth 1`); } { const name = utils_1.safeVariableName(path.basename(targetFolder)); name && upgradePkg(path.resolve(targetFolder, 'package.json'), { name }); } utils_1.rimraf.sync(path.resolve(targetFolder, '.git')); if (!lite) { await utils_1.sh('git init && git add .'); // await sh('yarn', { silent: true }) } console.log(colors_1.green(`init scafolding succeed: \`${targetFolder}\``)); }; //# sourceMappingURL=initTemplate.js.map