
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.
recoil-spring
Advanced tools
Jumpstart Recoil - less boilerplate, more fun.
Think React Toolkit or MobX State Tree but for Recoil. Opinionated but not too much :)
no dependencies (beyond peers: React & Recoil)
Tiny !
See docs site -
The best place to find details of the Recoil:Spring API is at the doc site mentioned above. However, this section highlights the main concepts and usage.
Two ways to initialize: Object-map or chained calls.
Both code examples below are identical in their outcome:
One of Recoil's more useful yet cumbersome entities is the Atom Family. It's extremely useful for storing data over a collection. Yet, Recoil doesn't provide a way to track the items within the collection. Their docs explain that a custom atom should be employed to do that. Spring does this seamlessly when encountering a Family record.
Below is an example of the simplest read/write selector hook
import { createSelectorHook } from "recoil-spring";
import atoms from "../store";
const {
borderColor
} = atoms;
const useCollageBorderColor = createSelectorHook(borderColor);
//recoil:spring will generate a selector key using the atom's key.
//If you'd like to set your own key do the following:
const useCollageBorderColor = createSelectorHook("MyCustomBorderColorSelector", borderColor);
export default useCollageBorderColor;
import useCollageBorderColor from "./store/selectors/useCollageBorderColor";
const MyComponent = () => {
const [borderColor, setBorderColor] = useCollageBorderColor();
return (
<input
type="number"
value={borderColor}
onChange={(e) => setBorderColor(parseInt(e.target.value))}
/>
);
};
Below is an example of a computed selector, combining two atoms into one result:
import { createSelectorHook } from "recoil-spring";
import atoms from "../store";
const {
borderWidth,
borderColor,
} = atoms;
const useCollageBorder = createSelectorHook(
//need to provide a key for the selector since we use a custom getter
"CollageBorderSelector",
(get) => [get(borderColor), get(borderWidth)],
);
export default useCollageBorder;
Using the resulting readonly selector hook is done in the following way:
import useCollageBorder from "./store/selectors/useCollageBorder";
const MyComponent = () => {
const [color, width] = useCollageBorder();
return (
<div
style={{ borderColor: color, borderWidth: `${width}px` }}>
//...
</div>
);
};
Below is a selector hook that reads one (atom) value but writes to two atoms. Using it works exactly the same as any other read/write hook
import { createSelectorHook } from "recoil-spring";
import atoms from "../store";
const {
width,
height,
} = atoms;
const useDimensions = createSelectorHook(
width,
(newVal, { set }) => {
set(width, newVal);
set(height, newVal);
},
);
export default useDimensions;
logo's spring thanks to: Spring icons created by Zaenul Yahya - Flaticon
FAQs
Jumpstart Recoil - less boilerplate, more fun.
The npm package recoil-spring receives a total of 0 weekly downloads. As such, recoil-spring popularity was classified as not popular.
We found that recoil-spring 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.