From 61f8037a7edb99103fb3bd8a354d7417b1a5d05c Mon Sep 17 00:00:00 2001 From: Sam Khan <117080976+sam-throne@users.noreply.github.com> Date: Thu, 15 Jun 2023 17:31:33 +0200 Subject: [PATCH] Support lifecycle hooks for function codebases Sample command: firebase deploy --only functions:metrics:report,functions:metrics:process Previous behavior: Run lifecycle hooks of all codebases in the project New behavior: Run lifecycle hooks of `metrics` codebase only --- src/deploy/lifecycleHooks.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/deploy/lifecycleHooks.ts b/src/deploy/lifecycleHooks.ts index 0c08e09a8cb..d87d0b8d102 100644 --- a/src/deploy/lifecycleHooks.ts +++ b/src/deploy/lifecycleHooks.ts @@ -139,9 +139,20 @@ function getReleventConfigs(target: string, options: Options) { return individualOnly.replace(`${target}:`, ""); }); - return targetConfigs.filter((config: any) => { + // If config specifies a target, only include it if it's in the only list + targetConfigs = targetConfigs.filter((config) => { return !config.target || onlyTargets.includes(config.target); }); + // If config specifies a codebase, only include it if it's in the only list + targetConfigs = targetConfigs.filter((config) => { + if (!config.codebase) return true; + + return onlyTargets.some( + (individualOnly) => + individualOnly.indexOf(":") === -1 || + config.codebase === individualOnly.split(":")[0] + ); + }); } export function lifecycleHooks(