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.
		
		
		
		
		
			
		
			
				
					
					
						
							122 lines
						
					
					
						
							3.5 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							122 lines
						
					
					
						
							3.5 KiB
						
					
					
				
								{
							 | 
						|
								  "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\"))",
							 | 
						|
								      "}"
							 | 
						|
								    ]
							 | 
						|
								  }
							 | 
						|
								}
							 | 
						|
								
							 |