Skip to content

Commit

Permalink
Make parameters async
Browse files Browse the repository at this point in the history
  • Loading branch information
ipcrm committed Aug 18, 2020
1 parent 161b7dd commit a5d885b
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 13 deletions.
14 changes: 6 additions & 8 deletions lib/pack/universal-generator/generator.ts
Expand Up @@ -100,17 +100,15 @@ async function enhanceWithSpecificParameters<P>(
for (const universalTransform of universalTransforms) {
let params: ParametersObject<any>;
if (typeof universalTransform.parameters === "function") {
const paramsValues: any = await ctx.promptFor<P>(
unsatisfiedParameters,
);
params = universalTransform.parameters(paramsValues);
const paramsValues: any = await ctx.promptFor<P>(unsatisfiedParameters);
params = await universalTransform.parameters(paramsValues);
} else {
params = universalTransform.parameters;
params = universalTransform.parameters;
}
_.forEach(params, (v, k) => {
if (ctx.parameters[k] === undefined) {
unsatisfiedParameters[k] = v;
}
if (ctx.parameters[k] === undefined) {
unsatisfiedParameters[k] = v;
}
});
}

Expand Down
3 changes: 1 addition & 2 deletions lib/pack/universal-generator/generatorSupport.ts
Expand Up @@ -22,7 +22,6 @@ import {
metadata,
ParametersObject,
} from "@atomist/sdm";
import * as _ from "lodash";
import { toArray } from "../../util/misc/array";
import { universalGenerator } from "./generator";

Expand All @@ -35,7 +34,7 @@ export interface UniversalTransform<PARAMS = any> {
/** CodeTransforms to execute */
transforms: CodeTransform<PARAMS> | Array<CodeTransform<PARAMS>>;
/** Additional parameters the CodeTransforms need */
parameters?: ((params: any) => ParametersObject<PARAMS>) | ParametersObject<PARAMS>;
parameters?: ((params: any) => Promise<ParametersObject<PARAMS>>) | ParametersObject<PARAMS>;
}

/**
Expand Down
6 changes: 3 additions & 3 deletions test/pack/universal-generator/universalGenerator.test.ts
Expand Up @@ -17,7 +17,7 @@
import { GitHubRepoRef } from "@atomist/automation-client/lib/operations/common/GitHubRepoRef";
import { GeneratorRegistration } from "@atomist/sdm";
import * as assert from "assert";
import { UniversalTransform } from "../../../lib/pack/universal-generator/generatorSupport";
import { UniversalTransform } from "../../..";
import {
AssertGeneratorResult,
assertUniversalGenerator,
Expand Down Expand Up @@ -46,13 +46,13 @@ const Trans1UniversalTransform: UniversalTransform<{ firstName: string }> = {
};

const Trans2UniversalTransform: UniversalTransform<{ middleName: string } | {}> = {
parameters: params => {
parameters: async params => {
if (params.firstName === "Mickey") {
return {
middleName: {
required: true,
},
}
};
} else {
return {};
}
Expand Down

0 comments on commit a5d885b

Please sign in to comment.