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 }