@nrwl/tao
Advanced tools
Comparing version 8.4.13 to 8.5.0-beta.1
#!/usr/bin/env node | ||
import './src/compat/angular-cli-compat'; | ||
import './src/compat/compat'; | ||
export declare function invokeCommand(command: string, root: string, commandArgs: string[]): Promise<any>; | ||
export declare function invokeCli(root: string, args: string[]): Promise<void>; |
106
index.js
@@ -11,69 +11,31 @@ #!/usr/bin/env node | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
require("./src/compat/angular-cli-compat"); | ||
require("./src/compat/compat"); | ||
function invokeCommand(command, root, commandArgs) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var _a, projectName; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: | ||
if (command === undefined) { | ||
command = 'help'; | ||
} | ||
_a = command; | ||
switch (_a) { | ||
case 'new': return [3 /*break*/, 1]; | ||
case 'generate': return [3 /*break*/, 3]; | ||
case 'g': return [3 /*break*/, 3]; | ||
case 'run': return [3 /*break*/, 5]; | ||
case 'r': return [3 /*break*/, 5]; | ||
case 'help': return [3 /*break*/, 7]; | ||
case '--help': return [3 /*break*/, 7]; | ||
} | ||
return [3 /*break*/, 9]; | ||
case 1: return [4 /*yield*/, Promise.resolve().then(function () { return require('./src/commands/generate'); })]; | ||
case 2: return [2 /*return*/, (_b.sent()).taoNew(root, commandArgs)]; | ||
case 3: return [4 /*yield*/, Promise.resolve().then(function () { return require('./src/commands/generate'); })]; | ||
case 4: return [2 /*return*/, (_b.sent()).generate(root, commandArgs)]; | ||
case 5: return [4 /*yield*/, Promise.resolve().then(function () { return require('./src/commands/run'); })]; | ||
case 6: return [2 /*return*/, (_b.sent()).run(root, commandArgs)]; | ||
case 7: return [4 /*yield*/, Promise.resolve().then(function () { return require('./src/commands/help'); })]; | ||
case 8: return [2 /*return*/, (_b.sent()).printHelp()]; | ||
case 9: | ||
projectName = commandArgs[0] ? commandArgs[0] : ''; | ||
return [4 /*yield*/, Promise.resolve().then(function () { return require('./src/commands/run'); })]; | ||
case 10: | ||
return __awaiter(this, void 0, void 0, function* () { | ||
if (command === undefined) { | ||
command = 'help'; | ||
} | ||
switch (command) { | ||
case 'new': | ||
return (yield Promise.resolve().then(() => require('./src/commands/generate'))).taoNew(root, commandArgs); | ||
case 'generate': | ||
case 'g': | ||
return (yield Promise.resolve().then(() => require('./src/commands/generate'))).generate(root, commandArgs); | ||
case 'run': | ||
case 'r': | ||
return (yield Promise.resolve().then(() => require('./src/commands/run'))).run(root, commandArgs); | ||
case 'migrate': | ||
return (yield Promise.resolve().then(() => require('./src/commands/migrate'))).migrate(root, commandArgs); | ||
case 'help': | ||
case '--help': | ||
return (yield Promise.resolve().then(() => require('./src/commands/help'))).printHelp(); | ||
default: | ||
const projectName = commandArgs[0] ? commandArgs[0] : ''; | ||
// this is to make `tao test mylib` same as `tao run mylib:test` | ||
return [2 /*return*/, (_b.sent()).run(root, [ | ||
projectName + ":" + command | ||
].concat(commandArgs.slice(1)))]; | ||
} | ||
}); | ||
return (yield Promise.resolve().then(() => require('./src/commands/run'))).run(root, [ | ||
`${projectName}:${command}`, | ||
...commandArgs.slice(1) | ||
]); | ||
} | ||
}); | ||
@@ -83,15 +45,5 @@ } | ||
function invokeCli(root, args) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var command, commandArgs, _a, _b; | ||
return __generator(this, function (_c) { | ||
switch (_c.label) { | ||
case 0: | ||
command = args[0], commandArgs = args.slice(1); | ||
_b = (_a = process).exit; | ||
return [4 /*yield*/, invokeCommand(command, root, commandArgs)]; | ||
case 1: | ||
_b.apply(_a, [_c.sent()]); | ||
return [2 /*return*/]; | ||
} | ||
}); | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const [command, ...commandArgs] = args; | ||
process.exit(yield invokeCommand(command, root, commandArgs)); | ||
}); | ||
@@ -98,0 +50,0 @@ } |
{ | ||
"name": "@nrwl/tao", | ||
"version": "8.4.13", | ||
"version": "8.5.0-beta.1", | ||
"description": "CLI for generating code and running commands", | ||
@@ -32,8 +32,9 @@ "repository": { | ||
"dependencies": { | ||
"@angular-devkit/schematics": "8.1.1", | ||
"@angular-devkit/core": "8.1.1", | ||
"@angular-devkit/architect": "0.801.1", | ||
"@angular-devkit/schematics": "8.3.2", | ||
"@angular-devkit/core": "8.3.2", | ||
"@angular-devkit/architect": "0.803.2", | ||
"inquirer": "^6.3.1", | ||
"minimist": "^1.2.0" | ||
"minimist": "^1.2.0", | ||
"strip-json-comments": "2.0.1" | ||
} | ||
} |
"use strict"; | ||
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { | ||
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } | ||
return cooked; | ||
}; | ||
var __assign = (this && this.__assign) || function () { | ||
__assign = Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
@@ -25,45 +10,17 @@ return new (P || (P = Promise))(function (resolve, reject) { | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var params_1 = require("../shared/params"); | ||
var core_1 = require("@angular-devkit/core"); | ||
var schematics_1 = require("@angular-devkit/schematics"); | ||
var node_1 = require("@angular-devkit/core/node"); | ||
var tools_1 = require("@angular-devkit/schematics/tools"); | ||
var inquirer = require("inquirer"); | ||
var logger_1 = require("../shared/logger"); | ||
var print_help_1 = require("../shared/print-help"); | ||
var minimist = require("minimist"); | ||
const params_1 = require("../shared/params"); | ||
const core_1 = require("@angular-devkit/core"); | ||
const schematics_1 = require("@angular-devkit/schematics"); | ||
const node_1 = require("@angular-devkit/core/node"); | ||
const tools_1 = require("@angular-devkit/schematics/tools"); | ||
const inquirer = require("inquirer"); | ||
const logger_1 = require("../shared/logger"); | ||
const print_help_1 = require("../shared/print-help"); | ||
const minimist = require("minimist"); | ||
function throwInvalidInvocation() { | ||
throw new Error("Specify the schematic name (e.g., " + print_help_1.commandName + " generate collection-name:schematic-name)"); | ||
throw new Error(`Specify the schematic name (e.g., ${print_help_1.commandName} generate collection-name:schematic-name)`); | ||
} | ||
function parseGenerateOpts(args, mode, defaultCollection) { | ||
var _a; | ||
var schematicOptions = params_1.convertToCamelCase(minimist(args, { | ||
const schematicOptions = params_1.convertToCamelCase(minimist(args, { | ||
boolean: ['help', 'dryRun', 'debug', 'force', 'interactive'], | ||
@@ -79,4 +36,4 @@ alias: { | ||
})); | ||
var collectionName = null; | ||
var schematicName = null; | ||
let collectionName = null; | ||
let schematicName = null; | ||
if (mode === 'generate') { | ||
@@ -86,3 +43,3 @@ if (!schematicOptions['_'] || schematicOptions['_'].length === 0) { | ||
} | ||
_a = schematicOptions['_'].shift().split(':'), collectionName = _a[0], schematicName = _a[1]; | ||
[collectionName, schematicName] = schematicOptions['_'].shift().split(':'); | ||
if (!schematicName) { | ||
@@ -100,6 +57,6 @@ schematicName = collectionName; | ||
} | ||
var res = { | ||
collectionName: collectionName, | ||
schematicName: schematicName, | ||
schematicOptions: schematicOptions, | ||
const res = { | ||
collectionName, | ||
schematicName, | ||
schematicOptions, | ||
help: schematicOptions.help, | ||
@@ -122,4 +79,4 @@ debug: schematicOptions.debug, | ||
function createRecorder(record, logger) { | ||
return function (event) { | ||
var eventPath = event.path.startsWith('/') | ||
return (event) => { | ||
const eventPath = event.path.startsWith('/') | ||
? event.path.substr(1) | ||
@@ -129,19 +86,17 @@ : event.path; | ||
record.error = true; | ||
logger.warn("ERROR! " + eventPath + " " + (event.description == 'alreadyExist' | ||
logger.warn(`ERROR! ${eventPath} ${event.description == 'alreadyExist' | ||
? 'already exists' | ||
: 'does not exist.') + "."); | ||
: 'does not exist.'}.`); | ||
} | ||
else if (event.kind === 'update') { | ||
record.loggingQueue.push(core_1.tags.oneLine(templateObject_1 || (templateObject_1 = __makeTemplateObject(["", " ", " (", " bytes)"], ["", " ", " (", | ||
" bytes)"])), core_1.terminal.white('UPDATE'), eventPath, event.content.length)); | ||
record.loggingQueue.push(core_1.tags.oneLine `${core_1.terminal.white('UPDATE')} ${eventPath} (${event.content.length} bytes)`); | ||
} | ||
else if (event.kind === 'create') { | ||
record.loggingQueue.push(core_1.tags.oneLine(templateObject_2 || (templateObject_2 = __makeTemplateObject(["", " ", " (", " bytes)"], ["", " ", " (", | ||
" bytes)"])), core_1.terminal.green('CREATE'), eventPath, event.content.length)); | ||
record.loggingQueue.push(core_1.tags.oneLine `${core_1.terminal.green('CREATE')} ${eventPath} (${event.content.length} bytes)`); | ||
} | ||
else if (event.kind === 'delete') { | ||
record.loggingQueue.push(core_1.terminal.yellow('DELETE') + " " + eventPath); | ||
record.loggingQueue.push(`${core_1.terminal.yellow('DELETE')} ${eventPath}`); | ||
} | ||
else if (event.kind === 'rename') { | ||
record.loggingQueue.push(core_1.terminal.blue('RENAME') + " " + eventPath + " => " + event.to); | ||
record.loggingQueue.push(`${core_1.terminal.blue('RENAME')} ${eventPath} => ${event.to}`); | ||
} | ||
@@ -151,184 +106,166 @@ }; | ||
function detectPackageManager(host) { | ||
var hostTree = new schematics_1.HostTree(host); | ||
if (hostTree.get('workspace.json')) { | ||
var workspaceJson = JSON.parse(hostTree.read('workspace.json').toString()); | ||
if (workspaceJson.cli && workspaceJson.cli.packageManager) { | ||
return workspaceJson.cli.packageManager; | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const hostTree = new schematics_1.HostTree(host); | ||
if (hostTree.get('workspace.json')) { | ||
const workspaceJson = JSON.parse(hostTree.read('workspace.json').toString()); | ||
if (workspaceJson.cli && workspaceJson.cli.packageManager) { | ||
return workspaceJson.cli.packageManager; | ||
} | ||
} | ||
} | ||
return host.exists('yarn.lock') | ||
? 'yarn' | ||
: host.exists('pnpm-lock.yaml') | ||
? 'pnpm' | ||
: 'npm'; | ||
const yarnLockFileExists = yield host.exists('yarn.lock').toPromise(); | ||
if (yarnLockFileExists) { | ||
return 'yarn'; | ||
} | ||
const pnpmLockFileExists = yield host | ||
.exists('pnpm-lock.yaml') | ||
.toPromise(); | ||
if (pnpmLockFileExists) { | ||
return 'pnpm'; | ||
} | ||
return 'npm'; | ||
}); | ||
} | ||
function createWorkflow(fsHost, root, opts) { | ||
var workflow = new tools_1.NodeWorkflow(fsHost, { | ||
force: opts.force, | ||
dryRun: opts.dryRun, | ||
packageManager: detectPackageManager(fsHost), | ||
root: core_1.normalize(root) | ||
}); | ||
var _params = opts.schematicOptions._; | ||
delete opts.schematicOptions._; | ||
workflow.registry.addSmartDefaultProvider('argv', function (schema) { | ||
if ('index' in schema) { | ||
return _params[Number(schema['index'])]; | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const workflow = new tools_1.NodeWorkflow(fsHost, { | ||
force: opts.force, | ||
dryRun: opts.dryRun, | ||
packageManager: yield detectPackageManager(fsHost), | ||
root: core_1.normalize(root), | ||
registry: new core_1.schema.CoreSchemaRegistry(schematics_1.formats.standardFormats) | ||
}); | ||
const _params = opts.schematicOptions._; | ||
delete opts.schematicOptions._; | ||
workflow.registry.addSmartDefaultProvider('argv', (schema) => { | ||
if ('index' in schema) { | ||
return _params[Number(schema['index'])]; | ||
} | ||
else { | ||
return _params; | ||
} | ||
}); | ||
if (opts.defaults) { | ||
workflow.registry.addPreTransform(core_1.schema.transforms.addUndefinedDefaults); | ||
} | ||
else { | ||
return _params; | ||
workflow.registry.addPostTransform(core_1.schema.transforms.addUndefinedDefaults); | ||
} | ||
workflow.engineHost.registerOptionsTransform(tools_1.validateOptionsWithSchema(workflow.registry)); | ||
if (opts.interactive !== false && isTTY()) { | ||
workflow.registry.usePromptProvider((definitions) => { | ||
const questions = definitions.map(definition => { | ||
const question = { | ||
name: definition.id, | ||
message: definition.message, | ||
default: definition.default | ||
}; | ||
const validator = definition.validator; | ||
if (validator) { | ||
question.validate = (input) => validator(input); | ||
} | ||
switch (definition.type) { | ||
case 'confirmation': | ||
question.type = 'confirm'; | ||
break; | ||
case 'list': | ||
question.type = !!definition.multiselect ? 'checkbox' : 'list'; | ||
question.choices = | ||
definition.items && | ||
definition.items.map(item => { | ||
if (typeof item == 'string') { | ||
return item; | ||
} | ||
else { | ||
return { | ||
name: item.label, | ||
value: item.value | ||
}; | ||
} | ||
}); | ||
break; | ||
default: | ||
question.type = definition.type; | ||
break; | ||
} | ||
return question; | ||
}); | ||
return inquirer.prompt(questions); | ||
}); | ||
} | ||
return workflow; | ||
}); | ||
if (opts.interactive !== false && isTTY()) { | ||
workflow.registry.usePromptProvider(function (definitions) { | ||
var questions = definitions.map(function (definition) { | ||
var question = { | ||
name: definition.id, | ||
message: definition.message, | ||
default: definition.default | ||
}; | ||
var validator = definition.validator; | ||
if (validator) { | ||
question.validate = function (input) { return validator(input); }; | ||
} | ||
switch (definition.type) { | ||
case 'confirmation': | ||
question.type = 'confirm'; | ||
break; | ||
case 'list': | ||
question.type = !!definition.multiselect ? 'checkbox' : 'list'; | ||
question.choices = | ||
definition.items && | ||
definition.items.map(function (item) { | ||
if (typeof item == 'string') { | ||
return item; | ||
} | ||
else { | ||
return { | ||
name: item.label, | ||
value: item.value | ||
}; | ||
} | ||
}); | ||
break; | ||
default: | ||
question.type = definition.type; | ||
break; | ||
} | ||
return question; | ||
}); | ||
return inquirer.prompt(questions); | ||
}); | ||
} | ||
return workflow; | ||
} | ||
function getCollection(workflow, name) { | ||
var collection = workflow.engine.createCollection(name); | ||
const collection = workflow.engine.createCollection(name); | ||
if (!collection) | ||
throw new Error("Cannot find collection '" + name + "'"); | ||
throw new Error(`Cannot find collection '${name}'`); | ||
return collection; | ||
} | ||
function printGenHelp(opts, schema) { | ||
print_help_1.printHelp(print_help_1.commandName + " generate " + opts.collectionName + ":" + opts.schematicName, __assign({}, schema, { properties: __assign({}, schema.properties, { dryRun: "Runs through and reports activity without writing to disk." }) })); | ||
print_help_1.printHelp(`${print_help_1.commandName} generate ${opts.collectionName}:${opts.schematicName}`, Object.assign({}, schema, { properties: Object.assign({}, schema.properties, { dryRun: `Runs through and reports activity without writing to disk.` }) })); | ||
} | ||
function getSchematicDefaults(root, collection, schematic) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var workspace, result, schematicObject, collectionObject; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: return [4 /*yield*/, new core_1.experimental.workspace.Workspace(core_1.normalize(root), new node_1.NodeJsSyncHost()) | ||
.loadWorkspaceFromHost('workspace.json') | ||
.toPromise()]; | ||
case 1: | ||
workspace = _a.sent(); | ||
result = {}; | ||
if (workspace.getSchematics()) { | ||
schematicObject = workspace.getSchematics()[collection + ":" + schematic]; | ||
if (schematicObject) { | ||
result = __assign({}, result, schematicObject); | ||
} | ||
collectionObject = workspace.getSchematics()[collection]; | ||
if (typeof collectionObject == 'object' && | ||
!Array.isArray(collectionObject)) { | ||
result = __assign({}, result, collectionObject[schematic]); | ||
} | ||
} | ||
return [2 /*return*/, result]; | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const workspace = yield new core_1.experimental.workspace.Workspace(core_1.normalize(root), new node_1.NodeJsSyncHost()) | ||
.loadWorkspaceFromHost('workspace.json') | ||
.toPromise(); | ||
let result = {}; | ||
if (workspace.getSchematics()) { | ||
const schematicObject = workspace.getSchematics()[`${collection}:${schematic}`]; | ||
if (schematicObject) { | ||
result = Object.assign({}, result, schematicObject); | ||
} | ||
}); | ||
const collectionObject = workspace.getSchematics()[collection]; | ||
if (typeof collectionObject == 'object' && | ||
!Array.isArray(collectionObject)) { | ||
result = Object.assign({}, result, collectionObject[schematic]); | ||
} | ||
} | ||
return result; | ||
}); | ||
} | ||
function runSchematic(root, workflow, logger, opts, schematic) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var flattenedSchema, defaults, _a, record, schematicOptions; | ||
return __generator(this, function (_b) { | ||
switch (_b.label) { | ||
case 0: return [4 /*yield*/, workflow.registry | ||
.flatten(schematic.description.schemaJson) | ||
.toPromise()]; | ||
case 1: | ||
flattenedSchema = _b.sent(); | ||
if (!opts.help) return [3 /*break*/, 2]; | ||
printGenHelp(opts, flattenedSchema); | ||
return [3 /*break*/, 7]; | ||
case 2: | ||
if (!(opts.schematicName === 'tao-new')) return [3 /*break*/, 3]; | ||
_a = {}; | ||
return [3 /*break*/, 5]; | ||
case 3: return [4 /*yield*/, getSchematicDefaults(root, opts.collectionName, opts.schematicName)]; | ||
case 4: | ||
_a = _b.sent(); | ||
_b.label = 5; | ||
case 5: | ||
defaults = _a; | ||
record = { loggingQueue: [], error: false }; | ||
workflow.reporter.subscribe(createRecorder(record, logger)); | ||
schematicOptions = params_1.convertAliases(params_1.coerceTypes(opts.schematicOptions, flattenedSchema), flattenedSchema); | ||
return [4 /*yield*/, workflow | ||
.execute({ | ||
collection: opts.collectionName, | ||
schematic: opts.schematicName, | ||
options: __assign({}, defaults, schematicOptions), | ||
debug: opts.debug, | ||
logger: logger | ||
}) | ||
.toPromise()]; | ||
case 6: | ||
_b.sent(); | ||
if (!record.error) { | ||
record.loggingQueue.forEach(function (log) { return logger.info(log); }); | ||
} | ||
if (opts.dryRun) { | ||
logger.warn("\nNOTE: The \"dryRun\" flag means no changes were made."); | ||
} | ||
_b.label = 7; | ||
case 7: return [2 /*return*/, 0]; | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const flattenedSchema = yield workflow.registry | ||
.flatten(schematic.description.schemaJson) | ||
.toPromise(); | ||
if (opts.help) { | ||
printGenHelp(opts, flattenedSchema); | ||
} | ||
else { | ||
const defaults = opts.schematicName === 'tao-new' | ||
? {} | ||
: yield getSchematicDefaults(root, opts.collectionName, opts.schematicName); | ||
const record = { loggingQueue: [], error: false }; | ||
workflow.reporter.subscribe(createRecorder(record, logger)); | ||
const schematicOptions = params_1.convertAliases(params_1.coerceTypes(opts.schematicOptions, flattenedSchema), flattenedSchema); | ||
yield workflow | ||
.execute({ | ||
collection: opts.collectionName, | ||
schematic: opts.schematicName, | ||
options: Object.assign({}, defaults, schematicOptions), | ||
debug: opts.debug, | ||
logger | ||
}) | ||
.toPromise(); | ||
if (!record.error) { | ||
record.loggingQueue.forEach(log => logger.info(log)); | ||
} | ||
}); | ||
if (opts.dryRun) { | ||
logger.warn(`\nNOTE: The "dryRun" flag means no changes were made.`); | ||
} | ||
} | ||
return 0; | ||
}); | ||
} | ||
function generate(root, args) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var _this = this; | ||
return __generator(this, function (_a) { | ||
return [2 /*return*/, params_1.handleErrors(logger_1.logger, function () { return __awaiter(_this, void 0, void 0, function () { | ||
var fsHost, opts, _a, _b, workflow, collection, schematic; | ||
return __generator(this, function (_c) { | ||
switch (_c.label) { | ||
case 0: | ||
fsHost = new core_1.virtualFs.ScopedHost(new node_1.NodeJsSyncHost(), core_1.normalize(root)); | ||
_a = parseGenerateOpts; | ||
_b = [args, | ||
'generate']; | ||
return [4 /*yield*/, readDefaultCollection(fsHost)]; | ||
case 1: | ||
opts = _a.apply(void 0, _b.concat([_c.sent()])); | ||
workflow = createWorkflow(fsHost, root, opts); | ||
collection = getCollection(workflow, opts.collectionName); | ||
schematic = collection.createSchematic(opts.schematicName, true); | ||
return [2 /*return*/, runSchematic(root, workflow, logger_1.logger, __assign({}, opts, { schematicName: schematic.description.name }), schematic)]; | ||
} | ||
}); | ||
}); })]; | ||
}); | ||
return __awaiter(this, void 0, void 0, function* () { | ||
return params_1.handleErrors(logger_1.logger, () => __awaiter(this, void 0, void 0, function* () { | ||
const fsHost = new core_1.virtualFs.ScopedHost(new node_1.NodeJsSyncHost(), core_1.normalize(root)); | ||
const opts = parseGenerateOpts(args, 'generate', yield readDefaultCollection(fsHost)); | ||
const workflow = yield createWorkflow(fsHost, root, opts); | ||
const collection = getCollection(workflow, opts.collectionName); | ||
const schematic = collection.createSchematic(opts.schematicName, true); | ||
return runSchematic(root, workflow, logger_1.logger, Object.assign({}, opts, { schematicName: schematic.description.name }), schematic); | ||
})); | ||
}); | ||
@@ -338,26 +275,17 @@ } | ||
function readDefaultCollection(host) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var workspaceJson; | ||
return __generator(this, function (_a) { | ||
workspaceJson = JSON.parse(new schematics_1.HostTree(host).read('workspace.json').toString()); | ||
return [2 /*return*/, workspaceJson.cli ? workspaceJson.cli.defaultCollection : null]; | ||
}); | ||
return __awaiter(this, void 0, void 0, function* () { | ||
const workspaceJson = JSON.parse(new schematics_1.HostTree(host).read('workspace.json').toString()); | ||
return workspaceJson.cli ? workspaceJson.cli.defaultCollection : null; | ||
}); | ||
} | ||
function taoNew(root, args) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var _this = this; | ||
return __generator(this, function (_a) { | ||
return [2 /*return*/, params_1.handleErrors(logger_1.logger, function () { return __awaiter(_this, void 0, void 0, function () { | ||
var fsHost, opts, workflow, collection, schematic; | ||
return __generator(this, function (_a) { | ||
fsHost = new core_1.virtualFs.ScopedHost(new node_1.NodeJsSyncHost(), core_1.normalize(root)); | ||
opts = parseGenerateOpts(args, 'new', null); | ||
workflow = createWorkflow(fsHost, root, opts); | ||
collection = getCollection(workflow, opts.collectionName); | ||
schematic = collection.createSchematic('tao-new', true); | ||
return [2 /*return*/, runSchematic(root, workflow, logger_1.logger, __assign({}, opts, { schematicName: schematic.description.name }), schematic)]; | ||
}); | ||
}); })]; | ||
}); | ||
return __awaiter(this, void 0, void 0, function* () { | ||
return params_1.handleErrors(logger_1.logger, () => __awaiter(this, void 0, void 0, function* () { | ||
const fsHost = new core_1.virtualFs.ScopedHost(new node_1.NodeJsSyncHost(), core_1.normalize(root)); | ||
const opts = parseGenerateOpts(args, 'new', null); | ||
const workflow = yield createWorkflow(fsHost, root, opts); | ||
const collection = getCollection(workflow, opts.collectionName); | ||
const schematic = collection.createSchematic('tao-new', true); | ||
return runSchematic(root, workflow, logger_1.logger, Object.assign({}, opts, { schematicName: schematic.description.name }), schematic); | ||
})); | ||
}); | ||
@@ -369,2 +297,1 @@ } | ||
} | ||
var templateObject_1, templateObject_2; |
"use strict"; | ||
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { | ||
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } | ||
return cooked; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var core_1 = require("@angular-devkit/core"); | ||
var logger_1 = require("../shared/logger"); | ||
var print_help_1 = require("../shared/print-help"); | ||
var core_2 = require("@angular-devkit/core"); | ||
const core_1 = require("@angular-devkit/core"); | ||
const logger_1 = require("../shared/logger"); | ||
const print_help_1 = require("../shared/print-help"); | ||
const core_2 = require("@angular-devkit/core"); | ||
function printHelp() { | ||
logger_1.logger.info(core_1.tags.stripIndent(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n ", "\n \n ", "\n ", " new ", "\n \n ", "\n ", " generate ", "\n ", " g ", "\n\n ", " \n ", " run ", "\n ", " r ", "\n \n You can also use the infix notation to run a target:\n ", " [target] [project] [options, ...]\n "], ["\n ", "\n \n ", "\n ", " new ", | ||
"\n \n ", "\n ", " generate ", | ||
"\n ", " g ", | ||
"\n\n ", " \n ", " run ", | ||
"\n ", " r ", | ||
"\n \n You can also use the infix notation to run a target:\n ", " [target] [project] [options, ...]\n "])), core_2.terminal.bold(print_help_1.toolDescription), core_2.terminal.bold('Create a new project.'), print_help_1.commandName, core_2.terminal.grey('[project-name] [--collection=schematic-collection] [options, ...]'), core_2.terminal.bold('Generate code.'), print_help_1.commandName, core_2.terminal.grey('[schematic-collection:][schematic] [options, ...]'), print_help_1.commandName, core_2.terminal.grey('[schematic-collection:][schematic] [options, ...]'), core_2.terminal.bold('Run target.'), print_help_1.commandName, core_2.terminal.grey('[project][:target][:configuration] [options, ...]'), print_help_1.commandName, core_2.terminal.grey('[project][:target][:configuration] [options, ...]'), print_help_1.commandName)); | ||
logger_1.logger.info(core_1.tags.stripIndent ` | ||
${core_2.terminal.bold(print_help_1.toolDescription)} | ||
${core_2.terminal.bold('Create a new project.')} | ||
${print_help_1.commandName} new ${core_2.terminal.grey('[project-name] [--collection=schematic-collection] [options, ...]')} | ||
${core_2.terminal.bold('Generate code.')} | ||
${print_help_1.commandName} generate ${core_2.terminal.grey('[schematic-collection:][schematic] [options, ...]')} | ||
${print_help_1.commandName} g ${core_2.terminal.grey('[schematic-collection:][schematic] [options, ...]')} | ||
${core_2.terminal.bold('Run target.')} | ||
${print_help_1.commandName} run ${core_2.terminal.grey('[project][:target][:configuration] [options, ...]')} | ||
${print_help_1.commandName} r ${core_2.terminal.grey('[project][:target][:configuration] [options, ...]')} | ||
You can also use the infix notation to run a target: | ||
${print_help_1.commandName} [target] [project] [options, ...] | ||
${core_2.terminal.bold('Migrate packages and create migrations.json.')} | ||
${print_help_1.commandName} migrate ${core_2.terminal.grey('[package-name]')} | ||
${core_2.terminal.bold('Run migrations.')} | ||
${print_help_1.commandName} migrate --run-migrations=[filename]')} | ||
)} | ||
`); | ||
return 0; | ||
} | ||
exports.printHelp = printHelp; | ||
var templateObject_1; |
@@ -10,51 +10,24 @@ "use strict"; | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var params_1 = require("../shared/params"); | ||
var core_1 = require("@angular-devkit/core"); | ||
var node_1 = require("@angular-devkit/core/node"); | ||
var node_2 = require("@angular-devkit/architect/node"); | ||
var architect_1 = require("@angular-devkit/architect"); | ||
var logger_1 = require("../shared/logger"); | ||
var minimist = require("minimist"); | ||
var print_help_1 = require("../shared/print-help"); | ||
const params_1 = require("../shared/params"); | ||
const core_1 = require("@angular-devkit/core"); | ||
const node_1 = require("@angular-devkit/core/node"); | ||
const node_2 = require("@angular-devkit/architect/node"); | ||
const architect_1 = require("@angular-devkit/architect"); | ||
const logger_1 = require("../shared/logger"); | ||
const minimist = require("minimist"); | ||
const print_help_1 = require("../shared/print-help"); | ||
function throwInvalidInvocation() { | ||
throw new Error("Specify the project name and the target (e.g., " + print_help_1.commandName + " run proj:build)"); | ||
throw new Error(`Specify the project name and the target (e.g., ${print_help_1.commandName} run proj:build)`); | ||
} | ||
function parseRunOpts(args, defaultProjectName) { | ||
var runOptions = params_1.convertToCamelCase(minimist(args, { | ||
const runOptions = params_1.convertToCamelCase(minimist(args, { | ||
boolean: ['help', 'prod'], | ||
string: ['configuration', 'project'] | ||
})); | ||
var help = runOptions.help; | ||
const help = runOptions.help; | ||
if (!runOptions._ || !runOptions._[0]) { | ||
throwInvalidInvocation(); | ||
} | ||
var _a = runOptions._[0].split(':'), project = _a[0], target = _a[1], configuration = _a[2]; | ||
let [project, target, configuration] = runOptions._[0].split(':'); | ||
if (!project && defaultProjectName) | ||
@@ -74,3 +47,3 @@ project = defaultProjectName; | ||
} | ||
var res = { project: project, target: target, configuration: configuration, help: help, runOptions: runOptions }; | ||
const res = { project, target, configuration, help, runOptions }; | ||
delete runOptions['help']; | ||
@@ -84,63 +57,42 @@ delete runOptions['_']; | ||
function printRunHelp(opts, schema) { | ||
print_help_1.printHelp(print_help_1.commandName + " run " + opts.project + ":" + opts.target, schema); | ||
print_help_1.printHelp(`${print_help_1.commandName} run ${opts.project}:${opts.target}`, schema); | ||
} | ||
function run(root, args) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var _this = this; | ||
return __generator(this, function (_a) { | ||
return [2 /*return*/, params_1.handleErrors(logger_1.logger, function () { return __awaiter(_this, void 0, void 0, function () { | ||
var fsHost, workspace, opts, registry, architectHost, architect, builderConf, builderDesc, flattenedSchema, runOptions, run_1, result; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
fsHost = new node_1.NodeJsSyncHost(); | ||
return [4 /*yield*/, new core_1.experimental.workspace.Workspace(core_1.normalize(root), fsHost) | ||
.loadWorkspaceFromHost('workspace.json') | ||
.toPromise()]; | ||
case 1: | ||
workspace = _a.sent(); | ||
opts = parseRunOpts(args, workspace.getDefaultProjectName()); | ||
registry = new core_1.json.schema.CoreSchemaRegistry(); | ||
registry.addPostTransform(core_1.schema.transforms.addUndefinedDefaults); | ||
architectHost = new node_2.WorkspaceNodeModulesArchitectHost(workspace, root); | ||
architect = new architect_1.Architect(architectHost, registry); | ||
return [4 /*yield*/, architectHost.getBuilderNameForTarget({ | ||
project: opts.project, | ||
target: opts.target | ||
})]; | ||
case 2: | ||
builderConf = _a.sent(); | ||
return [4 /*yield*/, architectHost.resolveBuilder(builderConf)]; | ||
case 3: | ||
builderDesc = _a.sent(); | ||
return [4 /*yield*/, registry | ||
.flatten(builderDesc.optionSchema) | ||
.toPromise()]; | ||
case 4: | ||
flattenedSchema = _a.sent(); | ||
if (!opts.help) return [3 /*break*/, 5]; | ||
printRunHelp(opts, flattenedSchema); | ||
return [2 /*return*/, 0]; | ||
case 5: | ||
runOptions = params_1.coerceTypes(opts.runOptions, flattenedSchema); | ||
return [4 /*yield*/, architect.scheduleTarget({ | ||
project: opts.project, | ||
target: opts.target, | ||
configuration: opts.configuration | ||
}, runOptions, { logger: logger_1.logger })]; | ||
case 6: | ||
run_1 = _a.sent(); | ||
return [4 /*yield*/, run_1.output.toPromise()]; | ||
case 7: | ||
result = _a.sent(); | ||
return [4 /*yield*/, run_1.stop()]; | ||
case 8: | ||
_a.sent(); | ||
return [2 /*return*/, result.success ? 0 : 1]; | ||
} | ||
}); | ||
}); })]; | ||
}); | ||
return __awaiter(this, void 0, void 0, function* () { | ||
return params_1.handleErrors(logger_1.logger, () => __awaiter(this, void 0, void 0, function* () { | ||
const fsHost = new node_1.NodeJsSyncHost(); | ||
const workspace = yield new core_1.experimental.workspace.Workspace(core_1.normalize(root), fsHost) | ||
.loadWorkspaceFromHost('workspace.json') | ||
.toPromise(); | ||
const opts = parseRunOpts(args, workspace.getDefaultProjectName()); | ||
const registry = new core_1.json.schema.CoreSchemaRegistry(); | ||
registry.addPostTransform(core_1.schema.transforms.addUndefinedDefaults); | ||
const architectHost = new node_2.WorkspaceNodeModulesArchitectHost(workspace, root); | ||
const architect = new architect_1.Architect(architectHost, registry); | ||
const builderConf = yield architectHost.getBuilderNameForTarget({ | ||
project: opts.project, | ||
target: opts.target | ||
}); | ||
const builderDesc = yield architectHost.resolveBuilder(builderConf); | ||
const flattenedSchema = yield registry | ||
.flatten(builderDesc.optionSchema) | ||
.toPromise(); | ||
if (opts.help) { | ||
printRunHelp(opts, flattenedSchema); | ||
return 0; | ||
} | ||
else { | ||
const runOptions = params_1.coerceTypes(opts.runOptions, flattenedSchema); | ||
const run = yield architect.scheduleTarget({ | ||
project: opts.project, | ||
target: opts.target, | ||
configuration: opts.configuration | ||
}, runOptions, { logger: logger_1.logger }); | ||
const result = yield run.output.toPromise(); | ||
yield run.stop(); | ||
return result.success ? 0 : 1; | ||
} | ||
})); | ||
}); | ||
} | ||
exports.run = run; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var node_1 = require("@angular-devkit/core/node"); | ||
var core_1 = require("@angular-devkit/core"); | ||
const node_1 = require("@angular-devkit/core/node"); | ||
const core_1 = require("@angular-devkit/core"); | ||
exports.logger = node_1.createConsoleLogger(false, process.stdout, process.stderr, { | ||
warn: function (s) { return core_1.terminal.bold(core_1.terminal.yellow(s)); }, | ||
error: function (s) { return core_1.terminal.bold(core_1.terminal.red(s)); }, | ||
fatal: function (s) { return core_1.terminal.bold(core_1.terminal.red(s)); } | ||
warn: s => core_1.terminal.bold(core_1.terminal.yellow(s)), | ||
error: s => core_1.terminal.bold(core_1.terminal.red(s)), | ||
fatal: s => core_1.terminal.bold(core_1.terminal.red(s)) | ||
}); |
"use strict"; | ||
var __assign = (this && this.__assign) || function () { | ||
__assign = Object.assign || function(t) { | ||
for (var s, i = 1, n = arguments.length; i < n; i++) { | ||
s = arguments[i]; | ||
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) | ||
t[p] = s[p]; | ||
} | ||
return t; | ||
}; | ||
return __assign.apply(this, arguments); | ||
}; | ||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||
@@ -21,52 +10,18 @@ return new (P || (P = Promise))(function (resolve, reject) { | ||
}; | ||
var __generator = (this && this.__generator) || function (thisArg, body) { | ||
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; | ||
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; | ||
function verb(n) { return function (v) { return step([n, v]); }; } | ||
function step(op) { | ||
if (f) throw new TypeError("Generator is already executing."); | ||
while (_) try { | ||
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; | ||
if (y = 0, t) op = [op[0] & 2, t.value]; | ||
switch (op[0]) { | ||
case 0: case 1: t = op; break; | ||
case 4: _.label++; return { value: op[1], done: false }; | ||
case 5: _.label++; y = op[1]; op = [0]; continue; | ||
case 7: op = _.ops.pop(); _.trys.pop(); continue; | ||
default: | ||
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } | ||
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } | ||
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } | ||
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } | ||
if (t[2]) _.ops.pop(); | ||
_.trys.pop(); continue; | ||
} | ||
op = body.call(thisArg, _); | ||
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } | ||
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; | ||
} | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var schematics_1 = require("@angular-devkit/schematics"); | ||
const schematics_1 = require("@angular-devkit/schematics"); | ||
function handleErrors(logger, fn) { | ||
return __awaiter(this, void 0, void 0, function () { | ||
var err_1; | ||
return __generator(this, function (_a) { | ||
switch (_a.label) { | ||
case 0: | ||
_a.trys.push([0, 2, , 3]); | ||
return [4 /*yield*/, fn()]; | ||
case 1: return [2 /*return*/, _a.sent()]; | ||
case 2: | ||
err_1 = _a.sent(); | ||
if (err_1 instanceof schematics_1.UnsuccessfulWorkflowExecution) { | ||
logger.fatal('The Schematic workflow failed. See above.'); | ||
} | ||
else { | ||
logger.fatal(err_1.message); | ||
} | ||
return [2 /*return*/, 1]; | ||
case 3: return [2 /*return*/]; | ||
return __awaiter(this, void 0, void 0, function* () { | ||
try { | ||
return yield fn(); | ||
} | ||
catch (err) { | ||
if (err instanceof schematics_1.UnsuccessfulWorkflowExecution) { | ||
logger.fatal('The Schematic workflow failed. See above.'); | ||
} | ||
}); | ||
else { | ||
logger.fatal(err.message); | ||
} | ||
return 1; | ||
} | ||
}); | ||
@@ -76,6 +31,3 @@ } | ||
function convertToCamelCase(parsed) { | ||
return Object.keys(parsed).reduce(function (m, c) { | ||
var _a; | ||
return (__assign({}, m, (_a = {}, _a[camelCase(c)] = parsed[c], _a))); | ||
}, {}); | ||
return Object.keys(parsed).reduce((m, c) => (Object.assign({}, m, { [camelCase(c)]: parsed[c] })), {}); | ||
} | ||
@@ -87,3 +39,3 @@ exports.convertToCamelCase = convertToCamelCase; | ||
.toLowerCase() | ||
.replace(/-(.)/g, function (match, group1) { return group1.toUpperCase(); }); | ||
.replace(/-(.)/g, (match, group1) => group1.toUpperCase()); | ||
} | ||
@@ -95,3 +47,3 @@ else { | ||
function coerceTypes(opts, schema) { | ||
Object.keys(opts).forEach(function (k) { | ||
Object.keys(opts).forEach(k => { | ||
if (schema.properties[k] && schema.properties[k].type == 'boolean') { | ||
@@ -108,3 +60,3 @@ opts[k] = opts[k] === true || opts[k] === 'true'; | ||
function convertAliases(opts, schema) { | ||
return Object.keys(opts).reduce(function (acc, k) { | ||
return Object.keys(opts).reduce((acc, k) => { | ||
if (schema.properties[k]) { | ||
@@ -114,6 +66,3 @@ acc[k] = opts[k]; | ||
else { | ||
var found = Object.entries(schema.properties).find(function (_a) { | ||
var _ = _a[0], d = _a[1]; | ||
return d.alias === k; | ||
}); | ||
const found = Object.entries(schema.properties).find(([_, d]) => d.alias === k); | ||
if (found) { | ||
@@ -120,0 +69,0 @@ acc[found[0]] = opts[k]; |
"use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var params_1 = require("./params"); | ||
describe('params', function () { | ||
describe('convertToCamelCase', function () { | ||
it('should convert dash case to camel case', function () { | ||
const params_1 = require("./params"); | ||
describe('params', () => { | ||
describe('convertToCamelCase', () => { | ||
it('should convert dash case to camel case', () => { | ||
expect(params_1.convertToCamelCase({ | ||
@@ -13,3 +13,3 @@ 'one-two': 1 | ||
}); | ||
it('should not convert camel case', function () { | ||
it('should not convert camel case', () => { | ||
expect(params_1.convertToCamelCase({ | ||
@@ -21,3 +21,3 @@ oneTwo: 1 | ||
}); | ||
it('should handle mixed case', function () { | ||
it('should handle mixed case', () => { | ||
expect(params_1.convertToCamelCase({ | ||
@@ -30,4 +30,4 @@ 'one-Two': 1 | ||
}); | ||
describe('convertAliases', function () { | ||
it('should replace aliases with actual keys', function () { | ||
describe('convertAliases', () => { | ||
it('should replace aliases with actual keys', () => { | ||
expect(params_1.convertAliases({ d: 'test' }, { | ||
@@ -39,3 +39,3 @@ properties: { directory: { type: 'string', alias: 'd' } }, | ||
}); | ||
it('should filter out unknown keys without alias', function () { | ||
it('should filter out unknown keys without alias', () => { | ||
expect(params_1.convertAliases({ d: 'test' }, { | ||
@@ -42,0 +42,0 @@ properties: { directory: { type: 'string' } }, |
"use strict"; | ||
var __makeTemplateObject = (this && this.__makeTemplateObject) || function (cooked, raw) { | ||
if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } | ||
return cooked; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
var logger_1 = require("./logger"); | ||
var core_1 = require("@angular-devkit/core"); | ||
var core_2 = require("@angular-devkit/core"); | ||
const logger_1 = require("./logger"); | ||
const core_1 = require("@angular-devkit/core"); | ||
const core_2 = require("@angular-devkit/core"); | ||
function printHelp(header, schema) { | ||
var allPositional = Object.keys(schema.properties).filter(function (key) { | ||
var p = schema.properties[key]; | ||
const allPositional = Object.keys(schema.properties).filter(key => { | ||
const p = schema.properties[key]; | ||
return p['$default'] && p['$default']['$source'] === 'argv'; | ||
}); | ||
var positional = allPositional.length > 0 ? " [" + allPositional[0] + "]" : ''; | ||
var args = Object.keys(schema.properties) | ||
.map(function (name) { | ||
var d = schema.properties[name]; | ||
var def = d.default ? " (default: " + d.default + ")" : ''; | ||
return formatOption(name, "" + d.description + def); | ||
const positional = allPositional.length > 0 ? ` [${allPositional[0]}]` : ''; | ||
const args = Object.keys(schema.properties) | ||
.map(name => { | ||
const d = schema.properties[name]; | ||
const def = d.default ? ` (default: ${d.default})` : ''; | ||
return formatOption(name, `${d.description}${def}`); | ||
}) | ||
.join('\n'); | ||
logger_1.logger.info(core_1.tags.stripIndent(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n", "\n\n", ":\n", "\n", "\n "], ["\n", "\n\n", ":\n", "\n", "\n "])), core_2.terminal.bold(header + positional + ' [options,...]'), core_2.terminal.bold('Options'), args, formatOption('help', 'Show available options for project target.'))); | ||
logger_1.logger.info(core_1.tags.stripIndent ` | ||
${core_2.terminal.bold(header + positional + ' [options,...]')} | ||
${core_2.terminal.bold('Options')}: | ||
${args} | ||
${formatOption('help', 'Show available options for project target.')} | ||
`); | ||
} | ||
exports.printHelp = printHelp; | ||
function formatOption(name, description) { | ||
return " --" + (name + ' ').substr(0, 22) + core_2.terminal.grey(description); | ||
return ` --${(name + ' ').substr(0, 22)}${core_2.terminal.grey(description)}`; | ||
} | ||
@@ -36,2 +38,1 @@ exports.commandName = 'nx'; | ||
exports.setCommandNameAndDescription = setCommandNameAndDescription; | ||
var templateObject_1; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Shell access
Supply chain riskThis module accesses the system shell. Accessing the system shell increases the risk of executing arbitrary code.
Found 1 instance in 1 package
Dynamic require
Supply chain riskDynamic require can indicate the package is performing dangerous or unsafe dynamic code execution.
Found 1 instance in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
68660
25
1409
6
1
5
3
+ Addedstrip-json-comments@2.0.1
+ Added@angular-devkit/architect@0.803.2(transitive)
+ Added@angular-devkit/core@8.3.2(transitive)
+ Added@angular-devkit/schematics@8.3.2(transitive)
+ Addedajv@6.10.2(transitive)
+ Addedstrip-json-comments@2.0.1(transitive)
- Removed@angular-devkit/architect@0.801.1(transitive)
- Removed@angular-devkit/core@8.1.1(transitive)
- Removed@angular-devkit/schematics@8.1.1(transitive)
- Removedajv@6.10.0(transitive)
Updated@angular-devkit/core@8.3.2