
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Modern and functional approach to building web applications.
const {adapter} = require("spirit").node
const route = require("spirit-router")
const http = require('http')
const hello = () => "Hello World!"
const greet = (name) => `Hello, ${name}`
const app = route.define([
route.get("/", hello),
route.get("/:name", ["name"], greet),
])
http.createServer(adapter(app)).listen(3000)
If we think about a web request in its simplest form, it's basically a function, it takes an input (request) and returns an output (response). So why not write web applications this way?
No more req
, res
. Spirit simplifies everything by abstracting away the complexity of req
and res
that normally resulted in impure and complex functions.
Middleware in spirit can also transform the returned response and not just the request. This is in contrast to other web libraries that can only transform the request. This is a simple idea but having this feature allows for much more DRY and expressive code.
Given the above, it's much more easier to re-use, test, and reason about your code in spirit.
Oh yea, most Express middleware works in spirit too!
spirit
is a small library for composing functions and creating abstractions. Abstractions are defined in a "spirit adapter". Currently it comes with 1 builtin, the node adapter (spirit.node
) for use with node.js' http module. Eventually there will be another one written for spirit to run in the browser.
spirit-router
is a library for routing and creating routes.
spirit-common
is a library that provides many common http related middleware. It's purpose is to make bootstrapping a multitude of middleware that everyone will need easier.
spirit-express
, is a library for converting most Express middleware to work in spirit.
spirit-body
is a simple body parser middleware for spirit. Alternative to using spirit-common
which wraps the Express body-parser module.All contributions are appreciated and welcomed.
For backwards incompatible changes, or large changes, it would be best if you opened an issue before hand to outline your plans (to avoid conflict later on).
This codebase avoids using unnecessary semi-colons, camelCase and one-liners.
To run tests, use make test
. This will also build changes to src/*
, if you do not have make
installed, you can look at the Makefile to see the steps to accomplish the task.
Spirit is heavily influenced by the design of Ring.
FAQs
extensible web library for building applications & frameworks
The npm package spirit receives a total of 5 weekly downloads. As such, spirit popularity was classified as not popular.
We found that spirit 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
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.