Skip to content

Commit

Permalink
Add parameters to EventHandlerRegistration
Browse files Browse the repository at this point in the history
Deprecate paramsMaker

[changelog:deprecated] [changelog:added]
  • Loading branch information
cdupuis committed Feb 3, 2019
1 parent 498bc1c commit 230db78
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 11 deletions.
14 changes: 5 additions & 9 deletions lib/api-helper/machine/handlerRegistrations.ts
Expand Up @@ -15,6 +15,7 @@
*/ */


// tslint:disable:deprecation // tslint:disable:deprecation
// tslint:disable:max-file-line-count


import { import {
editModes, editModes,
Expand Down Expand Up @@ -110,8 +111,6 @@ import {
toMachineOptions, toMachineOptions,
} from "./toMachineOptions"; } from "./toMachineOptions";


// tslint:disable:max-file-line-count

export const GeneratorTag = "generator"; export const GeneratorTag = "generator";
export const InspectionTag = "inspection"; export const InspectionTag = "inspection";
export const TransformTag = "transform"; export const TransformTag = "transform";
Expand Down Expand Up @@ -277,6 +276,7 @@ export function commandHandlerRegistrationToCommand<P = NoParameters>(sdm: Machi
} }


export function eventHandlerRegistrationToEvent(sdm: MachineOrMachineOptions, e: EventHandlerRegistration<any, any>): Maker<HandleEvent> { export function eventHandlerRegistrationToEvent(sdm: MachineOrMachineOptions, e: EventHandlerRegistration<any, any>): Maker<HandleEvent> {
addParametersDefinedInBuilder(e);
return () => eventHandlerFrom( return () => eventHandlerFrom(
e.listener, e.listener,
e.paramsMaker || NoParameters, e.paramsMaker || NoParameters,
Expand Down Expand Up @@ -385,13 +385,8 @@ function addParametersDefinedInBuilder<PARAMS>(c: CommandRegistration<PARAMS>):
const oldMaker = c.paramsMaker || NoParameters; const oldMaker = c.paramsMaker || NoParameters;
if (!!c.parameters) { if (!!c.parameters) {
c.paramsMaker = () => { c.paramsMaker = () => {
let paramsInstance; const paramsInstance: any = toFactory(oldMaker)();
if (!!oldMaker) {
paramsInstance = toFactory(oldMaker)();
} else {
paramsInstance = {};
paramsInstance.__kind = "command-handler";
}
const paramListing = toParametersListing(c.parameters as any); const paramListing = toParametersListing(c.parameters as any);
paramListing.parameters.forEach(p => { paramListing.parameters.forEach(p => {
paramsInstance[p.name] = p.defaultValue; paramsInstance[p.name] = p.defaultValue;
Expand All @@ -403,6 +398,7 @@ function addParametersDefinedInBuilder<PARAMS>(c: CommandRegistration<PARAMS>):
declareSecret(paramsInstance, s.name, s.uri)); declareSecret(paramsInstance, s.name, s.uri));
paramListing.values.forEach(v => paramListing.values.forEach(v =>
declareValue(paramsInstance, v.name, { path: v.path, required: v.required, type: v.type })); declareValue(paramsInstance, v.name, { path: v.path, required: v.required, type: v.type }));

return paramsInstance; return paramsInstance;
}; };
} }
Expand Down
13 changes: 11 additions & 2 deletions lib/api/registration/EventHandlerRegistration.ts
Expand Up @@ -16,13 +16,15 @@


import { import {
Maker, Maker,
NoParameters,
OnEvent, OnEvent,
} from "@atomist/automation-client"; } from "@atomist/automation-client";
import { ParametersDefinition } from "./ParametersDefinition";


/** /**
* Type for registering event handlers. * Type for registering event handlers.
*/ */
export interface EventHandlerRegistration<EVENT = any, PARAMS = any> { export interface EventHandlerRegistration<EVENT = any, PARAMS = NoParameters> {


/** /**
* Name of the event handler. * Name of the event handler.
Expand All @@ -41,16 +43,23 @@ export interface EventHandlerRegistration<EVENT = any, PARAMS = any> {


/** /**
* GraphQL subscription to subscribe this listener to. * GraphQL subscription to subscribe this listener to.
* Note: Use subscription() methods of automation-client to create the subscription string * Note: Use GraphQL.subscription() methods of automation-client to create the subscription string
*/ */
subscription: string; subscription: string;


/** /**
* Create the parameters required by this command. * Create the parameters required by this command.
* Empty parameters will be returned by default. * Empty parameters will be returned by default.
* @deprecated use parameters
*/ */
paramsMaker?: Maker<PARAMS>; paramsMaker?: Maker<PARAMS>;


/**
* Define parameters used by this command. Alternative to using
* paramsMaker: Do not supply both.
*/
parameters?: ParametersDefinition<PARAMS>;

/** /**
* Listener to receive subscription matches. * Listener to receive subscription matches.
*/ */
Expand Down

0 comments on commit 230db78

Please sign in to comment.