
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
@gallink/oxygen
Advanced tools
Oxygen brings life to other Gallink applications by providing a set of useful utilities.
Queues are a neat approach to processing a collection of items. Both of the implementations have different purposes, both which are particularly useful.
First is the standard Queue implementation, which is simply a box for an Array with the ability to dequeue items in a controlled, FIFO respect.
const friendsToAdd: Queue<Friend> = new Queue(api.getFriendSuggestions())
while (friendsToAdd.pending) {
const friendToAdd: Friend = friendsToAdd.dequeue();
await friendToAdd.sendFriendRequest()
}
// Friends added!
PromiseQueue adds another layer of asynchronous debuffing to JavaScript by allowing you to queue Promises. We can rewrite the sample above to use these.
const friendsToAdd: Queue<Friend> = new Queue(api.getFriendSuggestions())
const friendsBeingAded: PromiseQueue<Friend> = new PromiseQueue<Friend>();
while (friendsToAdd.pending) {
const friendToAdd: Friend = friendsToAdd.dequeue();
await friendsBeingAdded.task(friendToAdd.sendFriendRequestAsync)
}
The difference between these two examples is that the first will handle all the friend requests at once, whereas the second example will handle one at a time.
Inspired by Node's EventEmitter, Actionable provides an attractive alternative to calling code in other places by firing actions that are listened to elsewhere - a professional use for callbacks.
const me: Person = new Person("Crowes");
me.on("hungry", me.eat())
JavaScript does a poor job of supporting genuine data models, leaving you to write a lot of the boilerplate for a lot of your reflection-style work which is so commonly required in typical JavaScript applications.
const me: Person = new Person("Crowes", 21);
const differentMe: Person = new Person("Crowes", 22);
const difference: Map<string, any> = me.difference();
// { "age", 22 }
FAQs
Bringing life to all the other Gallink applications.
We found that @gallink/oxygen 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
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.