Skip to content

Commit 3b36b55

Browse files
authored
Merge pull request #108 from firebase/inlined.warn-when-promise-expected
Add a warning when the developer's function does not return a Promise or value.
2 parents 8da9461 + 7c3c0a9 commit 3b36b55

File tree

1 file changed

+20
-18
lines changed

1 file changed

+20
-18
lines changed

src/cloud-functions.ts

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ function _makeParams(event: Event<any>, triggerResource: string): { [option: str
9292
}
9393

9494
return params;
95-
};
95+
}
9696

9797
/** @internal */
9898
export function makeCloudFunction<EventData>({
@@ -101,25 +101,27 @@ export function makeCloudFunction<EventData>({
101101
resource,
102102
dataConstructor = (raw: Event<any>) => raw.data,
103103
handler,
104-
before,
105-
after,
104+
before = () => { return; },
105+
after = () => { return; },
106106
}: MakeCloudFunctionArgs<EventData>): CloudFunction<EventData> {
107-
let cloudFunction: any = (event: Event<any>) => {
108-
return Promise.resolve(event)
109-
.then(before)
110-
.then(() => {
111-
let typedEvent: Event<EventData> = _.cloneDeep(event);
112-
typedEvent.data = dataConstructor(event);
113-
typedEvent.params = _makeParams(event, resource) || {};
114-
return handler(typedEvent);
115-
}).then(result => {
116-
if (after) { after(event); }
117-
return result;
118-
}, err => {
119-
if (after) { after(event); }
120-
return Promise.reject(err);
121-
});
107+
let cloudFunction: any = async (event: Event<any>) => {
108+
try {
109+
before(event);
110+
111+
let typedEvent: Event<EventData> = _.cloneDeep(event);
112+
typedEvent.data = dataConstructor(event);
113+
typedEvent.params = _makeParams(event, resource) || {};
114+
115+
let promise = handler(typedEvent);
116+
if (typeof promise === 'undefined') {
117+
console.warn('Function returned undefined, expected Promise or value');
118+
}
119+
return await promise;
120+
} finally {
121+
after(event);
122+
}
122123
};
124+
123125
cloudFunction.__trigger = {
124126
eventTrigger: {
125127
resource,

0 commit comments

Comments
 (0)