Use Pecans as a node module
Pecans can be integrated into a Node.JS application as a node module. Using the middleware, you can add custom authentication on downloads or analytics for downloads counts.
Installation
Pecans can be installed as a local dependency using npm
:
$ npm install pecans-serve
Usage
const express = require("express");
const Pecans = require("@dopry/pecans").Pecans;
const app = express();
const pecans = new Pecans({
// GitHub configuration
repository: "Me/MyRepo",
token: "my_api_token",
});
app.use("/myapp", pecans.router);
app.listen(4000);
Configuration
cache
: (string) Path to the cache folder, default value is a temprary foldercacheMax
: (int) Max size of the cache (default is 500MB)cacheMaxAge
: (int) Maximum age in ms (default is 1 hour)preFetch
: (boolean) Pre-fetch list of releases at startup (default is true)basePath
: (string) path segment added between the host and the app path to support proxies that rewrite the path without telling express.
GitHub specific configuration:
refreshSecret
: (string) Secret for the GitHub webhook
Hooks
You can bind interceptors (i.e. hooks) to certain asynchronous actions using pecans.before(fn)
and pecans.after(fn)
:
download
: When an user is downloading a versionapi
: when an user is accessing the API
pecans.before("download", function (download, next) {
console.log(
"user is downloading",
download.platform.filename,
"for version",
download.version.tag,
"on channel",
download.version.channel,
"for",
download.platform.type
);
next();
});
pecans.after("download", function (download, next) {
console.log(
"user downloaded",
download.platform.filename,
"for version",
download.version.tag,
"on channel",
download.version.channel,
"for",
download.platform.type
);
next();
});
Last updated