Skip to content

Commit

Permalink
feat(javascript): improve on task trigger type guards (#1286)
Browse files Browse the repository at this point in the history
  • Loading branch information
Fluf22 committed Feb 3, 2023
1 parent dbc270d commit dc5a22d
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 9 deletions.
1 change: 1 addition & 0 deletions specs/ingestion/common/schemas/task.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ Task:
- taskID
- sourceID
- destinationID
- trigger
- enabled
- action
- createdAt
Expand Down
8 changes: 5 additions & 3 deletions templates/javascript/clients/api-single.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ export const apiClientVersion = '{{packageVersion}}';
{{#operations}}
{{> client/api/hosts}}


{{#isIngestionClient}}
{{> client/api/guards}}
{{/isIngestionClient}}

// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
export function create{{capitalizedApiName}}({
appId: appIdOption,
Expand Down Expand Up @@ -83,9 +88,6 @@ export function create{{capitalizedApiName}}({
{{#isSearchClient}}
{{> client/api/helpers}}
{{/isSearchClient}}
{{#isIngestionClient}}
{{> client/api/guards}}
{{/isIngestionClient}}
{{#operation}}
{{> client/api/operation/jsdoc}}
{{nickname}}{{#vendorExtensions.x-is-generic}}<T>{{/vendorExtensions.x-is-generic}}( {{> client/api/operation/parameters}} ) : Promise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/returnType}}{{#vendorExtensions.x-is-generic}}<T>{{/vendorExtensions.x-is-generic}}> {
Expand Down
12 changes: 6 additions & 6 deletions templates/javascript/clients/client/api/guards.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -5,33 +5,33 @@
* @summary Guard method that returns a strongly typed specific OnDemandTrigger for a given Trigger.
* @param trigger - The given Task Trigger.
*/
isOnDemandTrigger(
export function isOnDemandTrigger(
trigger: Trigger
): trigger is OnDemandTrigger {
return trigger.type === 'on_demand';
},
}

/**
* Guard: Return strongly typed specific ScheduleTrigger for a given Trigger.
*
* @summary Guard method that returns a strongly typed specific ScheduleTrigger for a given Trigger.
* @param trigger - The given Task Trigger.
*/
isScheduleTrigger(
export function isScheduleTrigger(
trigger: Trigger
): trigger is ScheduleTrigger {
return trigger.type === 'schedule';
},
}

/**
* Guard: Return strongly typed specific SubscriptionTrigger for a given Trigger.
*
* @summary Guard method that returns a strongly typed specific SubscriptionTrigger for a given Trigger.
* @param trigger - The given Task Trigger.
*/
isSubscriptionTrigger(
export function isSubscriptionTrigger(
trigger: Trigger
): trigger is SubscriptionTrigger {
return trigger.type === 'subscription';
},
}
{{/isIngestionClient}}

0 comments on commit dc5a22d

Please sign in to comment.