-
Notifications
You must be signed in to change notification settings - Fork 8.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve action and trigger types #58657
Improve action and trigger types #58657
Conversation
07cb374
to
081e246
Compare
@@ -60,7 +60,7 @@ const ActionsExplorer = ({ uiActionsApi, openModal }: Props) => { | |||
</EuiText> | |||
<EuiButton | |||
data-test-subj="emitHelloWorldTrigger" | |||
onClick={() => uiActionsApi.executeTriggerActions(HELLO_WORLD_TRIGGER_ID, {})} | |||
onClick={() => uiActionsApi.executeTriggerActions(HELLO_WORLD_TRIGGER_ID, undefined)} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is pretty weird, but, typescript complained if I didn't explicitly send over undefined.
081e246
to
bc3fd56
Compare
bc3fd56
to
41af1fa
Compare
Pinging @elastic/kibana-app-arch (Team:AppArch) |
8a5f8a0
to
e5ff89a
Compare
…using a trigger id that has not been added to the trigger context mapping.
e5ff89a
to
d5b2c75
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes LGTM 👍
if (this.actions.has(action.id)) { | ||
throw new Error(`Action [action.id = ${action.id}] already registered.`); | ||
} | ||
|
||
this.actions.set(action.id, action); | ||
}; | ||
|
||
public readonly attachAction = (triggerId: string, actionId: string): void => { | ||
// TODO: make this | ||
// <T extends TriggerId>(triggerId: T, action: Action<TriggerContextMapping[T]>): \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Interesting! Have you checked if it works? Or it will be not that simple?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
💚 Build SucceededHistory
To update your PR or re-run it, just comment with: |
* Improve types so emitting the wrong context shape complains, as does using a trigger id that has not been added to the trigger context mapping. * remove unneccessary code
…dex-server-side * 'master' of github.com:elastic/kibana: (34 commits) [Upgrade Assistant] Remove "boom" from reindex service (elastic#58715) [data] Clean up QueryStringInput unit tests (elastic#58704) [SIEM] Detection Fix typo in Adobe Hijack Persistence rule (elastic#58804) Restores [SIEM][CASE] Init Configure Case Page (elastic#58121) (elastic#58924) Skips additional failing Ingest Manager integration tests Skips failing Ingest Manager integration tests Move dev tools styles to NP (elastic#58855) change to have kibana --ssl cli option use more recent certs (elastic#57933) disable failing suite (elastic#58942) Don't start pollEsNodesVersion unless someone subscribes (elastic#56923) Do not write UUID file during optimize process (elastic#58899) [Endpoint] Task/add nav bar (elastic#58604) [Metric Alerts] Add backend support for multiple expressions per alert (elastic#58672) [Metrics Alerts] Fix alerting on a rate aggregation (elastic#58789) disable flaky suite (elastic#55953) Revert "[SIEM] apollo@3 (elastic#51926)" and "[SIEM][CASE] Init Confi… (elastic#58806) [resubmit] Prep agg types for new platform (elastic#58893) [Lens] Allow number formatting within Lens (elastic#56253) [Autocomplete] Use settings from config rather than UI settings (elastic#58784) Improve action and trigger types (elastic#58657) ... # Conflicts: # x-pack/plugins/upgrade_assistant/server/routes/reindex_indices/reindex_indices.ts
You will now get a warning if you try to use a trigger with an id that has not been added to the
TriggerContextMapping
with a context shape:This is good because before, if you didn't register your trigger id, you could pass it any context object and typescript wouldn't complain.
Small cleanups:
Step two will be attempting to get a warning if doing
uiActions.attachAction(triggerId, helloWorldActionId);
if the expected context shapes are mismatched.