1.0.1 • Published 4 years ago

logger-wellspring v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
4 years ago

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();
}
1.0.1

4 years ago

1.0.0

4 years ago