-
Notifications
You must be signed in to change notification settings - Fork 217
Add v1 compat utilities for Pub/Sub event triggers #1743
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
base: master
Are you sure you want to change the base?
Conversation
Summary of ChangesHello @taeold, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request introduces a compatibility layer for Google Cloud Pub/Sub event triggers, allowing v2 functions to expose event data in a format consistent with v1 Cloud Functions. This change facilitates smoother migration and interoperability by providing familiar Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
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.
Code Review
This pull request introduces compatibility utilities to provide v1-style event accessors for v2 Pub/Sub triggers. A new compat.ts
file adds a generic decorateLegacyEvent
helper to attach lazy-evaluated properties to events. This is then used in v2/providers/pubsub.ts
to add context
and message
getters to onMessagePublished
events, making them compatible with the v1 SDK's event structure. The changes are well-tested and look good. My review includes a couple of suggestions to improve type safety and code clarity in the new compatibility helpers.
src/v2/compat.ts
Outdated
timestamp: options.timestamp ?? event.time ?? new Date().toISOString(), | ||
eventType: options.eventType, | ||
resource, | ||
params: (options.params ?? ({} as Params)) as Params, |
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.
The outer type cast as Params
is redundant because options.params
is already of type Params | undefined
and {} as Params
provides the Params
type in the nullish-coalescing case. You can simplify this line for better readability.
params: (options.params ?? ({} as Params)) as Params, | |
params: options.params ?? ({} as Params), |
Update
v2/pubsub/
'sonMessagePublished
to expose v1-compatible accessors, enabling usage like:Introduce decorateLegacyEvent helper so providers can attach v1-style getters (context + extras).