Skip to content

Firebase Functions upgrade to v2#4

Open
idudinov wants to merge 6 commits intomainfrom
functions-upgrade
Open

Firebase Functions upgrade to v2#4
idudinov wants to merge 6 commits intomainfrom
functions-upgrade

Conversation

@idudinov
Copy link
Copy Markdown
Owner

@idudinov idudinov commented May 3, 2026

No description provided.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Upgrades @zajno/common-firebase server-side Firebase Functions helpers from firebase-functions/v1 APIs to firebase-functions/v2, restructuring the low-level “create” helpers into provider-specific modules and updating types/docs/tests accordingly.

Changes:

  • Migrated HTTPS callable/request, scheduler, and Pub/Sub helper factories to Firebase Functions v2 APIs.
  • Refactored create.ts into create/ modules (https, scheduler, pubsub, shared helpers) and updated imports/exports.
  • Updated runtime settings/types/docs/tests to match v2 (e.g., memory: 'MiB', callable request typing).

Reviewed changes

Copilot reviewed 18 out of 19 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
packages/common-firebase/src/server/pubsub/index.ts Updates Pub/Sub function typing/imports for v2 and redirects to new pubsub create module.
packages/common-firebase/src/server/functions/middleware.ts Replaces boolean chain lock with active-executions counter to prevent mutation during concurrent runs.
packages/common-firebase/src/server/functions/loader.ts Switches to v2 HTTPS types and new create module imports; updates async wrapper signatures.
packages/common-firebase/src/server/functions/interface.ts Updates callable context types for v2 and tightens some typings (unknown, Record<string, any>).
packages/common-firebase/src/server/functions/index.ts Re-exports the new create/ barrel.
packages/common-firebase/src/server/functions/globalSettings.ts Updates default memory unit to MiB.
packages/common-firebase/src/server/functions/factory.ts Updates import to v2 HTTPS create helper location.
packages/common-firebase/src/server/functions/create/scheduler.ts Adds v2 scheduler factory via onSchedule.
packages/common-firebase/src/server/functions/create/pubsub.ts Adds v2 Pub/Sub topic listener factory via onMessagePublished.
packages/common-firebase/src/server/functions/create/index.ts Adds barrel exports for provider-specific create modules.
packages/common-firebase/src/server/functions/create/https.ts Adds v2 HTTPS callable/request factories (onCall, onRequest).
packages/common-firebase/src/server/functions/create/helpers.ts Adds option-merging helpers and FilterRequestMethod middleware in new location.
packages/common-firebase/src/server/functions/create.ts Removes old v1 “create” module (replaced by create/ folder).
packages/common-firebase/src/functions/interface.ts Migrates EndpointSettings to v2 GlobalOptions subset.
packages/common-firebase/src/tests/functions/config.ts Updates callable test wrapper to v2 callable request shape.
packages/common-firebase/package.json Bumps package version, updates deps, and adds an exports entry for ./server/functions/create.
packages/common-firebase/docs/functions.md Updates docs for v2 memory units and new create/ module layout.
packages/common-firebase/README.md Updates README wording to reflect v2 functions.
package-lock.json Updates lockfile for dependency upgrades.
Comments suppressed due to low confidence (1)

packages/common-firebase/src/server/functions/loader.ts:77

  • createAsyncHttpsRequestFunction accepts HttpsOptions, but it forwards options into createHttpsRequestFunction, whose public signature only accepts EndpointSettings. This creates an inconsistent API surface (and hides which options are actually supported). Consider either (a) changing createAsyncHttpsRequestFunction to accept EndpointSettings for consistency, or (b) widening createHttpsRequestFunction (and its mergeOptions) to accept HttpsOptions so both paths support the same configuration (e.g., cors, invoker).
export function createAsyncHttpsRequestFunction<TRes = any>(workerLoader: () => Promise<RequestEndpointFunction<TRes>>, options: HttpsOptions | null = null): HttpsFunction {
    return createHttpsRequestFunction(
        wrapRequestFunction(workerLoader),
        options,
    );

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread packages/common-firebase/src/functions/interface.ts Outdated
Comment thread packages/common-firebase/docs/functions.md Outdated
Comment thread packages/common-firebase/package.json
Comment thread packages/common-firebase/package.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants