{"_id":"@congritta/savage","name":"@congritta/savage","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@congritta/savage","version":"0.0.1","license":"MIT","main":"dist/index.js","types":"types/index.d.ts","packageManager":"yarn@4.0.2","devDependencies":{"@types/node":"^20.10.4","typescript":"^5.3.3"},"description":"Modern and minimal REST API framework","keywords":["http","backend","api","rest","crud","server","web","router"],"author":{"name":"Alex Congritta","email":"congritta@gmail.com","url":"https://congritta.com"},"homepage":"https://congritta.github.io/savage","repository":{"type":"git","url":"git+https://github.com/congritta/savage.git"},"scripts":{"dev":"bash scripts/dev.sh","start":"bash scripts/start.sh","build":"bash scripts/build.sh"},"_id":"@congritta/savage@0.0.1","gitHead":"6bd223bf43c1df7748bf27da9cf3b4d65c8d6efc","bugs":{"url":"https://github.com/congritta/savage/issues"},"_nodeVersion":"20.10.0","_npmVersion":"10.2.3","dist":{"integrity":"sha512-Wy37ZslFCzQSz0w/BKtmHU7n2FYRI+8uzBzWx3qLwDIDaz7N6gVj1rdCe6637NolwJpTtE4Gh1imtXVqrFOW9g==","shasum":"1351672b8f2b9a940cf2e9c0ce958df7fc5112d4","tarball":"https://registry.npmjs.org/@congritta/savage/-/savage-0.0.1.tgz","fileCount":26,"unpackedSize":27190,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDnaikfWibLcqeFFzy9/aEMpp0tSGlkpRaacF4mG2NwLAIgQjBkNREkah7axxXd3LjatHQLIxR+HfeB8imdMtXHypg="}]},"_npmUser":{"name":"congritta","email":"congritta@gmail.com"},"directories":{},"maintainers":[{"name":"congritta","email":"congritta@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/savage_0.0.1_1706339138127_0.5884754956516609"},"_hasShrinkwrap":false}},"time":{"created":"2024-01-27T07:05:38.040Z","0.0.1":"2024-01-27T07:05:38.292Z","modified":"2024-01-27T07:05:38.652Z"},"maintainers":[{"name":"congritta","email":"congritta@gmail.com"}],"description":"Modern and minimal REST API framework","homepage":"https://congritta.github.io/savage","keywords":["http","backend","api","rest","crud","server","web","router"],"repository":{"type":"git","url":"git+https://github.com/congritta/savage.git"},"author":{"name":"Alex Congritta","email":"congritta@gmail.com","url":"https://congritta.com"},"bugs":{"url":"https://github.com/congritta/savage/issues"},"license":"MIT","readme":"# Savage Framework\r\n\r\n__Savage__ is modern & minimal REST API framework for Node.JS. It has no any dependencies and written in clean Node.JS\r\nstd library. __Savage__ is one of fastest HTTP frameworks around the world cause it doen't transform any parts of\r\nHTTP requests (like POST data). Except it, __Savage__ is stream based framework.\r\n\r\n## Scaffold\r\n\r\n```typescript\r\nimport Savage, {Response} from \"@congritta/savage\";\r\n\r\nconst HTTP_SERVER_PORT = 8000;\r\nconst HTTP_SERVER_HOST = '127.0.0.1';\r\n\r\nconst savageServer = new Savage(HTTP_SERVER_PORT, HTTP_SERVER_HOST);\r\n\r\n/* Handle GET request */\r\nsavageServer.on('GET', '/', () => {\r\n  return new Response(200, 'Hello World');\r\n})\r\n\r\n/* Handle POST request */\r\nsavageServer.on('POST', '/', async (ctx) => {\r\n\r\n  /* Get POST data */\r\n  const data = await ctx.parseBody()\r\n\r\n  /* Show POST data */\r\n  console.log(data);\r\n\r\n  /* Respond with string */\r\n  return new Response(200, 'Hello World');\r\n});\r\n\r\nsavageServer.start().then(() => {\r\n  console.log(`HTTP server started at http://${HTTP_SERVER_HOST}:${HTTP_SERVER_PORT}`);\r\n});\r\n```\r\n\r\n## Features\r\n\r\n- Stream & Promise based;\r\n- Written in clean Node.JS 'http' module;\r\n- Savage is fast and minimal so HTTP requests are not being transformed initially. Only a developer decides when Savage\r\n  has to parse POST data;\r\n\r\n## Docs\r\n\r\nOfficial Savage docs are being written at now\r\n","readmeFilename":"README.md"}