Security News
New Python Packaging Proposal Aims to Solve Phantom Dependency Problem with SBOMs
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
Minimal State Container for React Apps using RxJS
Dugong is a minimal single-store state container for React that uses RxJS. You can use it with Redux/Flux or any other pattern/framework although that is not nessecary.
I made Dugong because I wanted a more clear way to know what every component consumes from the global state. Passing attributes through the props in apps with deep hierarchies many times leads to confusion and decrease the developement speed. Imagine a scenario where you have to inspect the parent of the parent of the parent of a component to know why a property is passed to it and if its value is the same as the value that the parent have or if the parent has manipulate it. Ofcourse you can still pass props from the parents, it is just my opinion that you should avoid it. Also I wanted to be able to have a Store on which I can iterate using reactive programming methods.
import { createStore } from 'dugong';
const initialState = {
ui: { ... },
businessLogic: { ... },
hello: "hello world",
...
...
};
createStore( initialState );
import { connect } from 'dugong';
@connect( 'hello' )
class MyHelloWorldComponent extends Component
{
render(){
return <div>{ this.state.hello }</div>;
}
}
import { getStore } from 'dugong';
class MyHelloWorldComponent extends Component
{
componentWillMount()
{
getStore().map( ( { ui } ) => ui.something )
.filter( something => something.length > 4 )
.subscribe( something => this.setState( { something } ) );
}
render(){
return <div>{ this.state.something }</div>;
}
}
updateStore()
directly inside the components.import { updateStore } from 'dugong';
class MyComponent extends Component
{
update( something )
{
updateStore( { something } );
}
render(){
return <input onChange={ e => this.updateStore( e.target.value ) }</input>;
}
}
// UIService
import { updateStore } from 'dugong';
export const updateSomething = value => updateStore( { something : value } );
// MyComponent
import UIService from 'dugong';
class MyComponent extends Component
{
update( value )
{
UIService.updateSomething( value );
}
render(){
return <input onChange={ e => this.updateStore( e.target.value ) }</input>;
}
}
Feel free to open issues, make suggestions or send PRs. This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code.
E-mail : avr.mav@gmail.com
Twitter: @avraamakis
MIT
FAQs
Minimal State Container for React Apps using RxJS
The npm package dugong receives a total of 29 weekly downloads. As such, dugong popularity was classified as not popular.
We found that dugong 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
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
Security News
Socket CEO Feross Aboukhadijeh discusses open source security challenges, including zero-day attacks and supply chain risks, on the Cyber Security Council podcast.
Security News
Research
Socket researchers uncover how threat actors weaponize Out-of-Band Application Security Testing (OAST) techniques across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.