
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
@lopatnov/callable
Advanced tools
Abstract class Callable is abstraction for creating new instances of a class as functions, not objects
Abstract class Callable is abstraction for creating new instances of a class as functions, not objects.
npm install @lopatnov/callable
<script src="//lopatnov.github.io/callable/dist/byBind.min.js"></script>
<script src="//lopatnov.github.io/callable/dist/byCallee.min.js"></script>
<script src="//lopatnov.github.io/callable/dist/byClosure.min.js"></script>
<script src="//lopatnov.github.io/callable/dist/byProxy.min.js"></script>
import Callable from "@lopatnov/callable"; // byBind
or
import CallableByBind from "@lopatnov/callable/dist/byBind";
import CallableByCallee from "@lopatnov/callable/dist/byCallee";
import CallableByClosure from "@lopatnov/callable/dist/byClosure";
import CallableByProxy from "@lopatnov/callable/dist/byProxy";
var Callable = require("@lopatnov/callable"); // byBind
or
var CallableByBind = require("@lopatnov/callable/dist/byBind");
var CallableByCallee = require("@lopatnov/callable/dist/byCallee");
var CallableByClosure = require("@lopatnov/callable/dist/byClosure");
var CallableByProxy = require("@lopatnov/callable/dist/byProxy");
import Callable from "@lopatnov/callable";
class ChildCallable extends Callable<string> {
_call(...args: any[]): string {
return `Hello ${args[0]}`;
}
}
let x = new ChildCallable(); // <-- returns function
let xc = x("World"); // <-- calls _call function of ChildCallable class
console.log(xc); // "Hello World"
var Callable = require("@lopatnov/callable");
class ChildCallable extends Callable {
_call(...args) {
return `Hello ${args[0]}`;
}
}
let x = new ChildCallable(); // <-- returns function
let xc = x("World"); // <-- calls _call function of ChildCallable class
console.log(xc); // "Hello World"
Callable<TResult>
and it's variationsAbstract class Callable
has different realizations. They have different plus side and minus side.
The parameter TResult
is a result type of a function.
abstract class CallableByBind<TResult>
This is the function bind way.
Plus side
Minus side
abstract class CallableByCallee<TResult>
Plus side
Minus side
abstract class CallableByProxy<TResult>
Plus side
Minus side
abstract class CallableByClosure<TResult>
Plus side
Minus side
See, how it's working: https://runkit.com/lopatnov/callable-demo
Test it with a runkit: https://npm.runkit.com/@lopatnov/callable
License Apache-2.0
Copyright 2019-2021 Oleksandr Lopatnov
FAQs
Abstract class Callable is abstraction for creating new instances of a class as functions, not objects
We found that @lopatnov/callable 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.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.