From 95fba455697bb3b166199611ee9944ab4f2ef574 Mon Sep 17 00:00:00 2001 From: Bryan Massoth Date: Thu, 30 Nov 2017 12:40:16 -0500 Subject: [PATCH 1/3] Update config().firebase typings to not be undefined since error will be thrown if it is undefined. --- src/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index b15281264..845842651 100644 --- a/src/config.ts +++ b/src/config.ts @@ -35,7 +35,7 @@ export function config(): config.Config { export namespace config { // Config type is usable as a object (dot notation allowed), and firebase // property will also code complete. - export type Config = { [key: string]: any } & { firebase?: firebase.AppOptions }; + export type Config = { [key: string]: any } & { firebase: firebase.AppOptions }; /** @internal */ export let singleton: config.Config; From aa99d5f5407884c5cfeca06fca46506d0f875660 Mon Sep 17 00:00:00 2001 From: Bryan Massoth Date: Thu, 30 Nov 2017 13:13:51 -0500 Subject: [PATCH 2/3] Added type guard when testing for existence of 'firebase' in merged. --- src/config.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 845842651..10e3389cc 100644 --- a/src/config.ts +++ b/src/config.ts @@ -56,7 +56,7 @@ function init (credential: firebase.credential.Credential) { } let merged= _.merge({}, loadedFromFile, firebaseEnv); - if (!_.has(merged, 'firebase')) { + if (!hasFirebase(merged)) { throw new Error('Firebase config variables are not available. ' + 'Please use the latest version of the Firebase CLI to deploy this function.'); } @@ -64,3 +64,7 @@ function init (credential: firebase.credential.Credential) { _.set(merged, 'firebase.credential', credential); config.singleton = merged; } + +function hasFirebase (merged: { [key: string]: any }): merged is { [key: string]: any, firebase: firebase.AppOptions } { + return _.has(merged, 'firebase'); +} From 2009fe56fc6d703e7b470caea1949ca7e58925ed Mon Sep 17 00:00:00 2001 From: Bryan Massoth Date: Thu, 30 Nov 2017 13:15:27 -0500 Subject: [PATCH 3/3] Updated to use existing type. --- src/config.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config.ts b/src/config.ts index 10e3389cc..ab0d095f8 100644 --- a/src/config.ts +++ b/src/config.ts @@ -65,6 +65,6 @@ function init (credential: firebase.credential.Credential) { config.singleton = merged; } -function hasFirebase (merged: { [key: string]: any }): merged is { [key: string]: any, firebase: firebase.AppOptions } { +function hasFirebase (merged: { [key: string]: any }): merged is config.Config { return _.has(merged, 'firebase'); }