jgb-cli
Version:
```shell npm i -g jgb-cli #全局安装 ```
84 lines • 5.3 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var fs = require("fs");
var path = require("path");
var metadata = require("read-metadata");
var validateName = require("validate-npm-package-name");
var git_user_1 = require("./git-user");
function default_1(name, dir) {
var opts = getMetadata(dir);
setDefault(opts, 'name', name);
setValidateName(opts);
var author = git_user_1.default();
if (author) {
setDefault(opts, 'author', author);
}
return opts;
}
exports.default = default_1;
/**
* Gets the metadata from either a meta.json or meta.js file.
*
* @param {String} dir
* @return {Object}
*/
function getMetadata(dir) {
var json = path.join(dir, 'meta.json');
var js = path.join(dir, 'meta.js');
var opts = {};
opts.status = true;
if (fs.existsSync(json)) {
opts = metadata.sync(json);
}
else if (fs.existsSync(js)) {
var req = require(path.resolve(js));
if (req !== Object(req)) {
throw new Error('meta.js needs to expose an object');
}
opts = req;
}
else {
opts.status = false;
}
return opts;
}
/**
* Set the default value for a prompt question
*
* @param {Object} opts
* @param {String} key
* @param {String} val
*/
function setDefault(opts, key, val) {
if (opts.schema) {
opts.prompts = opts.schema;
delete opts.schema;
}
var prompts = opts.prompts || (opts.prompts = {});
if (!prompts[key] || typeof prompts[key] !== 'object') {
prompts[key] = {
type: 'string',
default: val
};
}
else {
prompts[key].default = val;
}
}
function setValidateName(opts) {
var name = opts.prompts.name;
var customValidate = name.validate;
// tslint:disable-next-line:no-shadowed-variable
name.validate = function (name) {
var its = validateName(name);
if (!its.validForNewPackages) {
var errors = (its.errors || []).concat(its.warnings || []);
return 'Sorry, ' + errors.join(' and ') + '.';
}
if (typeof customValidate === 'function') {
return customValidate(name);
}
return true;
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsdUJBQTBCO0FBQzFCLDJCQUE4QjtBQUM5Qix3Q0FBMkM7QUFDM0Msd0RBQTJEO0FBQzNELHVDQUFvQztBQUVwQyxtQkFBd0IsSUFBWSxFQUFFLEdBQVc7SUFDL0MsSUFBTSxJQUFJLEdBQUcsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9CLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUVyQixJQUFNLE1BQU0sR0FBRyxrQkFBVSxFQUFFLENBQUM7SUFDNUIsSUFBSSxNQUFNLEVBQUU7UUFDVixVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztLQUNwQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQVhELDRCQVdDO0FBRUQ7Ozs7O0dBS0c7QUFFSCxTQUFTLFdBQVcsQ0FBQyxHQUFXO0lBQzlCLElBQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3pDLElBQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLElBQUksSUFBSSxHQUFRLEVBQUUsQ0FBQztJQUNuQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztJQUVuQixJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDdkIsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDNUI7U0FBTSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUU7UUFDNUIsSUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0QyxJQUFJLEdBQUcsS0FBSyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDdkIsTUFBTSxJQUFJLEtBQUssQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDO1NBQ3REO1FBQ0QsSUFBSSxHQUFHLEdBQUcsQ0FBQztLQUNaO1NBQU07UUFDTCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztLQUNyQjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUVILFNBQVMsVUFBVSxDQUFDLElBQVMsRUFBRSxHQUFXLEVBQUUsR0FBUTtJQUNsRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0tBQ3BCO0lBQ0QsSUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFDcEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUU7UUFDckQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHO1lBQ2IsSUFBSSxFQUFFLFFBQVE7WUFDZCxPQUFPLEVBQUUsR0FBRztTQUNiLENBQUM7S0FDSDtTQUFNO1FBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7S0FDNUI7QUFDSCxDQUFDO0FBRUQsU0FBUyxlQUFlLENBQUMsSUFBUztJQUNoQyxJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUMvQixJQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3JDLGdEQUFnRDtJQUNoRCxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQUMsSUFBWTtRQUMzQixJQUFNLEdBQUcsR0FBRyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixJQUFNLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFDLENBQUM7WUFDN0QsT0FBTyxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUM7U0FDL0M7UUFDRCxJQUFJLE9BQU8sY0FBYyxLQUFLLFVBQVUsRUFBRTtZQUN4QyxPQUFPLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9