You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123 lines
3.5 KiB

1 month ago
{
"main": {
"prefix": "fmain",
"description": "main function",
"body": ["package main\n", "func main() {", "\t$1", "}"]
},
"basicmainfile": {
"prefix": "basic",
"description": "basic main file",
"body": [
"package main\n",
"import (",
"\t\"log\"",
"\t\"net/http\"",
"\t\"os\"\n",
"\t\"github.com/go-chi/chi\"",
"\t\"github.com/go-chi/cors\"",
"\t\"github.com/joho/godotenv\"",
")\n",
"func main() {",
"\tgodotenv.Load(\".env\")\n",
"\tport := os.Getenv(\"PORT\")",
"\tif port == \"\" {",
"\t\tlog.Fatal(\"PORT environment variable is not set\")",
"\t}\n",
"\trouter := chi.NewRouter()\n",
"\trouter.Use(cors.Handler(cors.Options{",
"\t\tAllowedOrigins: []string{\"https://*\", \"http://*\"},",
"\t\tAllowedMethods: []string{\"GET\", \"POST\", \"PUT\", \"DELETE\", \"OPTIONS\"},",
"\t\tAllowedHeaders: []string{\"*\"},",
"\t\tExposedHeaders: []string{\"Link\"},",
"\t\tAllowCredentials: false,",
"\t\tMaxAge: 300,",
"\t}))\n",
"\tv1Router := chi.NewRouter()",
"\tv1Router.Get(\"/healthz\", handlerReadiness)",
"\tv1Router.Get(\"/err\", handlerErr)\n",
"\trouter.Mount(\"/v1\", v1Router)",
"\tsrv := &http.Server{",
"\t\tAddr: \":\" + port,",
"\t\tHandler: router,",
"\t}\n",
"\tfileServer := http.FileServer(http.Dir(\"./static/\"))",
"\tmux.Handle(\"/static/*\", http.StripPrefix(\"/static\", fileServer))\n",
"\tlog.Printf(\"Serving on port: %s\\n\", port)",
"\tlog.Fatal(srv.ListenAndServe())",
"}"
]
},
"error": {
"prefix": "ife",
"description": "if statment for error",
"body": ["if err != nil {", "\t$1", "}"]
},
"println": {
"prefix": "pl",
"description": "fmt.Println",
"body": ["fmt.Println(\"$1\")"]
},
"sprintf": {
"prefix": "spf",
"description": "fmt.Sprintf",
"body": ["fmt.Sprintf(\"$1\")"]
},
"handler": {
"prefix": "hand",
"description": "http.Handler",
"body": ["func $1(w http.ResponseWriter, r *http.Request) {", "\t", "}"]
},
"chirouter": {
"prefix": "chi",
"description": "import for chi router",
"body": ["github.com/go-chi/chi/v5"]
},
"godotenv": {
"prefix": "godotenv",
"description": "Go dot env",
"body": ["\"github.com/joho/godotenv\""]
},
"potgresdriver": {
"prefix": "postgresdriver",
"description": "Postgres Driver",
"body": ["\"https://github.com/lib/pq\""]
},
"import": {
"prefix": "impt",
"description": "import tag",
"body": ["import (", "\t\"$1\"", ")\n"]
},
"funcwithreceiver": {
"prefix": "fr",
"description": "Function with some receiver",
"body": ["func ($1 *$2) $3 {", "\t", "}"]
},
"sqlcontext": {
"prefix": "ctx",
"description": "context with timeout",
"body": [
"ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)\n",
"defer cancel()\n"
]
},
"fecho": {
"prefix": "fecho",
"description": "echo with fasthttp",
"body": [
"package main\n",
"import (",
"\t\"net/http\"",
"\t\"github.com/labstack/echo/v4\"",
")\n",
"func main() {",
"\te := echo.New()\n",
"\te.GET(\"/\", func(c echo.Context) error {",
"\t\treturn c.String(http.StatusOK, \"Hello, World!\")",
"\t})\n",
"\te.Static(\"/static\", \"static\")",
"\te.Logger.Fatal(e.Start(\":8000\"))",
"}"
]
}
}