Skip to content

Commit

Permalink
feat: add prompt to select a package manager of choice (#2779)
Browse files Browse the repository at this point in the history
  • Loading branch information
jamesgeorge007 committed Jun 10, 2021
1 parent e53f164 commit 5bd0df4
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 17 deletions.
24 changes: 17 additions & 7 deletions packages/generators/src/addon-generator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,10 @@ const addonGenerator = (
templateFn: (instance: any) => Record<string, unknown>,
): Generator.GeneratorConstructor => {
return class extends Generator {
public template: string;
public packageManager: string;
public resolvedTemplatePath: string;
public supportedTemplates: string[];
public template: string;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
public utils: any;

Expand Down Expand Up @@ -74,9 +75,19 @@ const addonGenerator = (
}
this.resolvedTemplatePath = path.join(templateDir, this.template);

return this.prompt(prompts).then((props: Generator.Question): void => {
this.props = props;
});
this.props = await this.prompt(prompts);

// Prompt for the package manager of choice
const defaultPackager = this.utils.getPackageManager();
const { packager } = await List(
this,
"packager",
"Pick a package manager:",
this.utils.getAvailableInstallers(),
defaultPackager,
false,
);
this.packageManager = packager;
}

public default(): void {
Expand Down Expand Up @@ -141,13 +152,12 @@ const addonGenerator = (
}

public install(): void {
const packager = this.utils.getPackageManager();
const opts: {
dev?: boolean;
"save-dev"?: boolean;
} = packager === "yarn" ? { dev: true } : { "save-dev": true };
} = this.packageManager === "yarn" ? { dev: true } : { "save-dev": true };

this.scheduleInstallTask(packager, ["webpack-defaults", "bluebird"], opts);
this.scheduleInstallTask(this.packageManager, ["webpack-defaults", "bluebird"], opts);
}
};
};
Expand Down
10 changes: 5 additions & 5 deletions test/loader/loader.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ describe("loader command", () => {
it("should scaffold loader with default name if no loader name provided", async () => {
const assetsPath = await uniqueDirectoryForTest();
const { defaultLoaderPath } = dataForTests(assetsPath);
let { stdout } = await runPromptWithAnswers(assetsPath, ["loader"], [`${ENTER}`]);
let { stdout } = await runPromptWithAnswers(assetsPath, ["loader"], [ENTER, ENTER]);

expect(normalizeStdout(stdout)).toContain(firstPrompt);

Expand Down Expand Up @@ -72,7 +72,7 @@ describe("loader command", () => {
let { stdout } = await runPromptWithAnswers(
assetsPath,
["loader"],
[`${loaderName}${ENTER}`],
[`${loaderName}${ENTER}`, ENTER],
);

expect(normalizeStdout(stdout)).toContain(firstPrompt);
Expand Down Expand Up @@ -113,7 +113,7 @@ describe("loader command", () => {
let { stdout } = await runPromptWithAnswers(
assetsPath,
["loader", "test-assets"],
[`${loaderName}${ENTER}`],
[`${loaderName}${ENTER}`, ENTER],
);

expect(normalizeStdout(stdout)).toContain(firstPrompt);
Expand Down Expand Up @@ -155,7 +155,7 @@ describe("loader command", () => {
let { stdout } = await runPromptWithAnswers(
assetsPath,
["loader", "./"],
[`${loaderName}${ENTER}`],
[`${loaderName}${ENTER}`, ENTER],
);

expect(normalizeStdout(stdout)).toContain(firstPrompt);
Expand Down Expand Up @@ -203,7 +203,7 @@ describe("loader command", () => {
let { stdout } = await runPromptWithAnswers(
assetsPath,
["loader", "-t", "default"],
[`${ENTER}`],
[`${ENTER}`, ENTER],
);

expect(normalizeStdout(stdout)).toContain(firstPrompt);
Expand Down
10 changes: 5 additions & 5 deletions test/plugin/plugin.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ describe("plugin command", () => {
it("should scaffold plugin with default name if no plugin name provided", async () => {
const assetsPath = await uniqueDirectoryForTest();
const { defaultPluginPath } = dataForTests(assetsPath);
const { stdout } = await runPromptWithAnswers(assetsPath, ["plugin"], [`${ENTER}`]);
const { stdout } = await runPromptWithAnswers(assetsPath, ["plugin"], [ENTER, ENTER]);

expect(normalizeStdout(stdout)).toContain(firstPrompt);

Expand Down Expand Up @@ -71,7 +71,7 @@ describe("plugin command", () => {
const { stdout } = await runPromptWithAnswers(
assetsPath,
["plugin"],
[`${pluginName}${ENTER}`],
[`${pluginName}${ENTER}`, ENTER],
);

expect(normalizeStdout(stdout)).toContain(firstPrompt);
Expand Down Expand Up @@ -112,7 +112,7 @@ describe("plugin command", () => {
const { stdout } = await runPromptWithAnswers(
assetsPath,
["plugin", "test-assets"],
[`${pluginName}${ENTER}`],
[`${pluginName}${ENTER}`, ENTER],
);

expect(normalizeStdout(stdout)).toContain(firstPrompt);
Expand Down Expand Up @@ -158,7 +158,7 @@ describe("plugin command", () => {
const { stdout } = await runPromptWithAnswers(
genPath,
["plugin", "./"],
[`${pluginName}${ENTER}`],
[`${pluginName}${ENTER}`, ENTER],
);

expect(normalizeStdout(stdout)).toContain(firstPrompt);
Expand Down Expand Up @@ -206,7 +206,7 @@ describe("plugin command", () => {
const { stdout } = await runPromptWithAnswers(
assetsPath,
["plugin", "-t", "default"],
[`${ENTER}`],
[`${ENTER}`, ENTER],
);
expect(normalizeStdout(stdout)).toContain(firstPrompt);
// Check if the output directory exists with the appropriate plugin name
Expand Down

0 comments on commit 5bd0df4

Please sign in to comment.