github.com/aneshas/cli@v0.0.0-20180104210444-aec958fa47db/langs/node.go (about)

     1  package langs
     2  
     3  type NodeLangHelper struct {
     4  	BaseHelper
     5  }
     6  
     7  func (h *NodeLangHelper) Handles(lang string) bool {
     8  	return defaultHandles(h, lang)
     9  }
    10  func (h *NodeLangHelper) Runtime() string {
    11  	return h.LangStrings()[0]
    12  }
    13  
    14  func (lh *NodeLangHelper) LangStrings() []string {
    15  	return []string{"node"}
    16  }
    17  func (lh *NodeLangHelper) Extensions() []string {
    18  	// this won't be chosen by default
    19  	return []string{}
    20  }
    21  
    22  func (lh *NodeLangHelper) BuildFromImage() (string, error) {
    23  	return "fnproject/node:dev", nil
    24  }
    25  func (lh *NodeLangHelper) RunFromImage() (string, error) {
    26  	return "fnproject/node", nil
    27  }
    28  
    29  func (lh *NodeLangHelper) Entrypoint() (string, error) {
    30  	return "node func.js", nil
    31  }
    32  
    33  func (h *NodeLangHelper) DockerfileBuildCmds() []string {
    34  	r := []string{}
    35  	if exists("package.json") {
    36  		r = append(r,
    37  			"ADD package.json /function/",
    38  			"RUN npm install",
    39  		)
    40  	}
    41  	return r
    42  }
    43  
    44  func (h *NodeLangHelper) DockerfileCopyCmds() []string {
    45  	r := []string{"ADD . /function/"}
    46  	if exists("package.json") {
    47  		r = append(r, "COPY --from=build-stage /function/node_modules/ /function/node_modules/")
    48  	}
    49  	return r
    50  }