https://github.com/theroyalwhee0/tricycle
TricycleJS - Azure Functions Framework
https://github.com/theroyalwhee0/tricycle
azure-functions tricyclejs
Last synced: 2 months ago
JSON representation
TricycleJS - Azure Functions Framework
- Host: GitHub
- URL: https://github.com/theroyalwhee0/tricycle
- Owner: theroyalwhee0
- License: apache-2.0
- Created: 2022-07-15T13:36:01.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-07-19T19:17:26.000Z (almost 2 years ago)
- Last Synced: 2025-02-10T13:37:50.558Z (4 months ago)
- Topics: azure-functions, tricyclejs
- Language: TypeScript
- Homepage:
- Size: 387 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# TricycleJS Azure Functions Framework
## Description
TricycleJS is a library to simplify working with Azure Functions in Typescript.TricycleJS is currently in Alpha and it's API is unstable. Please don't use it for anything important.
Features
- Middlware: Strongly typed middleware
- Endpoint: Type Specialization for Request & Response Body, Params, Headers, and Status
- Timers: Timers can share middleware with Endpoints
- API: The API modeled after the [KoaJS](https://koajs.com/) API
- Azure Functions: Access to underlying Azure Functions primatives## Installation
`npm install @tricycle/tricycle`## Usage
TricycleJS is used by creating an instance of Tricycle, extending it via middleware, and building endpoints and timers from it.
## First Party Middleware
- [Log Winston](https://github.com/theroyalwhee0/tricycle-log-winston) - Adds a Winston Logger to the context using the Azure Function Logger as a transport## Links
- GitHub: https://github.com/theroyalwhee0/tricycle
- NPM: https://www.npmjs.com/package/@tricycle/tricycle## History
- v0.1.0 - 2022-10-23
- Major refactor of entire library.
- Improved typing on endpoints.
- Add timer support.
- Improved tests.
- v0.0.14 - 2022-09-17
- Turn on 'strictNullChecks' and adjust code to match.
- Add support for 'undefined' body.
- Improve body tests.
- v0.0.13 - 2022-09-17
- Add additional common header names.
- Improve invoke middleware. 'next' is no longer optional in middleware.
- v0.0.12 - 2022-09-04
- Default status and content-type for various body types.
- Improve tests.
- v0.0.11
- Add request ip.
- Change Request values to be wrappers of underlying Azure Request.
- Add various Request URL replated properties.
- Simplify code and improve comments and tests.
- v0.0.10
- Add request.is() to check mime type.
- Add request.is* type guards for request body.
- Change MimeType names.
- v0.0.9
- Add ctx.request.body for request body.
- Add ctx.request.rawBody for request body string.
- Add ctx.request.params for path parameters.
- Add ctx.app to allow Tricycle instance to be accessed from middleware.
- Change app.middleware() to app.use().
- v0.0.8
- Add type specialization for http status and response headers for endpoints.
- Add Typescript example code.
- Code cleanup.
- v0.0.7
- Add type specialization for endpoint middleware.
- Remove unneeded interfaces.
- Fix example code.
- v0.0.5
- Improve middleware ordering to match Koa.
- Add initial example code.
- Force clean build on dryrun.
- v0.0.4
- Middlware exports.
- Build improvements.
- Add metadata to package.json.
- v0.0.3
- Build and export changes.
- v0.0.2
- Build changes.
- v0.0.1
- Initial release.## Legal & License
Copyright 2022 Adam MillThis library is released under Apache 2 license. See [LICENSE](https://github.com/theroyalwhee0/tricycle/blob/master/LICENSE) for more details.