@@ -517,6 +517,12 @@ func bundle(functionDir string, observer DeployObserver) (*deployFiles, error) {
517
517
filePath := filepath .Join (functionDir , i .Name ())
518
518
519
519
switch {
520
+ case zipFile (i ):
521
+ file , err := newFunctionFile (filePath , i , jsRuntime , observer )
522
+ if err != nil {
523
+ return nil , err
524
+ }
525
+ functions .Add (file .Name , file )
520
526
case jsFile (i ):
521
527
file , err := newFunctionFile (filePath , i , jsRuntime , observer )
522
528
if err != nil {
@@ -549,20 +555,26 @@ func newFunctionFile(filePath string, i os.FileInfo, runtime string, observer De
549
555
}
550
556
defer fileEntry .Close ()
551
557
552
- buf := new (bytes.Buffer )
553
- archive := zip .NewWriter (buf )
558
+ var buf io.ReadWriter
554
559
555
- fileHeader , err := createHeader (archive , i , runtime )
556
- if err != nil {
557
- return nil , err
558
- }
560
+ if zipFile (i ) {
561
+ buf = fileEntry
562
+ } else {
563
+ buf = new (bytes.Buffer )
564
+ archive := zip .NewWriter (buf )
559
565
560
- if _ , err = io .Copy (fileHeader , fileEntry ); err != nil {
561
- return nil , err
562
- }
566
+ fileHeader , err := createHeader (archive , i , runtime )
567
+ if err != nil {
568
+ return nil , err
569
+ }
563
570
564
- if err := archive .Close (); err != nil {
565
- return nil , err
571
+ if _ , err = io .Copy (fileHeader , fileEntry ); err != nil {
572
+ return nil , err
573
+ }
574
+
575
+ if err := archive .Close (); err != nil {
576
+ return nil , err
577
+ }
566
578
}
567
579
568
580
fileBuffer := new (bytes.Buffer )
@@ -583,6 +595,10 @@ func newFunctionFile(filePath string, i os.FileInfo, runtime string, observer De
583
595
return file , nil
584
596
}
585
597
598
+ func zipFile (i os.FileInfo ) bool {
599
+ return filepath .Ext (i .Name ()) == ".zip"
600
+ }
601
+
586
602
func jsFile (i os.FileInfo ) bool {
587
603
return filepath .Ext (i .Name ()) == ".js"
588
604
}
0 commit comments