{"_id":"@axetroy/kost","_rev":"3-9bcbeed54c1fbd67b39a4a872be9dfd8","name":"@axetroy/kost","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@axetroy/kost","version":"0.1.0","description":"The web framework base on Koa and Typescript for NodeJS","main":"build/index.js","directories":{"example":"example"},"devDependencies":{"@types/fs-extra":"^5.0.0","@types/http-proxy":"^1.12.4","@types/js-yaml":"^3.10.1","@types/koa":"^2.0.44","@types/koa-bodyparser":"^4.2.0","@types/koa-router":"^7.0.27","@types/koa-views":"^2.0.3","@types/node":"^9.4.5","@types/supertest":"^2.0.4","ava":"^0.25.0","coveralls":"^3.0.0","glob":"^7.1.2","nyc":"^11.4.1","supertest":"^3.0.0","ts-node":"^5.0.0","typescript":"^2.7.1"},"dependencies":{"fs-extra":"^5.0.0","https-proxy-agent":"^2.1.1","js-yaml":"^3.10.0","koa":"^2.5.0","koa-bodyparser":"^4.2.0","koa-cors":"^0.0.16","koa-mount":"^3.0.0","koa-proxies":"^0.6.2","koa-router":"^7.4.0","koa-static":"^4.0.2","koa-views":"^6.1.3","reflect-metadata":"^0.1.12","typedi":"^0.7.0"},"scripts":{"test":"rm -rf ./build && tsc -p ./ && node scripts/test.js && nyc ava ./build/**/*.test.js ./build/**/**/*.test.js","build":"rm -rf ./build && tsc -p ./ -d"},"author":{"name":"Axetroy"},"license":"MIT","gitHead":"322c082bda2f3c79c70ea5babcc823e92b3563d2","_id":"@axetroy/kost@0.1.0","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"axetroy","email":"troy450409405@gmail.com"},"dist":{"integrity":"sha512-Qti/CqnWDwGA0bZbfXiarrvrVRumqTAv/XCpNtxCQLMZgsbentCV9I3vRLQqjHOnWNS5dQdnYTd9vAiJzef+Ww==","shasum":"0101d1fc35f6259f87f71468356d401a8885889b","tarball":"https://registry.npmjs.org/@axetroy/kost/-/kost-0.1.0.tgz","fileCount":14,"unpackedSize":206640,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCHS1ZN59/vAeJlMmEFYJc1MRlJ9i/Jk3ETOilyEsD9JgIhAI2lxQU+vQGjR3XynelZz7RqOy1W6e+m8HuOHhw5sJ4W"}]},"maintainers":[{"name":"axetroy","email":"troy450409405@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/kost_0.1.0_1519972296766_0.79815629379669"},"_hasShrinkwrap":false},"0.1.1":{"name":"@axetroy/kost","version":"0.1.1","description":"The web framework base on Koa and Typescript for NodeJS","main":"build/index.js","directories":{"example":"example"},"devDependencies":{"@types/fs-extra":"^5.0.0","@types/http-proxy":"^1.12.4","@types/js-yaml":"^3.10.1","@types/koa":"^2.0.44","@types/koa-bodyparser":"^4.2.0","@types/koa-router":"^7.0.27","@types/koa-views":"^2.0.3","@types/node":"^9.4.5","@types/supertest":"^2.0.4","ava":"^0.25.0","coveralls":"^3.0.0","glob":"^7.1.2","nyc":"^11.4.1","supertest":"^3.0.0","ts-node":"^5.0.0","typescript":"^2.7.1"},"dependencies":{"fs-extra":"^5.0.0","https-proxy-agent":"^2.1.1","js-yaml":"^3.10.0","koa":"^2.5.0","koa-bodyparser":"^4.2.0","koa-cors":"^0.0.16","koa-mount":"^3.0.0","koa-proxies":"^0.6.2","koa-router":"^7.4.0","koa-static":"^4.0.2","koa-views":"^6.1.3","reflect-metadata":"^0.1.12","typedi":"^0.7.0"},"scripts":{"test":"rm -rf ./build && tsc -p ./ && node scripts/test.js && nyc ava ./build/**/*.test.js ./build/**/**/*.test.js","build":"rm -rf ./build && tsc -p ./ -d"},"author":{"name":"Axetroy"},"license":"MIT","gitHead":"29a98a7a3127c37ead7ed4976a3c06c4b65480ea","_id":"@axetroy/kost@0.1.1","_npmVersion":"5.8.0","_nodeVersion":"8.11.1","_npmUser":{"name":"axetroy","email":"troy450409405@gmail.com"},"dist":{"integrity":"sha512-Uw+jvNUymclQq+HI226SzrVd+hG19C3TR3GWdkzkx5MWaMIVqcPWQw/2U3UXb2DWnnXG7VJabfCMIJdsJkZ87w==","shasum":"2514e8d217dd0b49729c9ad6873baf3b5630d446","tarball":"https://registry.npmjs.org/@axetroy/kost/-/kost-0.1.1.tgz","fileCount":67,"unpackedSize":254678,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbEQ5dCRA9TVsSAnZWagAAnrMQAIX/KSdDVDtH8uV4F5jI\nqRnxTwrn0RC/spNwQxt4MWXdFsb0hV1H+i9N00bjtAeNz2bQsbww2dNM8qKU\nORWwl7nTHitdNGsYWbrbL1/D7EG+Y9U4o3jFJ7rPGbuNGkZvLe1Oylxoq9N0\nActNyAE5WACfMpux3M2WtcdVre3N0UXSkSte3m3M/z+Gb53Eqj6vdF6J1QZK\nwxwYH+ylFdpyGoeJqvVqLRObUjmIB5k4s1So5757R8WY0fvLQR8RGQPdik1D\n67ZEdXqFf+j7iXfIBqSwI9Blfl7QYI3x/aop4DJPkvhy8k1fnCfi2UNyLoQV\nqy/SSPmqGFY2BtI93lEfBwynKORKCZByKxDERG/rd5TZbp3B7Et/IcoJsBqr\nPodPYdHj6h1foYV91YpDJ/1cfoqnTlBOUOBmuhtgCNVgDjO2P/UprbVmOUEw\nJFnzo9DNpYq2aly1EOGnzt8YaAy0A6Yk0RnHyD0b8MMou+Dl+gc5aTwpggJb\n0Fn2DKot7NkZVRaRKYHg/F5anIp8kAfhK+PVzCIAmMYEpzwpf2xRrfkRr7xH\nR0NBgj3GBiB2eBF9FaTb3iFV0qXegSUS3mMT3cGkzB8wxxh6+ZzVmtJyHoOQ\nQpfiuZ2/ULaMQnGkFspYVACsBj+zfP0PgqEh4EtPyXpIE6hKUJwboKT1h5jR\nUpUu\r\n=a82p\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQD3303Ui9e2EqJ15zVe2Ox5IjANYFvLI1kgqCD34P/bLAIhAKz6j4y4WTOGsXXuKwtDfWO5pIT4UM/+CmUnl5aMtnz2"}]},"maintainers":[{"name":"axetroy","email":"troy450409405@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/kost_0.1.1_1527844444700_0.1308685630345554"},"_hasShrinkwrap":false}},"time":{"created":"2018-03-02T06:31:36.616Z","0.1.0":"2018-03-02T06:31:36.820Z","modified":"2022-04-04T17:09:50.742Z","0.1.1":"2018-06-01T09:14:04.918Z"},"maintainers":[{"name":"axetroy","email":"troy450409405@gmail.com"}],"description":"The web framework base on Koa and Typescript for NodeJS","author":{"name":"Axetroy"},"license":"MIT","readme":"## Kost\n\n[![Build Status](https://travis-ci.org/axetroy/kost.svg?branch=master)](https://travis-ci.org/axetroy/kost)\n[![Coverage Status](https://coveralls.io/repos/github/axetroy/kost/badge.svg?branch=master)](https://coveralls.io/github/axetroy/kost?branch=master)\n[![Dependency](https://david-dm.org/axetroy/kost.svg)](https://david-dm.org/axetroy/kost)\n![License](https://img.shields.io/badge/license-MIT-green.svg)\n[![Prettier](https://img.shields.io/badge/Code%20Style-Prettier-green.svg)](https://github.com/prettier/prettier)\n![Node](https://img.shields.io/badge/node-%3E=8.9-blue.svg?style=flat-square)\n[![npm version](https://badge.fury.io/js/%40axetroy%2Fkost.svg)](https://badge.fury.io/js/%40axetroy%2Fkost)\n![Size](https://github-size-badge.herokuapp.com/axetroy/kost.svg)\n\nKost 基于 Koa，使用 Typescript 编写，借鉴于 egg 的**约定大于配置**的思想以及 nest 的依赖注入和装饰器路由。\n\n是一款内置多个功能，并遵循一系列规范的 Web 框架\n\n**特性**\n\n* [x] 依赖注入\n* [x] 使用 Typescript 编写\n* [x] 装饰器风格的路由定义\n* [x] 支持中间件，包括 Koa 的中间件\n* [x] 引入服务的概念\n* [x] 支持加载不同环境下的配置文件\n* [x] 兼容 Koa 中间件\n\n**内置特性**\n\n* [x] Http/Websocket 的代理\n* [x] 静态文件服务\n* [x] 解析 Http Body\n* [x] 视图引擎\n* [x] 跨域资源分享\n* [ ] 错误捕捉\n* [ ] 定时任务\n\n### 框架架构\n\n![kost](https://raw.githubusercontent.com/axetroy/kost/master/kost.png)\n\n### 快速开始\n\n```bash\nnpm install @axetroy/kost --save\n```\n\n这是示例的项目目录, 最简单的搭建一个服务\n\n```\n.\n├── app.ts\n├── controllers\n│   └── home.controller.ts\n└── tsconfig.json\n```\n\n```typescript\n// app.ts\nimport Kost from \"@axetroy/kost\";\n\nconst app = new Kost();\n\napp\n  .start()\n  .then(function(server) {\n    console.log(`Listen on ${server.address().port}`);\n  })\n  .catch(err => {\n    console.error(err);\n  });\n```\n\n```typescript\n// controllers/home.controller.ts\nimport { Controller, Get } from \"@axetroy/kost\";\n\nexport default class HomeController extends Controller {\n  @Get(\"/\")\n  index(ctx) {\n    ctx.body = \"hello world\";\n  }\n}\n```\n\n```bash\n$ ts-node ./app.ts\n```\n\n## [文档](https://github.com/axetroy/kost/blob/master/doc/useage.md)\n\n## Q & A\n\nQ: 为什么开发这样的框架\n\n> A: 框架基于以前的项目经验沉淀而来，首先是坚持 Typescript 不动摇，能在开发阶段避免了很多 bug。\n\nQ: 为什么不使用 nest？\n\n> A: 因为它是基于 Express，而我以前的项目都是 Typescript + Koa\n\nQ: 为什么不使用 egg?\n\n> A: egg 使用 JS 开发，目前对 Typescript 没有一个很好的方案(见识短，没发现)，而且 egg 的 service 会丢失类型 IDE 提示，目前 egg 成员已在着手解决这个问题，期待中...\n\nQ: 与两者的框架区别在哪里?\n\n> A: 借鉴了 egg 的约定大于配置的思想，约定了一些文件目录，文件名，如果不按照框架写，就会 boom。借鉴了 nest 的 OOP 编程思想，所有的，包括 Controller、Service、Middleware 都是类，都可以进行依赖注入，而且路由定义是装饰器风格，语法糖会让你更加的直观。对于开发而言，会有很好的 IDE 提示。\n\nQ: 框架内置了一些特性，会不会平白增加性能负担？\n\n> A: 根据你是否开启特性，来决定是否引入包，所以不会有性能损耗。\n\nQ: 是否需要配套 CLI 工具?\n\n> A: 目前没有，编译成 JS 就能运行，可以用 pm2 进行负载均衡。\n\nQ: 框架是否包含进程管理?\n\n> A: 框架本身不进行进程管理，没有类似 egg 的 master 主进程管理子进程，没有 agent\n\n## 贡献者\n\n<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n\n| [<img src=\"https://avatars1.githubusercontent.com/u/9758711?v=3\" width=\"100px;\"/><br /><sub>Axetroy</sub>](http://axetroy.github.io)<br />[💻](https://github.com/axetroy/kost/commits?author=axetroy) 🔌 [⚠️](https://github.com/axetroy/kost/commits?author=axetroy) [🐛](https://github.com/axetroy/kost/issues?q=author%3Aaxetroy) 🎨 |\n| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |\n\n\n<!-- ALL-CONTRIBUTORS-LIST:END -->\n\n## 开源许可协议\n\nThe [MIT License](https://github.com/axetroy/kost/blob/master/LICENSE)\n","readmeFilename":"README.md"}