Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
waif
Advanced tools
Readme
Waif provides the smallest possible abstraction that would allow you to
to write an express-based microservice that can be used as a local library
or a remote instance.
Waif is a thin wrapper around express.js when we declare our
services, and a thin wrapper around request when we call them.
It splits the declaration and implementation of the services into separate files.
Doing this allows you the greatest amount of flexibility and scaleability,
since you can run the service in many environments.
Each microservice can be used and re-used in many different contexts, therefor there is a separate step where you configure all the services you will use, and where they will be accessed.
// file: production.js
// get an instance of waif
var waif = require('waif')();
// wrap standard middleware
var wrap = require('waif/wrap');
// maps to external service, on a random local port.
waif('user')
.pipe('/user/:id', 'http://user.example.com/v3/:id')
.listen(0);
var service = require('./src/my-service');
wait('my-service')
.send('/ping', 'pong')
.use(wrap, myLogMiddleware)
.use(service, { property: 'value' })
.listen(3000);
// file: src/my-service.js
// always return a function
module.exports = function(config) {
// you can use anything that is connect-like.
var app = require('express')();
// services are passed these as context
var waif = this.waif;
var service = this.service;
// map the defined user service
var user = waif('user');
// set up any routes you want to use
app.get('/profile/:userId', function(req, res, next) {
// the services registered are used just like request.
user(req.param.userId, function(err, resp, body) {
if (err || resp.statusCode !== 200) { return next(resp.statusCode); }
res.render('profile', body);
});
});
// return your middleware instead of listening.
return app;
};
Each repository may contain zero or more of these entry points, which may represent one or more environments.
These may map services differently depending on how you need to access them.
How the configuration gets into Waif is entirely up to the developer. It just provides the API to declare them, in a way that the services don't need to care about it.
Waif was initially developed by Wayfinder and used to build services deployed with Longshoreman.
FAQs
a micro-microservices library
The npm package waif receives a total of 22 weekly downloads. As such, waif popularity was classified as not popular.
We found that waif demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.