koa-plugins/README.md
2020-03-01 18:04:10 +01:00

36 lines
1.3 KiB
Markdown

# Easy plugins
Make web development easier with plugins.
## API
Easy plugins is based on Koa, so the ctx variable that's passed is koa's context.
## Plugin
The plugin must export object or function. Object should contain these:
| enabled | Whether the plugin is enabled and should be used |
| ---- | ---- |
| exec | Function to call when plugin is enabled and request matches rules |
| rules | Object containing rules to be passed before calling exec. Can be function, in which case the context is passed and must return boolean (or Promise<boolean>). If empty, automatically evaluates to true.|
If the exported is function, it works as `multi-plugin`:
The function gets parameter `hooks` which is a class for managing plugins. Then it should call function `hooks.registerPlugin` with the following parameters:
| exec | Function to call when request rules matches |
| ---- | ---- |
| rules | *optional*, same as in object plugin |
### Rules
Following rules can be used
| path | String or String[] | If path matches **exactly**. |
| pathReg | Regex | Regex to be checked against (must be instance of regex) |
| method | String or String[] | Method used |
| accepts | String or String[] | Using koa's accepts method. Used as arguments (array expanded) |
| secure | bool | If using HTTPS |
| subdomains | String[] | If subdomains matches. (compares koa's subdomains) |