@@ -517,6 +517,12 @@ func bundle(functionDir string, observer DeployObserver) (*deployFiles, error) {
517517 filePath := filepath .Join (functionDir , i .Name ())
518518
519519 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 )
520526 case jsFile (i ):
521527 file , err := newFunctionFile (filePath , i , jsRuntime , observer )
522528 if err != nil {
@@ -549,20 +555,26 @@ func newFunctionFile(filePath string, i os.FileInfo, runtime string, observer De
549555 }
550556 defer fileEntry .Close ()
551557
552- buf := new (bytes.Buffer )
553- archive := zip .NewWriter (buf )
558+ var buf io.ReadWriter
554559
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 )
559565
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+ }
563570
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+ }
566578 }
567579
568580 fileBuffer := new (bytes.Buffer )
@@ -583,6 +595,10 @@ func newFunctionFile(filePath string, i os.FileInfo, runtime string, observer De
583595 return file , nil
584596}
585597
598+ func zipFile (i os.FileInfo ) bool {
599+ return filepath .Ext (i .Name ()) == ".zip"
600+ }
601+
586602func jsFile (i os.FileInfo ) bool {
587603 return filepath .Ext (i .Name ()) == ".js"
588604}
0 commit comments