logger-wellspring
v1.0.1
Published
Wellspring module for createing Wellsprings
Downloads
1
Readme
Wellspring
A Wellspring where the Driblets come to life from. The actual generator for logs send to Logger-dd
Wellspring is the initiator for Driblets traveling up the stream inside the Logger-dd infrastructure. See Logger-dd for more information on what this all means.
Examples
To use logger-wellspring inside an Express app with middleware. It logs which user has succesfully logged in and which user has failed. The middlware looks as follows:
const WellspringClass = require('logger-wellspring');
const wellspring = new WellspringClass('duflusbf');
const LoginSuccess = wellspring.Bucket('rbcaiutc');
const LoginFailure = wellspring.Bucket('xytrurwq');
const PASSWORDS = {
admin: 'secure!',
guest: 'anonymous',
// And much more...
};
// ? The express midlware you can use inside your Express app.
// * For example: app.use('/user/*', middlware);
async function middleware(req, res, next) {
const user = req.body.username;
const pass = req.body.password;
if (!PASSWORDS[user]) return res.end('No user/password combination found');
if (pass === PASSWORDS[user]) {
await LoginSuccess({ username: user });
next();
} else {
await LoginFailure({ username: user });
res.end('No user/password combination found');
}
}
To count and create driblet for every file found inside the current directory:
const fs = require('fs');
const Wellspring = require('logger-wellspring');
const wellspring = new Wellspring('duflusbf');
const fileFound = wellspring.Bucket('fbdfbnmr');
(async function main() {
const files = fs.readdirSync('./');
for(const file of files) {
await fileFound({ filename: file });
console.log('Found file %s', filename);
}
console.log('Total files found %d', files.length);
})();
We also have great Typescript support!
A Typescript http server that serves nothing. It creates a user whenever a user goes to /log
.
import http from 'http';
import Wellspring from 'logger-wellspring';
const wellspring = new Wellspring('duflusbf');
const driblet = wellspring.Bucket('43yhne8e');
const PORT = process.env.PORT || 8085;
const server = http.createServer(async (req, res) => {
if (req.url === '/ping') return res.end('pong');
if (req.url !== '/log') { res.statusCode = 400; return res.end('Not Found'); }
await driblet();
res.end('This has been logged');
});
server.listen(PORT, () => console.log(`Server listening on http://127.0.0.1:${PORT}/`));
Creating Koa middleware with authentication like the Express, only loggin the succesful logins:
import http from 'http';
import WellspringClass from 'logger-wellspring';
const wellspring = new WellspringClass('duflusbf');
const LoginSuccess = wellspring.Bucket<{ username: string }>('rbcaiutc');
const PASSWORDS = {
admin: 'secure!',
guest: 'anonymous',
// And much more...
};
// ? The express midlware you can use inside your Koa app.
// * For example: app.use('/user/*', middlware);
async function middleware(ctx, next) {
const { username, password } = ctx.request.body;
ctx.assert(!!PASSWORDS[username], 403, 'No user/password combination found');
ctx.assert(pass === PASSWORDS[username], 403, 'No user/password combination found');
await LoginSuccess({ username });
return next();
}