UNPKG

@sanpjs/cmd-init

Version:

Sanp init command

53 lines 2.05 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const path_1 = __importDefault(require("path")); const fs_extra_1 = __importDefault(require("fs-extra")); const generator_1 = __importDefault(require("@sanpjs/generator")); const utils_1 = require("@sanpjs/utils"); const lodash_defaultsdeep_1 = __importDefault(require("lodash.defaultsdeep")); const debug = (0, utils_1.createDebugger)('init:generate'); exports.default = (template, dest, options) => { return async (ctx, task) => { const { name: gitUser, email, author } = (0, utils_1.getGitUser)(); debug('author: ', author, 'email: ', email, 'git user: ', gitUser); // 合并默认配置 let config = { templateDir: ctx.localTemplatePath, outputDir: dest, templateVars: { author, email, username: gitUser || 'git', ...options }, actions: [] }; let after; const configFile = path_1.default.resolve(ctx.localTemplatePath, 'generator.config.js'); if (fs_extra_1.default.pathExistsSync(configFile)) { const userConfig = require(configFile); if (userConfig.after) { after = userConfig.after; delete userConfig.after; } config = (0, lodash_defaultsdeep_1.default)(userConfig, config); } config = { ...config, configFile: false, after: (config, utils) => { task.complete(); after && after(config, utils); } }; ctx.config = config; // generate template const generate = new generator_1.default(config); task.info('Generating directory structure...'); await generate.run(); }; }; //# sourceMappingURL=generate.js.map