@@ -106,16 +106,21 @@ type uploadError struct {
106106}
107107
108108type FileBundle struct {
109- Name string
110- Sum string
111- Runtime string
112- Size * int64 `json:"size,omitempty"`
109+ Name string
110+ Sum string
111+ Runtime string
112+ Size * int64 `json:"size,omitempty"`
113+ FunctionMetadata * FunctionMetadata
113114
114115 // Path OR Buffer should be populated
115116 Path string
116117 Buffer io.ReadSeeker
117118}
118119
120+ type FunctionMetadata struct {
121+ InvocationMode string
122+ }
123+
119124type toolchainSpec struct {
120125 Runtime string `json:"runtime"`
121126}
@@ -517,6 +522,10 @@ func (n *Netlify) uploadFile(ctx context.Context, d *models.Deploy, f *FileBundl
517522 params = params .WithXNfRetryCount (& retryCount )
518523 }
519524
525+ if f .FunctionMetadata != nil {
526+ params = params .WithInvocationMode (& f .FunctionMetadata .InvocationMode )
527+ }
528+
520529 if timeout != 0 {
521530 params .SetTimeout (timeout )
522531 }
@@ -705,19 +714,19 @@ func bundle(ctx context.Context, functionDir string, observer DeployObserver) (*
705714 if err != nil {
706715 return nil , nil , nil , err
707716 }
708- file , err := newFunctionFile (filePath , i , runtime , observer )
717+ file , err := newFunctionFile (filePath , i , runtime , nil , observer )
709718 if err != nil {
710719 return nil , nil , nil , err
711720 }
712721 functions .Add (file .Name , file )
713722 case jsFile (i ):
714- file , err := newFunctionFile (filePath , i , jsRuntime , observer )
723+ file , err := newFunctionFile (filePath , i , jsRuntime , nil , observer )
715724 if err != nil {
716725 return nil , nil , nil , err
717726 }
718727 functions .Add (file .Name , file )
719728 case goFile (filePath , i , observer ):
720- file , err := newFunctionFile (filePath , i , goRuntime , observer )
729+ file , err := newFunctionFile (filePath , i , goRuntime , nil , observer )
721730 if err != nil {
722731 return nil , nil , nil , err
723732 }
@@ -768,7 +777,10 @@ func bundleFromManifest(ctx context.Context, manifestFile *os.File, observer Dep
768777 runtime = function .Runtime
769778 }
770779
771- file , err := newFunctionFile (function .Path , fileInfo , runtime , observer )
780+ meta := FunctionMetadata {
781+ InvocationMode : function .InvocationMode ,
782+ }
783+ file , err := newFunctionFile (function .Path , fileInfo , runtime , & meta , observer )
772784
773785 if err != nil {
774786 return nil , nil , nil , err
@@ -824,7 +836,7 @@ func readZipRuntime(filePath string) (string, error) {
824836 return jsRuntime , nil
825837}
826838
827- func newFunctionFile (filePath string , i os.FileInfo , runtime string , observer DeployObserver ) (* FileBundle , error ) {
839+ func newFunctionFile (filePath string , i os.FileInfo , runtime string , metadata * FunctionMetadata , observer DeployObserver ) (* FileBundle , error ) {
828840 file := & FileBundle {
829841 Name : strings .TrimSuffix (i .Name (), filepath .Ext (i .Name ())),
830842 Runtime : runtime ,
@@ -875,6 +887,8 @@ func newFunctionFile(filePath string, i os.FileInfo, runtime string, observer De
875887 }
876888 }
877889
890+ file .FunctionMetadata = metadata
891+
878892 return file , nil
879893}
880894
0 commit comments