@huameow/schematics
Version:
huameow - modern, fast, powerful web framework (@schematics)
50 lines (49 loc) • 1.92 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const core_1 = require("@angular-devkit/core");
const schematics_1 = require("@angular-devkit/schematics");
const path_1 = require("path");
const defaults_1 = require("../defaults");
function main(options) {
options.name = core_1.strings.dasherize(options.name);
const path = !options.directory || options.directory === 'undefined'
? options.name
: options.directory;
options = transform(options);
return schematics_1.mergeWith(generate(options, path));
}
exports.main = main;
function transform(options) {
const target = Object.assign({}, options);
target.author = !!target.author ? target.author : defaults_1.DEFAULT_AUTHOR;
target.description = !!target.description
? target.description
: defaults_1.DEFAULT_DESCRIPTION;
target.language = !!target.language ? target.language : defaults_1.DEFAULT_LANGUAGE;
target.name = resolvePackageName(target.name);
target.version = !!target.version ? target.version : defaults_1.DEFAULT_VERSION;
target.packageManager =
!target.packageManager || target.packageManager === 'undefined'
? 'npm'
: target.packageManager;
target.dependencies = !!target.dependencies ? target.dependencies : '';
target.devDependencies = !!target.devDependencies
? target.devDependencies
: '';
console.log('transform', target);
return target;
}
function resolvePackageName(path) {
const { name } = path_1.parse(path);
if (name === '.') {
return path_1.basename(process.cwd());
}
return name;
}
function generate(options, path) {
const lang = options.language || '';
return schematics_1.apply(schematics_1.url('./files'), [
schematics_1.template(Object.assign(Object.assign({}, core_1.strings), options)),
schematics_1.move(path),
]);
}