igniteui-cli 15.0.0-rc.3 → 15.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/lib/cli.js +36 -40
- package/lib/commands/add.js +29 -15
- package/lib/commands/ai-config.js +2 -2
- package/lib/commands/build.js +3 -5
- package/lib/commands/config.js +10 -14
- package/lib/commands/doc.js +4 -5
- package/lib/commands/generate.js +5 -7
- package/lib/commands/list.js +46 -7
- package/lib/commands/mcp.js +1 -2
- package/lib/commands/new.js +11 -6
- package/lib/commands/start.js +3 -4
- package/lib/commands/test.js +3 -4
- package/lib/commands/types.d.ts +0 -15
- package/lib/commands/types.js +0 -27
- package/lib/commands/upgrade.js +4 -4
- package/package.json +5 -5
- package/templates/react/igr-ts/grid/basic/index.js +1 -1
- package/templates/react/igr-ts/projects/_base/files/__dot__claude/skills/README.md +10 -1
- package/templates/react/igr-ts/projects/_base/files/__dot__claude/skills/igniteui-react-components/SKILL.md +19 -11
- package/templates/react/igr-ts/projects/_base/files/__dot__claude/skills/igniteui-react-components/reference/CHARTS-GRIDS.md +3 -0
- package/templates/react/igr-ts/projects/_base/files/__dot__claude/skills/igniteui-react-components/reference/COMPONENT-CATALOGUE.md +3 -0
- package/templates/react/igr-ts/projects/_base/files/__dot__claude/skills/igniteui-react-components/reference/MCP-SERVER.md +77 -0
- package/templates/react/igr-ts/projects/_base/files/__dot__claude/skills/igniteui-react-customize-theme/SKILL.md +22 -12
- package/templates/react/igr-ts/projects/_base/files/__dot__claude/skills/igniteui-react-generate-from-image-design/SKILL.md +229 -0
- package/templates/react/igr-ts/projects/_base/files/__dot__claude/skills/igniteui-react-generate-from-image-design/reference/component-mapping.md +146 -0
- package/templates/react/igr-ts/projects/_base/files/__dot__claude/skills/igniteui-react-generate-from-image-design/reference/gotchas.md +200 -0
- package/templates/react/igr-ts/projects/_base/files/__dot__vscode/mcp.json +1 -1
- package/templates/react/igr-ts/projects/_base/files/package.json +1 -1
- package/templates/webcomponents/igc-ts/card/default/files/src/app/__path__/__filePrefix__.ts +7 -5
- package/templates/webcomponents/igc-ts/dock-manager/default/files/src/app/__path__/__filePrefix__.ts +1 -1
- package/templates/webcomponents/igc-ts/dock-manager/default/index.js +1 -1
- package/templates/webcomponents/igc-ts/grid/default/files/src/app/__path__/__filePrefix__.ts +1 -1
- package/templates/webcomponents/igc-ts/grid/grid-editing/files/src/app/__path__/__filePrefix__.ts +1 -1
- package/templates/webcomponents/igc-ts/projects/_base/files/__dot__claude/skills/README.md +3 -0
- package/templates/webcomponents/igc-ts/projects/_base/files/__dot__claude/skills/igniteui-wc-choose-components/SKILL.md +20 -0
- package/templates/webcomponents/igc-ts/projects/_base/files/__dot__claude/skills/igniteui-wc-choose-components/reference/mcp-setup.md +82 -0
- package/templates/webcomponents/igc-ts/projects/_base/files/__dot__claude/skills/igniteui-wc-generate-from-image-design/SKILL.md +228 -0
- package/templates/webcomponents/igc-ts/projects/_base/files/__dot__claude/skills/igniteui-wc-generate-from-image-design/references/component-mapping.md +130 -0
- package/templates/webcomponents/igc-ts/projects/_base/files/__dot__claude/skills/igniteui-wc-generate-from-image-design/references/gotchas.md +147 -0
- package/templates/webcomponents/igc-ts/projects/_base/files/__dot__vscode/mcp.json +1 -1
- package/templates/webcomponents/igc-ts/projects/_base/files/eslint.config.js +5 -3
- package/templates/webcomponents/igc-ts/projects/_base/files/index.html +1 -1
- package/templates/webcomponents/igc-ts/projects/_base/files/package.json +7 -22
- package/templates/webcomponents/igc-ts/projects/_base/files/src/app/app-routing.ts +1 -1
- package/templates/webcomponents/igc-ts/projects/_base/files/tsconfig.json +22 -29
- package/templates/webcomponents/igc-ts/projects/_base/files/vite.config.ts +3 -4
- package/templates/webcomponents/igc-ts/projects/_base_with_home/files/index.html +1 -1
- package/templates/webcomponents/igc-ts/projects/_base_with_home/files/package.json +8 -23
- package/templates/webcomponents/igc-ts/projects/_base_with_home/files/src/app/app-routing.ts +1 -1
- package/templates/webcomponents/igc-ts/projects/side-nav/files/src/app/app.ts +11 -8
- package/templates/react/igr-ts/projects/_base/files/__dot__claude/skills/igniteui-react-customize-theme/reference/SASS-THEMING.md +0 -125
- package/templates/webcomponents/igc-ts/projects/_base/files/tsconfig.test.json +0 -14
package/README.md
CHANGED
|
@@ -66,7 +66,7 @@ ig new <project name> --framework=<framework> --type=<proj-type> --theme=<theme>
|
|
|
66
66
|
```
|
|
67
67
|
This will create the project and will install the needed dependencies.
|
|
68
68
|
|
|
69
|
-
Parameters besides name are optional. Framework
|
|
69
|
+
Parameters besides name are optional. Framework defaults to "angular", project type defaults to the first available in the framework and theme to the first available for the project. For more information visit [ig new](https://github.com/IgniteUI/igniteui-cli/wiki/New) Wiki page.
|
|
70
70
|
|
|
71
71
|
#### Generate Ignite UI for Angular project
|
|
72
72
|
|
|
@@ -103,6 +103,12 @@ For full list of supported templates in the current project you can simply run [
|
|
|
103
103
|
ig list
|
|
104
104
|
```
|
|
105
105
|
|
|
106
|
+
When run outside of a generated project and without a `--framework` argument, `ig list` prints every supported framework along with its project types and available project templates — a handy overview before running `ig new`:
|
|
107
|
+
```bash
|
|
108
|
+
ig list
|
|
109
|
+
```
|
|
110
|
+
Pass `-f <framework> [-t <projectType>]` to list component templates for a specific framework/project type instead.
|
|
111
|
+
|
|
106
112
|
### Build and run
|
|
107
113
|
```bash
|
|
108
114
|
ig build
|
package/lib/cli.js
CHANGED
|
@@ -39,22 +39,41 @@ function run() {
|
|
|
39
39
|
commands_1.generate.templateManager = templateManager;
|
|
40
40
|
commands_1.list.templateManager = templateManager;
|
|
41
41
|
commands_1.upgrade.templateManager = templateManager;
|
|
42
|
+
const registeredCommands = [
|
|
43
|
+
commands_1.newCommand, commands_1.add, commands_1.build, commands_1.start, commands_1.generate, commands_1.config, commands_1.doc, commands_1.test, commands_1.list, commands_1.upgrade, commands_1.mcp, commands_1.aiConfig
|
|
44
|
+
];
|
|
42
45
|
const yargsModule = args ? (0, yargs_1.default)(args) : yargs_1.default;
|
|
43
|
-
|
|
44
|
-
.scriptName("")
|
|
45
|
-
.usage("
|
|
46
|
-
.
|
|
47
|
-
.
|
|
48
|
-
.
|
|
49
|
-
.
|
|
50
|
-
|
|
51
|
-
.command(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
.command(
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
46
|
+
let chain = yargsModule
|
|
47
|
+
.scriptName("ig")
|
|
48
|
+
.usage("Usage: $0 [command] [options]\n\nRun without a command to start the interactive step-by-step project setup.")
|
|
49
|
+
.example("$0", "Launch the interactive step-by-step project setup")
|
|
50
|
+
.example("$0 new my-app --framework angular", "Scaffold a new Ignite UI for Angular project")
|
|
51
|
+
.example("$0 add grid main-grid", "Add a Grid component to the current project")
|
|
52
|
+
.example("$0 list", "Show all frameworks and their project templates");
|
|
53
|
+
for (const cmd of registeredCommands) {
|
|
54
|
+
chain = chain.command(cmd);
|
|
55
|
+
}
|
|
56
|
+
yield chain
|
|
57
|
+
.command({
|
|
58
|
+
command: "$0",
|
|
59
|
+
describe: false,
|
|
60
|
+
handler: (argv) => __awaiter(this, void 0, void 0, function* () {
|
|
61
|
+
if (argv.version)
|
|
62
|
+
return; // version handled in the parseAsync callback
|
|
63
|
+
const unknown = argv._[0];
|
|
64
|
+
if (unknown) {
|
|
65
|
+
process.exitCode = 1;
|
|
66
|
+
cli_core_1.Util.error(`Unknown command: "${unknown}"`, "red");
|
|
67
|
+
cli_core_1.Util.log(yield yargsModule.getHelp());
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
cli_core_1.Util.log("Starting Step by step mode.", "green");
|
|
71
|
+
cli_core_1.Util.log("For available commands, stop this execution and use --help.", "green");
|
|
72
|
+
const prompts = new PromptSession_1.PromptSession(templateManager);
|
|
73
|
+
prompts.start();
|
|
74
|
+
}
|
|
75
|
+
})
|
|
76
|
+
})
|
|
58
77
|
.version(false) // disable built-in `yargs.version` to override it with our custom option
|
|
59
78
|
.options({
|
|
60
79
|
version: {
|
|
@@ -71,16 +90,6 @@ function run() {
|
|
|
71
90
|
hidden: true
|
|
72
91
|
}
|
|
73
92
|
})
|
|
74
|
-
.middleware((argv) => {
|
|
75
|
-
// invoked after parsing and before the `yargsModule.parseAsync` callback
|
|
76
|
-
const command = argv._[0];
|
|
77
|
-
if (command === commands_1.ADD_COMMAND_NAME && !commands_1.add.check(argv)) {
|
|
78
|
-
argv.skipExecution = true;
|
|
79
|
-
yargsModule.showHelp();
|
|
80
|
-
}
|
|
81
|
-
}, false // setting this to `true` is supposed to exec the middleware after parsing and before arg validation
|
|
82
|
-
// but in reality it also does not trigger the command's handler (╯°□°)╯︵ ┻━┻
|
|
83
|
-
)
|
|
84
93
|
.fail((msg, err, yargs) => {
|
|
85
94
|
var _a;
|
|
86
95
|
const message = (_a = err === null || err === void 0 ? void 0 : err.message) !== null && _a !== void 0 ? _a : msg;
|
|
@@ -90,6 +99,7 @@ function run() {
|
|
|
90
99
|
process.exitCode = 1;
|
|
91
100
|
}
|
|
92
101
|
})
|
|
102
|
+
.wrap(yargs_1.default.terminalWidth())
|
|
93
103
|
.help().alias("help", "h")
|
|
94
104
|
.parseAsync(args, // the args to parse to argv
|
|
95
105
|
{}, // docs say context to pass in to handlers, but nuh-uh, it's just garbage
|
|
@@ -104,8 +114,7 @@ function run() {
|
|
|
104
114
|
}
|
|
105
115
|
process.exit(1);
|
|
106
116
|
}
|
|
107
|
-
|
|
108
|
-
if (helpRequest) {
|
|
117
|
+
if (argv.h || argv.help) {
|
|
109
118
|
logHelp();
|
|
110
119
|
}
|
|
111
120
|
// since we are providing a custom callback to `yargsModule.parseAsync`, we need to handle the output as well
|
|
@@ -120,19 +129,6 @@ function run() {
|
|
|
120
129
|
// internal testing only
|
|
121
130
|
/* istanbul ignore next */
|
|
122
131
|
cli_core_1.App.testMode = !!argv.testMode;
|
|
123
|
-
if (!helpRequest && !commands_1.ALL_COMMANDS.has(command === null || command === void 0 ? void 0 : command.toString())) {
|
|
124
|
-
if (command) {
|
|
125
|
-
process.exitCode = 1;
|
|
126
|
-
cli_core_1.Util.error(`Unknown command: "${command}"`, "red");
|
|
127
|
-
cli_core_1.Util.log(yield yargsModule.getHelp());
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
cli_core_1.Util.log("Starting Step by step mode.", "green");
|
|
131
|
-
cli_core_1.Util.log("For available commands, stop this execution and use --help.", "green");
|
|
132
|
-
const prompts = new PromptSession_1.PromptSession(templateManager);
|
|
133
|
-
prompts.start();
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
132
|
}));
|
|
137
133
|
});
|
|
138
134
|
}
|
package/lib/commands/add.js
CHANGED
|
@@ -11,35 +11,48 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
const cli_core_1 = require("@igniteui/cli-core");
|
|
13
13
|
const PromptSession_1 = require("./../PromptSession");
|
|
14
|
+
let yargsContext;
|
|
14
15
|
const command = {
|
|
15
16
|
command: "add [template] [name]",
|
|
16
|
-
describe: "
|
|
17
|
+
describe: "Adds a component or view template to the current project",
|
|
17
18
|
templateManager: null,
|
|
18
|
-
builder: {
|
|
19
|
-
|
|
19
|
+
builder: (yargs) => {
|
|
20
|
+
yargsContext = yargs;
|
|
21
|
+
return yargs
|
|
22
|
+
.positional("template", {
|
|
23
|
+
describe: `Template ID (e.g. "grid", "combo"); same as --template/-t`,
|
|
24
|
+
type: "string"
|
|
25
|
+
})
|
|
26
|
+
.positional("name", {
|
|
27
|
+
describe: "File name (same as --name/-n)",
|
|
28
|
+
type: "string"
|
|
29
|
+
})
|
|
30
|
+
.option("template", {
|
|
20
31
|
alias: "t",
|
|
21
|
-
|
|
32
|
+
describe: `Template ID (e.g. "grid", "combo")`,
|
|
22
33
|
type: "string",
|
|
23
34
|
global: true
|
|
24
|
-
}
|
|
25
|
-
|
|
35
|
+
})
|
|
36
|
+
.option("name", {
|
|
26
37
|
alias: "n",
|
|
27
|
-
|
|
38
|
+
describe: "File name",
|
|
28
39
|
type: "string",
|
|
29
40
|
global: true
|
|
30
|
-
}
|
|
31
|
-
|
|
41
|
+
})
|
|
42
|
+
.option("module", {
|
|
32
43
|
alias: "m",
|
|
33
|
-
|
|
44
|
+
describe: "Module to which the template is to be added",
|
|
34
45
|
type: "string",
|
|
35
46
|
global: true
|
|
36
|
-
}
|
|
37
|
-
|
|
47
|
+
})
|
|
48
|
+
.option("skip-route", {
|
|
38
49
|
alias: "skr",
|
|
39
|
-
describe: "
|
|
50
|
+
describe: "Do not auto-generate an app navigation route for the new component",
|
|
40
51
|
type: "boolean",
|
|
41
52
|
global: true
|
|
42
|
-
}
|
|
53
|
+
})
|
|
54
|
+
.example("$0 add", "Launch guided component picker")
|
|
55
|
+
.example("$0 add grid main-grid", "Add a Grid component named main-grid");
|
|
43
56
|
},
|
|
44
57
|
check: (argv) => {
|
|
45
58
|
if ((!argv.name && argv.template) || (argv.name && !argv.template)) {
|
|
@@ -49,7 +62,8 @@ const command = {
|
|
|
49
62
|
},
|
|
50
63
|
handler(argv) {
|
|
51
64
|
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
if (argv
|
|
65
|
+
if (!command.check(argv)) {
|
|
66
|
+
yargsContext === null || yargsContext === void 0 ? void 0 : yargsContext.showHelp();
|
|
53
67
|
return;
|
|
54
68
|
}
|
|
55
69
|
cli_core_1.GoogleAnalytics.post({
|
|
@@ -46,8 +46,8 @@ function configure(skills = true) {
|
|
|
46
46
|
}
|
|
47
47
|
const command = {
|
|
48
48
|
command: "ai-config",
|
|
49
|
-
describe: "
|
|
50
|
-
builder: (yargs) => yargs
|
|
49
|
+
describe: "Configures Ignite UI AI tooling (MCP servers and AI coding skills)",
|
|
50
|
+
builder: (yargs) => yargs,
|
|
51
51
|
handler(_argv) {
|
|
52
52
|
return __awaiter(this, void 0, void 0, function* () {
|
|
53
53
|
cli_core_1.GoogleAnalytics.post({
|
package/lib/commands/build.js
CHANGED
|
@@ -37,10 +37,8 @@ const fs = __importStar(require("fs"));
|
|
|
37
37
|
const path = __importStar(require("path"));
|
|
38
38
|
const command = {
|
|
39
39
|
command: "build",
|
|
40
|
-
describe: "
|
|
41
|
-
builder: (yargs) =>
|
|
42
|
-
return yargs.usage(""); // do not show any usage instructions before the commands
|
|
43
|
-
},
|
|
40
|
+
describe: "Builds the project",
|
|
41
|
+
builder: (yargs) => yargs,
|
|
44
42
|
templateManager: null,
|
|
45
43
|
handler(argv) {
|
|
46
44
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -56,7 +54,7 @@ const command = {
|
|
|
56
54
|
cli_core_1.Util.log("Build started.");
|
|
57
55
|
yield cli_core_1.PackageManager.ensureIgniteUISource(true, command.templateManager);
|
|
58
56
|
if (!cli_core_1.ProjectConfig.hasLocalConfig()) {
|
|
59
|
-
cli_core_1.Util.error("
|
|
57
|
+
cli_core_1.Util.error("Build command is supported only on existing project created with igniteui-cli", "red");
|
|
60
58
|
return;
|
|
61
59
|
}
|
|
62
60
|
const config = cli_core_1.ProjectConfig.getConfig();
|
package/lib/commands/config.js
CHANGED
|
@@ -3,18 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const cli_core_1 = require("@igniteui/cli-core");
|
|
4
4
|
const command = {
|
|
5
5
|
command: "config",
|
|
6
|
-
describe: "
|
|
6
|
+
describe: "Gets, sets or adds a configuration property (see subcommands)",
|
|
7
7
|
builder: (yargs) => {
|
|
8
8
|
return yargs
|
|
9
9
|
.command({
|
|
10
10
|
command: "get <property>",
|
|
11
11
|
describe: "Gets a configuration property",
|
|
12
12
|
builder: (yargs) => {
|
|
13
|
-
return yargs.
|
|
13
|
+
return yargs.positional("property", {
|
|
14
14
|
describe: "Config property to get",
|
|
15
15
|
type: "string"
|
|
16
|
-
})
|
|
17
|
-
.usage(""); // do not show any usage instructions before the commands list
|
|
16
|
+
});
|
|
18
17
|
},
|
|
19
18
|
handler: command.getHandler
|
|
20
19
|
})
|
|
@@ -22,15 +21,14 @@ const command = {
|
|
|
22
21
|
command: "set <property> <value>",
|
|
23
22
|
describe: "Sets a configuration property",
|
|
24
23
|
builder: (yargs) => {
|
|
25
|
-
return yargs.
|
|
24
|
+
return yargs.positional("property", {
|
|
26
25
|
describe: "Config property to set",
|
|
27
26
|
type: "string"
|
|
28
27
|
})
|
|
29
|
-
.
|
|
28
|
+
.positional("value", {
|
|
30
29
|
describe: "New value for the property",
|
|
31
30
|
type: "string"
|
|
32
|
-
})
|
|
33
|
-
.usage(""); // do not show any usage instructions before the commands list
|
|
31
|
+
});
|
|
34
32
|
},
|
|
35
33
|
handler: command.setHandler
|
|
36
34
|
})
|
|
@@ -38,15 +36,14 @@ const command = {
|
|
|
38
36
|
command: "add <property> <value>",
|
|
39
37
|
describe: "Adds a value to an existing configuration array",
|
|
40
38
|
builder: (yargs) => {
|
|
41
|
-
return yargs.
|
|
39
|
+
return yargs.positional("property", {
|
|
42
40
|
describe: "Config property to add to",
|
|
43
41
|
type: "string"
|
|
44
42
|
})
|
|
45
|
-
.
|
|
43
|
+
.positional("value", {
|
|
46
44
|
describe: "New value to add",
|
|
47
45
|
type: "string"
|
|
48
|
-
})
|
|
49
|
-
.usage(""); // do not show any usage instructions before the commands list
|
|
46
|
+
});
|
|
50
47
|
},
|
|
51
48
|
handler: command.addHandler
|
|
52
49
|
})
|
|
@@ -54,9 +51,8 @@ const command = {
|
|
|
54
51
|
alias: "g",
|
|
55
52
|
type: "boolean",
|
|
56
53
|
global: true,
|
|
57
|
-
describe: "
|
|
54
|
+
describe: "Use the global configuration"
|
|
58
55
|
})
|
|
59
|
-
.usage("") // do not show any usage instructions before the commands list
|
|
60
56
|
// at least one command is required
|
|
61
57
|
.demandCommand(1, "Please select command");
|
|
62
58
|
},
|
package/lib/commands/doc.js
CHANGED
|
@@ -36,14 +36,13 @@ const cli_core_1 = require("@igniteui/cli-core");
|
|
|
36
36
|
const PromptSession_1 = require("../PromptSession");
|
|
37
37
|
const doc = {
|
|
38
38
|
command: "doc [term]",
|
|
39
|
-
describe: "
|
|
39
|
+
describe: "Opens the Infragistics search for the given term",
|
|
40
40
|
builder: (yargs) => {
|
|
41
41
|
return yargs
|
|
42
|
-
.
|
|
43
|
-
describe: "
|
|
42
|
+
.positional("term", {
|
|
43
|
+
describe: "Term to search for",
|
|
44
44
|
type: "string"
|
|
45
|
-
})
|
|
46
|
-
.usage(""); // do not show any usage instructions before the commands list
|
|
45
|
+
});
|
|
47
46
|
},
|
|
48
47
|
open: (target) => __awaiter(void 0, void 0, void 0, function* () {
|
|
49
48
|
const open = yield Promise.resolve().then(() => __importStar(require("open")));
|
package/lib/commands/generate.js
CHANGED
|
@@ -100,20 +100,20 @@ function handler(argv) {
|
|
|
100
100
|
const command = {
|
|
101
101
|
aliases: ["g"],
|
|
102
102
|
command: "generate",
|
|
103
|
-
describe: "
|
|
103
|
+
describe: "Generates custom templates (see subcommands)",
|
|
104
104
|
templateManager: null,
|
|
105
105
|
builder: yargs => {
|
|
106
106
|
yargs
|
|
107
107
|
.command({
|
|
108
108
|
aliases: ["t"],
|
|
109
109
|
command: "template [name]",
|
|
110
|
-
describe: "
|
|
110
|
+
describe: "Generates a custom template scaffold",
|
|
111
111
|
builder: (yargs) => {
|
|
112
112
|
return yargs
|
|
113
113
|
.option("framework", {
|
|
114
114
|
alias: "f",
|
|
115
115
|
default: "jquery",
|
|
116
|
-
describe: "Framework to generate template for",
|
|
116
|
+
describe: "Framework to generate the template for",
|
|
117
117
|
type: "string"
|
|
118
118
|
})
|
|
119
119
|
.option("name", {
|
|
@@ -125,19 +125,17 @@ const command = {
|
|
|
125
125
|
.option("skip-config", {
|
|
126
126
|
alias: "s",
|
|
127
127
|
default: false,
|
|
128
|
-
describe: "
|
|
128
|
+
describe: "Run without updating the CLI config",
|
|
129
129
|
type: "boolean"
|
|
130
130
|
})
|
|
131
131
|
.option("type", {
|
|
132
132
|
alias: "t",
|
|
133
133
|
describe: "Project type (depends on framework)",
|
|
134
134
|
type: "string"
|
|
135
|
-
})
|
|
136
|
-
.usage(""); // do not show any usage instructions before the commands list
|
|
135
|
+
});
|
|
137
136
|
},
|
|
138
137
|
handler
|
|
139
138
|
})
|
|
140
|
-
.usage("") // do not show any usage instructions before the commands list
|
|
141
139
|
// at least one command is required
|
|
142
140
|
.demandCommand(1, "Please select command");
|
|
143
141
|
return yargs;
|
package/lib/commands/list.js
CHANGED
|
@@ -5,19 +5,21 @@ const command = {
|
|
|
5
5
|
command: "list",
|
|
6
6
|
// use aliases here, instead of alias. With single alias yargs does not build correctly argv
|
|
7
7
|
aliases: ["l"],
|
|
8
|
-
describe: "
|
|
9
|
-
builder: {
|
|
10
|
-
|
|
8
|
+
describe: "Lists frameworks, project templates and component templates",
|
|
9
|
+
builder: (yargs) => {
|
|
10
|
+
return yargs
|
|
11
|
+
.option("framework", {
|
|
11
12
|
alias: "f",
|
|
12
|
-
default: "jquery",
|
|
13
13
|
describe: "Framework to list templates for",
|
|
14
14
|
type: "string"
|
|
15
|
-
}
|
|
16
|
-
|
|
15
|
+
})
|
|
16
|
+
.option("type", {
|
|
17
17
|
alias: "t",
|
|
18
18
|
describe: "Project type (depends on framework)",
|
|
19
19
|
type: "string"
|
|
20
|
-
}
|
|
20
|
+
})
|
|
21
|
+
.example("$0 list", "Show all frameworks and their project templates")
|
|
22
|
+
.example("$0 list -f angular", "List component templates for Angular");
|
|
21
23
|
},
|
|
22
24
|
templateManager: null,
|
|
23
25
|
handler(argv) {
|
|
@@ -33,6 +35,12 @@ const command = {
|
|
|
33
35
|
argv.type = config.project.projectType;
|
|
34
36
|
inProject = true;
|
|
35
37
|
}
|
|
38
|
+
if (!inProject && !argv.framework) {
|
|
39
|
+
if (argv.type) {
|
|
40
|
+
return cli_core_1.Util.error("'--type' requires '--framework'", "red");
|
|
41
|
+
}
|
|
42
|
+
return listAllFrameworks();
|
|
43
|
+
}
|
|
36
44
|
const templatesByGroup = [];
|
|
37
45
|
const controlGroups = [];
|
|
38
46
|
const framework = command.templateManager.getFrameworkById(argv.framework);
|
|
@@ -93,4 +101,35 @@ const command = {
|
|
|
93
101
|
}
|
|
94
102
|
}
|
|
95
103
|
};
|
|
104
|
+
function listAllFrameworks() {
|
|
105
|
+
const frameworkIds = command.templateManager.getFrameworkIds();
|
|
106
|
+
const frameworks = frameworkIds
|
|
107
|
+
.map(id => command.templateManager.getFrameworkById(id))
|
|
108
|
+
.filter(f => !!f);
|
|
109
|
+
cli_core_1.GoogleAnalytics.post({
|
|
110
|
+
t: "event",
|
|
111
|
+
ec: "$ig list",
|
|
112
|
+
ea: "all frameworks"
|
|
113
|
+
});
|
|
114
|
+
cli_core_1.Util.log("Available frameworks and project templates:");
|
|
115
|
+
for (const framework of frameworks) {
|
|
116
|
+
cli_core_1.Util.log("");
|
|
117
|
+
cli_core_1.Util.log(`${framework.name} (${framework.id})`);
|
|
118
|
+
for (const lib of framework.projectLibraries) {
|
|
119
|
+
cli_core_1.Util.log(`\t${lib.name} (${lib.projectType})`);
|
|
120
|
+
const visibleProjects = lib.projects.filter(p => !p.isHidden);
|
|
121
|
+
if (visibleProjects.length === 0) {
|
|
122
|
+
cli_core_1.Util.log("\t\t(no project templates)");
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
const formattedItems = cli_core_1.Util.formatChoices(visibleProjects.map(p => ({ name: p.id, description: p.description })));
|
|
126
|
+
for (const item of formattedItems) {
|
|
127
|
+
cli_core_1.Util.log("\t\t" + item.name);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
cli_core_1.Util.log("");
|
|
132
|
+
cli_core_1.Util.log("Run 'ig new <name> --framework <framework> --type <projectType>' to scaffold a project.");
|
|
133
|
+
cli_core_1.Util.log("Run 'ig list -f <framework> [-t <projectType>]' to list component templates.");
|
|
134
|
+
}
|
|
96
135
|
exports.default = command;
|
package/lib/commands/mcp.js
CHANGED
package/lib/commands/new.js
CHANGED
|
@@ -39,16 +39,20 @@ const TemplateManager_1 = require("../TemplateManager");
|
|
|
39
39
|
// explicit typing because `type: "string"` will be inferred as `type: string` which yargs will not like
|
|
40
40
|
const _framework = {
|
|
41
41
|
alias: "f",
|
|
42
|
-
default: "
|
|
43
|
-
describe: "Framework to
|
|
42
|
+
default: "angular",
|
|
43
|
+
describe: "Framework to scaffold the project for.",
|
|
44
44
|
type: "string",
|
|
45
45
|
choices: []
|
|
46
46
|
};
|
|
47
47
|
const command = {
|
|
48
48
|
command: "new [name]",
|
|
49
|
-
describe: "
|
|
49
|
+
describe: "Creates a project",
|
|
50
50
|
builder: (yargs) => {
|
|
51
51
|
return yargs
|
|
52
|
+
.positional("name", {
|
|
53
|
+
describe: "Project name (same as --name/-n)",
|
|
54
|
+
type: "string"
|
|
55
|
+
})
|
|
52
56
|
.option("name", {
|
|
53
57
|
alias: "n",
|
|
54
58
|
describe: "Project name",
|
|
@@ -67,19 +71,20 @@ const command = {
|
|
|
67
71
|
})
|
|
68
72
|
.option("skip-git", {
|
|
69
73
|
alias: "sg",
|
|
70
|
-
describe: "Do not
|
|
74
|
+
describe: "Do not initialize a git repository for the project",
|
|
71
75
|
type: "boolean"
|
|
72
76
|
})
|
|
73
77
|
.option("skip-install", {
|
|
74
78
|
alias: "si",
|
|
75
|
-
describe: "Do not
|
|
79
|
+
describe: "Do not install packages after scaffolding",
|
|
76
80
|
type: "boolean"
|
|
77
81
|
})
|
|
78
82
|
.option("template", {
|
|
79
83
|
describe: "Project template",
|
|
80
84
|
type: "string"
|
|
81
85
|
})
|
|
82
|
-
.
|
|
86
|
+
.example("$0 new my-app", "Scaffold a new project interactively")
|
|
87
|
+
.example("$0 new my-app -f angular -t igx-ts", "Scaffold an Ignite UI for Angular project");
|
|
83
88
|
},
|
|
84
89
|
handler(argv) {
|
|
85
90
|
return __awaiter(this, void 0, void 0, function* () {
|
package/lib/commands/start.js
CHANGED
|
@@ -53,16 +53,15 @@ const execSyncNpmStart = (port, options) => {
|
|
|
53
53
|
};
|
|
54
54
|
const command = {
|
|
55
55
|
command: "start",
|
|
56
|
-
describe: "
|
|
56
|
+
describe: "Starts the project",
|
|
57
57
|
templateManager: null,
|
|
58
58
|
builder: (yargs) => {
|
|
59
59
|
return yargs
|
|
60
60
|
.option("port", {
|
|
61
61
|
alias: "p",
|
|
62
|
-
describe: "serve app
|
|
62
|
+
describe: "Port to serve the app on",
|
|
63
63
|
type: "number"
|
|
64
|
-
})
|
|
65
|
-
.usage(""); // do not show any usage instructions before the commands
|
|
64
|
+
});
|
|
66
65
|
},
|
|
67
66
|
handler(argv) {
|
|
68
67
|
return __awaiter(this, void 0, void 0, function* () {
|
package/lib/commands/test.js
CHANGED
|
@@ -12,14 +12,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
const cli_core_1 = require("@igniteui/cli-core");
|
|
13
13
|
const command = {
|
|
14
14
|
command: "test",
|
|
15
|
-
describe: "
|
|
15
|
+
describe: "Executes project tests",
|
|
16
16
|
builder: (yargs) => {
|
|
17
17
|
return yargs
|
|
18
18
|
.option("e2e", {
|
|
19
|
-
describe: "
|
|
19
|
+
describe: "Execute end-to-end tests",
|
|
20
20
|
type: "boolean"
|
|
21
|
-
})
|
|
22
|
-
.usage(""); // do not show any usage instructions before the commands list
|
|
21
|
+
});
|
|
23
22
|
},
|
|
24
23
|
handler(argv) {
|
|
25
24
|
return __awaiter(this, void 0, void 0, function* () {
|
package/lib/commands/types.d.ts
CHANGED
|
@@ -1,19 +1,6 @@
|
|
|
1
1
|
import { ArgumentsCamelCase, CommandModule } from "yargs";
|
|
2
2
|
import { TemplateManager } from "../TemplateManager";
|
|
3
3
|
import { AddTemplateArgs, Template } from "@igniteui/cli-core";
|
|
4
|
-
export declare const ADD_COMMAND_NAME = "add";
|
|
5
|
-
export declare const NEW_COMMAND_NAME = "new";
|
|
6
|
-
export declare const BUILD_COMMAND_NAME = "build";
|
|
7
|
-
export declare const START_COMMAND_NAME = "start";
|
|
8
|
-
export declare const GENERATE_COMMAND_NAME = "generate";
|
|
9
|
-
export declare const CONFIG_COMMAND_NAME = "config";
|
|
10
|
-
export declare const DOC_COMMAND_NAME = "doc";
|
|
11
|
-
export declare const TEST_COMMAND_NAME = "test";
|
|
12
|
-
export declare const LIST_COMMAND_NAME = "list";
|
|
13
|
-
export declare const UPGRADE_COMMAND_NAME = "upgrade-packages";
|
|
14
|
-
export declare const MCP_COMMAND_NAME = "mcp";
|
|
15
|
-
export declare const AI_CONFIG_COMMAND_NAME = "ai-config";
|
|
16
|
-
export declare const ALL_COMMANDS: Set<string>;
|
|
17
4
|
export interface PositionalArgs {
|
|
18
5
|
/** The framework that the project will target. */
|
|
19
6
|
framework?: string;
|
|
@@ -26,8 +13,6 @@ export interface PositionalArgs {
|
|
|
26
13
|
template?: string;
|
|
27
14
|
module?: string;
|
|
28
15
|
skipRoute?: boolean;
|
|
29
|
-
/** Prevents the execution of a commands handler. For internal use only. */
|
|
30
|
-
skipExecution?: boolean;
|
|
31
16
|
/** Port to run the generated app on. */
|
|
32
17
|
port?: number;
|
|
33
18
|
skipConfig?: boolean;
|
package/lib/commands/types.js
CHANGED
|
@@ -1,29 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ALL_COMMANDS = exports.AI_CONFIG_COMMAND_NAME = exports.MCP_COMMAND_NAME = exports.UPGRADE_COMMAND_NAME = exports.LIST_COMMAND_NAME = exports.TEST_COMMAND_NAME = exports.DOC_COMMAND_NAME = exports.CONFIG_COMMAND_NAME = exports.GENERATE_COMMAND_NAME = exports.START_COMMAND_NAME = exports.BUILD_COMMAND_NAME = exports.NEW_COMMAND_NAME = exports.ADD_COMMAND_NAME = void 0;
|
|
4
|
-
exports.ADD_COMMAND_NAME = "add";
|
|
5
|
-
exports.NEW_COMMAND_NAME = "new";
|
|
6
|
-
exports.BUILD_COMMAND_NAME = "build";
|
|
7
|
-
exports.START_COMMAND_NAME = "start";
|
|
8
|
-
exports.GENERATE_COMMAND_NAME = "generate";
|
|
9
|
-
exports.CONFIG_COMMAND_NAME = "config";
|
|
10
|
-
exports.DOC_COMMAND_NAME = "doc";
|
|
11
|
-
exports.TEST_COMMAND_NAME = "test";
|
|
12
|
-
exports.LIST_COMMAND_NAME = "list";
|
|
13
|
-
exports.UPGRADE_COMMAND_NAME = "upgrade-packages";
|
|
14
|
-
exports.MCP_COMMAND_NAME = "mcp";
|
|
15
|
-
exports.AI_CONFIG_COMMAND_NAME = "ai-config";
|
|
16
|
-
exports.ALL_COMMANDS = new Set([
|
|
17
|
-
exports.ADD_COMMAND_NAME,
|
|
18
|
-
exports.NEW_COMMAND_NAME,
|
|
19
|
-
exports.BUILD_COMMAND_NAME,
|
|
20
|
-
exports.START_COMMAND_NAME,
|
|
21
|
-
exports.GENERATE_COMMAND_NAME,
|
|
22
|
-
exports.CONFIG_COMMAND_NAME,
|
|
23
|
-
exports.DOC_COMMAND_NAME,
|
|
24
|
-
exports.TEST_COMMAND_NAME,
|
|
25
|
-
exports.LIST_COMMAND_NAME,
|
|
26
|
-
exports.UPGRADE_COMMAND_NAME,
|
|
27
|
-
exports.MCP_COMMAND_NAME,
|
|
28
|
-
exports.AI_CONFIG_COMMAND_NAME
|
|
29
|
-
]);
|
package/lib/commands/upgrade.js
CHANGED
|
@@ -12,17 +12,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
const cli_core_1 = require("@igniteui/cli-core");
|
|
13
13
|
const command = {
|
|
14
14
|
command: "upgrade-packages",
|
|
15
|
-
|
|
15
|
+
aliases: ["upgrade"],
|
|
16
|
+
describe: "Upgrades Ignite UI packages",
|
|
16
17
|
templateManager: null,
|
|
17
18
|
builder: (yargs) => {
|
|
18
19
|
return yargs
|
|
19
20
|
.option("skip-install", {
|
|
20
21
|
alias: "si",
|
|
21
22
|
default: false,
|
|
22
|
-
describe: "
|
|
23
|
+
describe: "Run upgrade without installing packages",
|
|
23
24
|
type: "boolean"
|
|
24
|
-
})
|
|
25
|
-
.usage(""); // do not show any usage instructions before the commands list
|
|
25
|
+
});
|
|
26
26
|
},
|
|
27
27
|
handler(argv) {
|
|
28
28
|
return __awaiter(this, void 0, void 0, function* () {
|