@@ -201,7 +201,7 @@ export const metadataUpdatedEvent = "google.cloud.storage.object.v1.metadataUpda
201
201
/** StorageOptions extend EventHandlerOptions with a bucket name */
202
202
export interface StorageOptions extends options . EventHandlerOptions {
203
203
/** The name of the bucket containing this object. */
204
- bucket ?: string ;
204
+ bucket ?: string | Expression < string > ;
205
205
206
206
/**
207
207
* If true, do not deploy or emulate this function.
@@ -324,7 +324,7 @@ export function onObjectArchived(
324
324
* @param handler - Event handler which is run every time a Google Cloud Storage archival occurs.
325
325
*/
326
326
export function onObjectArchived (
327
- bucket : string ,
327
+ bucket : string | Expression < string > ,
328
328
handler : ( event : StorageEvent ) => any | Promise < any >
329
329
) : CloudFunction < StorageEvent > ;
330
330
@@ -352,7 +352,11 @@ export function onObjectArchived(
352
352
* @param handler - Event handler which is run every time a Google Cloud Storage archival occurs.
353
353
*/
354
354
export function onObjectArchived (
355
- bucketOrOptsOrHandler : string | StorageOptions | ( ( event : StorageEvent ) => any | Promise < any > ) ,
355
+ bucketOrOptsOrHandler :
356
+ | string
357
+ | Expression < string >
358
+ | StorageOptions
359
+ | ( ( event : StorageEvent ) => any | Promise < any > ) ,
356
360
handler ?: ( event : StorageEvent ) => any | Promise < any >
357
361
) : CloudFunction < StorageEvent > {
358
362
return onOperation ( archivedEvent , bucketOrOptsOrHandler , handler ) ;
@@ -384,7 +388,7 @@ export function onObjectFinalized(
384
388
* @param handler - Event handler which is run every time a Google Cloud Storage object creation occurs.
385
389
*/
386
390
export function onObjectFinalized (
387
- bucket : string ,
391
+ bucket : string | Expression < string > ,
388
392
handler : ( event : StorageEvent ) => any | Promise < any >
389
393
) : CloudFunction < StorageEvent > ;
390
394
@@ -416,7 +420,11 @@ export function onObjectFinalized(
416
420
* @param handler - Event handler which is run every time a Google Cloud Storage object creation occurs.
417
421
*/
418
422
export function onObjectFinalized (
419
- bucketOrOptsOrHandler : string | StorageOptions | ( ( event : StorageEvent ) => any | Promise < any > ) ,
423
+ bucketOrOptsOrHandler :
424
+ | string
425
+ | Expression < string >
426
+ | StorageOptions
427
+ | ( ( event : StorageEvent ) => any | Promise < any > ) ,
420
428
handler ?: ( event : StorageEvent ) => any | Promise < any >
421
429
) : CloudFunction < StorageEvent > {
422
430
return onOperation ( finalizedEvent , bucketOrOptsOrHandler , handler ) ;
@@ -450,7 +458,7 @@ export function onObjectDeleted(
450
458
* @param handler - Event handler which is run every time a Google Cloud Storage object deletion occurs.
451
459
*/
452
460
export function onObjectDeleted (
453
- bucket : string ,
461
+ bucket : string | Expression < string > ,
454
462
handler : ( event : StorageEvent ) => any | Promise < any >
455
463
) : CloudFunction < StorageEvent > ;
456
464
@@ -484,7 +492,11 @@ export function onObjectDeleted(
484
492
* @param handler - Event handler which is run every time a Google Cloud Storage object deletion occurs.
485
493
*/
486
494
export function onObjectDeleted (
487
- bucketOrOptsOrHandler : string | StorageOptions | ( ( event : StorageEvent ) => any | Promise < any > ) ,
495
+ bucketOrOptsOrHandler :
496
+ | string
497
+ | Expression < string >
498
+ | StorageOptions
499
+ | ( ( event : StorageEvent ) => any | Promise < any > ) ,
488
500
handler ?: ( event : StorageEvent ) => any | Promise < any >
489
501
) : CloudFunction < StorageEvent > {
490
502
return onOperation ( deletedEvent , bucketOrOptsOrHandler , handler ) ;
@@ -509,7 +521,7 @@ export function onObjectMetadataUpdated(
509
521
* @param handler - Event handler which is run every time a Google Cloud Storage object metadata update occurs.
510
522
*/
511
523
export function onObjectMetadataUpdated (
512
- bucket : string ,
524
+ bucket : string | Expression < string > ,
513
525
handler : ( event : StorageEvent ) => any | Promise < any >
514
526
) : CloudFunction < StorageEvent > ;
515
527
@@ -533,7 +545,11 @@ export function onObjectMetadataUpdated(
533
545
* @param handler - Event handler which is run every time a Google Cloud Storage object metadata update occurs.
534
546
*/
535
547
export function onObjectMetadataUpdated (
536
- bucketOrOptsOrHandler : string | StorageOptions | ( ( event : StorageEvent ) => any | Promise < any > ) ,
548
+ bucketOrOptsOrHandler :
549
+ | string
550
+ | Expression < string >
551
+ | StorageOptions
552
+ | ( ( event : StorageEvent ) => any | Promise < any > ) ,
537
553
handler ?: ( event : StorageEvent ) => any | Promise < any >
538
554
) : CloudFunction < StorageEvent > {
539
555
return onOperation ( metadataUpdatedEvent , bucketOrOptsOrHandler , handler ) ;
@@ -542,7 +558,11 @@ export function onObjectMetadataUpdated(
542
558
/** @internal */
543
559
export function onOperation (
544
560
eventType : string ,
545
- bucketOrOptsOrHandler : string | StorageOptions | ( ( event : StorageEvent ) => any | Promise < any > ) ,
561
+ bucketOrOptsOrHandler :
562
+ | string
563
+ | Expression < string >
564
+ | StorageOptions
565
+ | ( ( event : StorageEvent ) => any | Promise < any > ) ,
546
566
handler : ( event : StorageEvent ) => any | Promise < any >
547
567
) : CloudFunction < StorageEvent > {
548
568
if ( typeof bucketOrOptsOrHandler === "function" ) {
@@ -616,11 +636,12 @@ export function onOperation(
616
636
617
637
/** @internal */
618
638
export function getOptsAndBucket (
619
- bucketOrOpts : string | StorageOptions
620
- ) : [ options . EventHandlerOptions , string ] {
621
- let bucket : string ;
639
+ bucketOrOpts : string | Expression < string > | StorageOptions
640
+ ) : [ options . EventHandlerOptions , string | Expression < string > ] {
641
+ let bucket : string | Expression < string > ;
622
642
let opts : options . EventHandlerOptions ;
623
- if ( typeof bucketOrOpts === "string" ) {
643
+ // If bucket is a string or Expression<string>
644
+ if ( typeof bucketOrOpts === "string" || "value" in bucketOrOpts ) {
624
645
bucket = bucketOrOpts ;
625
646
opts = { } ;
626
647
} else {
@@ -635,7 +656,7 @@ export function getOptsAndBucket(
635
656
" by providing bucket name directly in the event handler or by setting process.env.FIREBASE_CONFIG."
636
657
) ;
637
658
}
638
- if ( ! / ^ [ a - z \d ] [ a - z \d \\ . _ - ] { 1 , 230 } [ a - z \d ] $ / . test ( bucket ) ) {
659
+ if ( typeof bucket === "string" && ! / ^ [ a - z \d ] [ a - z \d \\ . _ - ] { 1 , 230 } [ a - z \d ] $ / . test ( bucket ) ) {
639
660
throw new Error ( `Invalid bucket name ${ bucket } ` ) ;
640
661
}
641
662
0 commit comments